Arduino Forum

International => Italiano => Megatopic => Topic started by: testato on Nov 09, 2015, 11:15 am

Title: Modulo WiFi+Bt ESP32
Post by: testato on Nov 09, 2015, 11:15 am
Nuovo chip della serie ESP di Espressif di prossima uscita che integra Wi-Fi e Bluetooth
ESP32, il prossimo compagno di banco  :)

(https://pbs.twimg.com/media/CTCgl3WUAAAXKjv.jpg)
Title: Re: Modulo WiFi+Bluetooth ESP32
Post by: PaoloP on Nov 09, 2015, 01:59 pm
 :)
Title: Re: Modulo WiFi+Bluetooth ESP32
Post by: testato on Dec 07, 2015, 09:47 pm
Ultima fatica del Pighixxx  :)

Download pdf qui.  (http://www.pighixxx.net/test/2015/12/esp32-pinout/)
Title: Re: Modulo WiFi+Ble ESP32
Post by: pighixxx on Dec 08, 2015, 10:29 am
Rilasciata la versione 1.1

Download sempre al solito posto (http://www.pighixxx.net/test/2015/12/esp32-pinout/)

Tutte le informazioni me le sta passando direttamente Espressif :)

Title: Re: Modulo WiFi+Ble ESP32
Post by: testato on Dec 09, 2015, 07:22 pm
ULP+RTC (counter non clock) sarà molto interessante.

Periferica Infrarossi ? strana, probabilmente genera la portante senza doverla creare via sw ? Lato ricezione magari è connessa con interrupt ?
Lo scopriremo solo vivendo  :)

Title: Re: Modulo WiFi+Ble ESP32
Post by: zoomx on Dec 10, 2015, 03:49 pm
Forse è un'IRDA?
Title: Re: Modulo WiFi+Ble ESP32
Post by: testato on Dec 10, 2015, 09:33 pm
Che intendi ?
IR == IrDa
Title: Re: Modulo WiFi+Ble ESP32
Post by: vbextreme on Jan 13, 2016, 06:37 pm
xiscrizione
Title: Re: Modulo WiFi+Ble ESP32
Post by: vbextreme on Jan 13, 2016, 08:58 pm
xiscrizione
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Mar 26, 2016, 10:43 am
(https://pbs.twimg.com/media/CeYM2NcWwAAE_Ie.jpg)
Title: Re: Modulo WiFi+Bt ESP32
Post by: PaoloP on Mar 27, 2016, 09:13 am
Ci sono già dei moduli in vendita o è ancora sulla carta?
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Mar 27, 2016, 09:19 pm
al momento non prima di giugno se ne potra' avere uno in mano

sperando che non si allungano ancora i tempi visto che doveva essere dic2015 e poi via via piu' avanti
sono presenti al mondo solo 200 chip dati in demo a 200 fortunati. e non sono nemmeno ESP32 ma ESP31, che hanno una pedinatura diversa
Title: Re: Modulo WiFi+Bt ESP32
Post by: xarrigo on Mar 28, 2016, 09:39 am
Ciao,
estremamente interessante, visto che c'erano potevano portare la SRAM a 1G; penso che una delle chicche sia la presenza di CAN che rispetto ad altre diciamo piccole da una marcia in più.
Per in povero novizio quell'ethernet MAC interface vuol dire che è già predisposta per un connettore ethenet?
grazie
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Mar 28, 2016, 11:25 am
serve il PHY prima del connettore

ci sono novita' importanti che vanno rpoprio a creare nuovi modi di progettazione, cioe' il fatto che in modalita' standby lui possa comunque andare a valutare il valore dei sensori. Oppure se ho capito bene che si possano eseguire una certa quantita' di linee di codice mentre la cpu e' dormiente

Ma prendetelo con le pinze, potrei aver inteso male
Title: Re: Modulo WiFi+Bt ESP32
Post by: pighixxx on Jul 07, 2016, 11:50 am
(http://www.pighixxx.com/test/wp-content/uploads/2016/07/ESP32b_pinout_v1_0.png)

Buongiorno a tutti.

Buone novità in arrivo. Espressif ha rilasciato le nuove specifiche del processore.
In anteprima mondiale il pinout e il nuovo datasheet Qui (http://www.pighixxx.com/test/2016/07/the-new-esp32-specs/)


Ci vediamo dopo allo SB che è un bel po' che latito :D
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Jul 07, 2016, 08:03 pm
Ciao, bentornato  :)

Ottima notizia, ormai non si ci sperava più, Espressif ha più volte  comunicato una data di distribuzione poi non mantenuta.

Sai se c'è una nuova data di inizio vendite ?

Title: Re: Modulo WiFi+Bt ESP32
Post by: pighixxx on Jul 07, 2016, 08:11 pm
Nella prima versione molte cose non erano state implementate e quindi hanno riprogettato il wafer. Se dai un'occhiata al datasheet adesso si incomincia a ragionare :D
Ragionevolmente per settembre inizia la distribuzione.
Title: Re: Modulo WiFi+Bt ESP32
Post by: pighixxx on Jul 20, 2016, 01:07 pm
Mi hanno appena confermato che da circa metà agosto (di quest'anno) inizia la distribuzione dei samples.
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Jul 24, 2016, 12:01 pm
Ottima notizia
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Aug 09, 2016, 05:46 pm
Rilasciato SDK ver3.0
Espressif SDK (https://github.com/espressif/ESP32_RTOS_SDK/releases/tag/v3.0.0)

Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Aug 09, 2016, 08:32 pm
sul forum ufficiale un utente ha fatto una lista di cosa ci sara' su un ESP32:

Quote
-> low power
-> Ultra Low Power Management
-> Robust Design -40 C to 125 C
-> 2 cores, one of them for user application
-> 240MHz dual core Tensilica LX108 microcontroller with 600 DMIPS
-> Integrated 512KB SRAM
-> Integrated 802.11BGN HT40 Wi-Fi transceiver, baseband, stack and LWIP
-> Integrated dual mode Bluetooth (classic and BLE)
-> Ultra low noise analog amplifier
-> Hall sensor
-> 10x capacitive touch interface
-> 32kHz crystal oscillator
-> 3 x UARTs, including hardware flow control
-> 3 x SPI
-> 2 x I2S
-> 12 x ADC input channels
-> 2 x DAC
-> 2 x I2C
-> 32 GPIO's
-> PWM/timer input/output availabe on every GPIO pin
-> OpenOCD debug interface with 32kB TRAX buffer
-> SDIO master/slave 50MHz
-> Supports external SPI flash up to 16MB
-> SD-card interface support
-> WEP, WPA/WPA2 PSK/Enterprise
-> Hardware accelerated encryption: AES-256 / SHA2 / Elliptical Curve Cryptography / RSA-4096
-> Supports sniffer, station, softAP and Wi-Fi direct modes
-> Max data rate of 150Mbps@11n HT40, 72Mbps@11n HT20, 54Mbps@11g, and 11Mbps@11b
-> Maximum transmit power of 19.5dBm@11b, 16.5dBm@11g, 15.5dBm@11n
-> Minimum receiver sensitivity of -98dBm
-> 135Mbps UDP sustained throughput
-> 2.5uA deep sleep current
Title: Re: Modulo WiFi+Bt ESP32
Post by: PaoloP on Aug 10, 2016, 08:48 am
Rilasciato SDK ver3.0
Espressif SDK (https://github.com/espressif/ESP32_RTOS_SDK/releases/tag/v3.0.0)
La versione NON OS è ferma alla 2.0 --> http://www.espressif.com/en/products/hardware/esp8266ex/resources (http://www.espressif.com/en/products/hardware/esp8266ex/resources)
Title: Re: Modulo WiFi+Bt ESP32
Post by: cam9500 on Aug 11, 2016, 02:32 pm
Cipicchia quante periferiche!
..... ma esiste?
Non trovo un rivenditore....
Title: Re: Modulo WiFi+Bt ESP32
Post by: PaoloP on Aug 11, 2016, 03:46 pm
Esce in pre-release (solo per sviluppatori) a Settembre.
Title: Re: Modulo WiFi+Bt ESP32
Post by: cam9500 on Aug 11, 2016, 03:55 pm
Ah caspita, qualcuno che ci lavora alacremente c'è già: http://www.heise.de/make/artikel/Espressif-ESP32-3256039.html?artikelseite=2 (http://"http://www.heise.de/make/artikel/Espressif-ESP32-3256039.html?artikelseite=2")
... c'è anche  il porting in arduino IDE: https://github.com/me-no-dev/ESP31B (https://github.com/me-no-dev/ESP31B)
Bello bello !




Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Aug 11, 2016, 06:46 pm
La versione NON OS è ferma alla 2.0 --> http://www.espressif.com/en/products/hardware/esp8266ex/resources (http://www.espressif.com/en/products/hardware/esp8266ex/resources)
ESP32 non ha un NonOS sdk
queso e' il topic dedicato ESP32, non esp8266  ;)



Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Aug 11, 2016, 06:48 pm
Esce in pre-release (solo per sviluppatori) a Settembre.
quando uscira' non lo sanno nememno loro, visto che la rpima data fu aprile e poi di mese in mese, piano piano, si allungano.
Tattica commerciale o problemi hw ?
l'ultimo giuramento e' stato esce per agosto, tante' che alcuni produttori che vendono il loro rpodotto basato su ESP32 hanno messo Agosto come data di invio
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Aug 11, 2016, 09:55 pm
Sul forum stm32duino ci sono alcuni che hanno scritto che gli invii sono già partiti. Avevano fatto il preordine su Aliexpress
Title: Re: Modulo WiFi+Bt ESP32
Post by: pighixxx on Aug 11, 2016, 10:10 pm
Confermo. La prossima settimana ne ho in casa alcuni.   :smiley-mr-green:
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Sep 17, 2016, 09:29 am
e luce fu  :)

(http://www.cnx-software.com/wp-content/uploads/2016/09/ESP32.jpg)

e' davvero uscito, qui la documentazione ufficiale aggiornata
http://www.espressif.com/en/products/hardware/esp32/resources (http://www.espressif.com/en/products/hardware/esp32/resources)

la documentazione dell'API sembra non presente, ma in realta' se si scarica l'SDK completo all'interno c'e' una cartella documentation con il .pdf

al momento sembra possibile ordinare solo il chip, non sono ancora usciti moduli in stile nodemcu.
Uscira' anche un modulo ufficiale direttamente da ESP che si chiama wroom-32
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Oct 05, 2016, 08:50 pm
Finalmente arrivato  :)

la Espressif oltre al modulo wroom32 (lo schedino con esp32+flash+antenna) ha deciso di produrre anche direttamente dei moduli per breadboard con adattatore usb.
Sembra si chiamino  ESPRESSIF ESP32 DEVELOPMENT BOARD

(https://cdn-shop.adafruit.com/1200x900/3269-02.jpg)
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Oct 05, 2016, 10:36 pm
Il chip seriale/usb usato sulla board (esp32 non ha la usb) e' il CP2102

Win10-64 ha installato automaticamente il driver,
Di fabbrica e' installato il classico firmware per i comandi AT.

Connessione a 115200 8N1N
Questo il messaggio di boot (a differenza del fratellino minore non serve usare baudrate strani):




-------------------------------------------------------------------------
ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3ffc0000,len:0
load:0x3ffc0000,len:2304
load:0x40078000,len:3788
ho 0 tail 12 room 4
load:0x40098000,len:532
entry 0x4009813c
[1B][1;36m

[1B][0m[1B][1;36m**************************************
[1B][0m[1B][1;36m*       hello espressif ESP32!       *
[1B][0m[1B][1;36m*        2nd boot is running!        *
[1B][0m[1B][1;36m*            version (V0.1)          *
[1B][0m[1B][1;36m**************************************
[1B][0m[1B][0;36mcompile time 09:59:36

[1B][0m[1B][0;36m  SPI Speed      : 40MHz
[1B][0m[1B][0;36m  SPI Mode       : DIO
[1B][0m[1B][0;36m  SPI Flash Size : 1MB
[1B][0m[1B][1;36mPartition Table:
[1B][0m[1B][1;36m## Label            Usage          Type ST Offset   Length
[1B][0m[1B][1;36m 0 factory          factory app      00 00 00010000 00100000
[1B][0m[1B][1;36m 1 rfdata           RF data          01 01 00110000 00040000
[1B][0m[1B][1;36m 2 wifidata         WiFi data        01 02 00150000 00040000
[1B][0m[1B][1;36mEnd of partition table
[1B][0m[1B][1;36mLoading app partition at offset 00010000
[1B][0m[1B][0;36msection 0: paddr=0x00000020 vaddr=0x00000000 size=0x0ffe8 ( 65512)
[1B][0m[1B][0;36msection 1: paddr=0x00010010 vaddr=0x3f400010 size=0x0ac70 ( 44144) map
[1B][0m[1B][0;36msection 2: paddr=0x0001ac88 vaddr=0x3ffbae60 size=0x0140c (  5132) load
[1B][0m[1B][0;36msection 3: paddr=0x0001c09c vaddr=0x40080000 size=0x00400 (  1024) load
[1B][0m[1B][0;36msection 4: paddr=0x0001c4a4 vaddr=0x40080400 size=0x154f4 ( 87284) load
[1B][0m[1B][0;36msection 5: paddr=0x000319a0 vaddr=0x00000000 size=0x0e670 ( 58992)
[1B][0m[1B][0;36msection 6: paddr=0x00040018 vaddr=0x400d0018 size=0x38054 (229460) map
[1B][0m[1B][0;36mstart: 0x400807f0

[1B][0mInitializing heap allocator:
Region 19: 3FFBC26C len 00023D94 tag 0
Region 25: 3FFE8000 len 00018000 tag 1
Pro cpu up.
Pro cpu start user code
nvs_flash_init
misc_nvs_load g_misc_nvs=0x3ffbc428
frc2_timer_task_hdl:3ffbcf7c, prio:22, stack:2048
tcpip_task_hdlxxx : 3ffbec88, prio:20,stack:2048
phy_version: 80, Aug 26 2016, 13:04:06, 0
pp_task_hdl : 3ffc34d0, prio:23, stack:8192

:>enter uart init
uart init wait fifo succeed
exit uart init

IDF version : developing(09542f06)

WIFI LIB version : master(fbb084da)

ssc version : master(r260 cb8d627d)

!!!ready!!!
mode : sta(18:fe:34:6a:94:78)

+WIFI:STA_START
-------------------------------------------------------------------------



Title: Re: Modulo WiFi+Bt ESP32
Post by: lestofante on Oct 05, 2016, 11:16 pm
x iscrizione
Title: Re: Modulo WiFi+Bt ESP32
Post by: cam9500 on Oct 06, 2016, 06:33 pm
Ohhh bene... come se nn avessi altro da fare :)
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Oct 06, 2016, 11:42 pm
Espressif ha deciso ufficialmente di creare un core arduino.
È stato ingaggiato l'autore del core del vecchio esp31, ed è stato da poco pubblicato su github la prima versione per esp32
https://github.com/espressif/arduino-esp32 (https://github.com/espressif/arduino-esp32)

Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Oct 07, 2016, 08:18 am
Se non sbaglio è la terza azienda produttrice che crea o appoggia la creazione di un core arduinico. La prima, anni fa, è stata la Texas Instruments, a settembre la ST per alcune schede STM32 e adesso Espressif.
La Texas è stata forse la prima a proporre delle board molto economiche con un lancio sottocosto.
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Oct 07, 2016, 05:46 pm
si, la TI fece un fork dell'intero IDE che divento' energia, e praticamente regalava la board a tipo 3€ incluso spese postali.
Launchpad MSP430, la cosa sfiziosa e' che puoi usare una mcu piu' piccola o una con piu' pin, inserendola nello stesso alloggiamento :-)

A me piace di piu' l'idea del core che poi vai ad inserire nell'ide ufficiale, non so se c'erano motivi insormontabili per i quali fare un fork dell'ide, oppure solo marketing

Title: Re: Modulo WiFi+Bt ESP32
Post by: PaoloP on Oct 09, 2016, 10:16 am
Espressif ha deciso ufficialmente di creare un core arduino.
È stato ingaggiato l'autore del core del vecchio esp31, ed è stato da poco pubblicato su github la prima versione per esp32
https://github.com/espressif/arduino-esp32 (https://github.com/espressif/arduino-esp32)
Ottima notizia.
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Oct 28, 2016, 08:22 am
Anche SparkFun ha rilasciato un modulino con ESP32 ... QUI (https://www.sparkfun.com/products/13907) :)

(https://cdn.sparkfun.com//assets/parts/1/1/5/6/4/13907-01.jpg)

Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Oct 29, 2016, 10:50 pm
bella, con caricabatteria integrato
utile anche la mini guida per installare l'attuale core arduino ufficiale
https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide#installing-the-esp32-arduino-core
 (https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide#installing-the-esp32-arduino-core)
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Oct 29, 2016, 11:07 pm
Stanno uscendo come funghi, mi sono appena accorto che nel core e' stata aggiunta una variante chiamata Nano32, cerca cerca eccola qui:
https://twitter.com/maker_asia/status/779310519886884869 (https://twitter.com/maker_asia/status/779310519886884869)
Title: Re: Modulo WiFi+Bt ESP32
Post by: speedyant on Oct 30, 2016, 09:00 am
Mi ricordavo bene, si tratta di un dual core.
Title: Re: Modulo WiFi+Bt ESP32
Post by: PaoloP on Oct 31, 2016, 09:48 am
Ci vedrei bene un ArduESP32.  :)
Scheda con il layout della UNO che monta un ESP32.
Title: Re: Modulo WiFi+Bt ESP32
Post by: speedyant on Oct 31, 2016, 09:57 am
Ci vedrei bene un ArduESP32.  :)
Scheda con il layout della UNO che monta un ESP32.
Diamine, ho appena comprato la mkr1000! :D
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Nov 01, 2016, 11:18 am
A chi può interesare, QUI (https://hackaday.com/2016/10/31/whats-new-esp-32-testing-the-arduino-esp32-library/) un articolo di Hackaday sull'argomento ESP32 <-> Arduino.

Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Nov 02, 2016, 02:40 pm
e'stato anche scoperto un interprete basic nascosto nel fw precaricato, che funziona per davvero  :)

Title: Re: Modulo WiFi+Bt ESP32
Post by: ExperimentUno on Nov 02, 2016, 03:32 pm
Non è che ti riferisci al LUA?
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Nov 02, 2016, 03:33 pm
 :o
In effetti il LUA sembra un basic
Title: Re: Modulo WiFi+Bt ESP32
Post by: vbextreme on Nov 02, 2016, 03:36 pm
basic esp32 (http://hackaday.com/2016/10/27/basic-interpreter-hidden-in-esp32-silicon/)
Title: Re: Modulo WiFi+Bt ESP32
Post by: PaoloP on Nov 02, 2016, 04:49 pm
 :o
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Nov 02, 2016, 07:41 pm
 :o E' proprio il caso.
Se ci fosse stato anche il peek e poke sarei tornato ai tempi del C64......
Title: Re: Modulo WiFi+Bt ESP32
Post by: SukkoPera on Nov 03, 2016, 12:51 am
Veramente, se leggi bene, peek e poke ci sono eccome :D.
Title: Re: Modulo WiFi+Bt ESP32
Post by: ExperimentUno on Nov 03, 2016, 01:14 pm
Sembra un Basic tipo Amstrad.
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Nov 03, 2016, 04:30 pm
E' un porting del TinyBasic Plus
Visto che nel progetto originale peek & poke sono dichiarati "unimplemented" vuol dire che li ha aggiunti espressif
https://github.com/BleuLlama/TinyBasicPlus (https://github.com/BleuLlama/TinyBasicPlus)

Code: [Select]
5 POKE &H3FF44020, 16
10 POKE &H3FF44004, 16
20 DELAY 200
20 POKE &H3FF44004, 0
30 DELAY 200
40 PHEX PEEK(&H3FF4403C)
50 GOTO 10
Title: Re: Modulo WiFi+Bt ESP32
Post by: busco on Dec 28, 2016, 09:41 pm
Mi hanno regalato una schedina ESP32 della sparkfun, questa:

https://www.sparkfun.com/products/13907
$19.95

Dovrebbe arrivarmi a giorni.

Mi sono impostato le board come indicato nel sito della sparkfun,
compila gli esempi senza problemi


Ho fatto qualche esperienza con ESP8266/wemos utilizzando sempre
la libreria ESP8266WebServer

Esisterà una libreria simile alla ESP8266WebServer per questa scheda?


Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Dec 30, 2016, 08:41 pm
la sezione wifi e' dichiarata compatibile al 99%, quindi non dovresti avere problemi, le lib sono state prese quasi paroparo dal rpogetto 8266

Title: Re: Modulo WiFi+Bt ESP32
Post by: SukkoPera on Dec 30, 2016, 09:17 pm
Concordo, se vuoi puoi provare anche il mio Webbino (https://github.com/SukkoPera/Webbino).
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Dec 31, 2016, 11:17 am
bella cosa, quando ho un attimo lo testo, per ora ti watcho  :)

Title: Re: Modulo WiFi+Bt ESP32
Post by: busco on Dec 31, 2016, 01:06 pm
Grazie, proverò con le librerie dell' ESP8266
Title: Re: Modulo WiFi+Bt ESP32
Post by: busco on Jan 06, 2017, 08:13 pm
La scheda della sparkfun è arrivata, pagata il 20 dic arrivata il 5 gen dalla Germania.

Il solito blink caricato sulla ESP32 funziona.

Come detto ho fatto pratica con ESP8266 e la lib ESP8266WebServer con ottimi risultati.

@testato come suggerito

ho provato ad utilizzare la suddetta libreria  con la ESP32 ma non va a buon fine, si ferma sulla queue.h

Messaggio di errore in compilazione:
In file included from /home/../hardware/espressif/esp32/libraries/ESP8266WiFi/src/ESP8266WiFi.h:33:0,

from /home/.../hardware/espressif/esp32/libraries/ESP8266WebServer/src/ESP8266WebServer.h:28,

from /home/.../ESP8266-01_un_LED_05.ino:14:

/home/.../hardware/espressif/esp32/libraries/ESP8266WiFi/src/ESP8266WiFiType.h:26:19: fatal error:

 queue.h: No such file or directory

 #include <queue.h>

Ho provato anche a copiare questo file insieme alle librerie ma il risultato non cambia.

Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Jan 06, 2017, 10:18 pm
devo trovare il tempo per mettere mano seriamente a questo chip.
Il fatto e' che e' ancora in una fase embrionale nonostante abbiano assunto il tipo del core esp8266
secondo me ci sono sotto cose ancora non pronte, cose importanti o bug non previsti.
Uno dei motivi per i quali voglio metterci mano e' il BT, eppure al momento sul core arduino nulla di nulla di BT, e sul IDF non puoi usarlo assieme al wifi  :(

Title: Re: Modulo WiFi+Bt ESP32
Post by: roboticboyer on Jan 09, 2017, 09:17 pm
Ho dato uno sguardo alla cartella libraries del ESP32:
https://github.com/espressif/arduino-esp32/tree/master/libraries/WiFi/src (https://github.com/espressif/arduino-esp32/tree/master/libraries/WiFi/src)

Al momento sono state implementate poche librerie rispetto a quelle disponibili per ESP8266:
https://github.com/esp8266/Arduino/tree/master/libraries (https://github.com/esp8266/Arduino/tree/master/libraries)

Inoltre molte delle librerie del ESP8266 si chiamano "ESP8266qualcosa" e non solo "qualcosa".

Per quel motivo si generano gli errori di compilazione che Busco ci ha segnalato, quando cerca di usare le librerie del ESP8266 anche per l'ESP32.

Dobbiamo aspettare che il team ESP32 implementi le librerie mancanti per usare l'ottima libreria WebServer:
https://github.com/esp8266/Arduino/tree/master/libraries (https://github.com/esp8266/Arduino/tree/master/libraries)



   
Title: Re: Modulo WiFi+Bt ESP32
Post by: busco on Mar 03, 2017, 04:27 pm
Mi hanno regalato la ESP32 della Sparkfun:
Sparkfun ESP32 Thing
https://www.sparkfun.com/products/13907
IDE arduino-1.8.1
Scheda ESP32 Dev Module
Utilizzo come base il codice degli esempi della lib WiFi nome SimpleWiFiServer.ino
https://github.com/espressif/arduino-esp32/tree/master/libraries/WiFi/examples/SimpleWiFiServer

Ho aggiunto due pulsanti e una textbox.
Il codice HTML l'ho messo in un file separato per facilitare il debug.
File: SimpleWiFiServer_13.ino   //Codice C
          paginaHTML.h                   //Codice HTML
          maschera.png                    //Come appare

Il problema:
Gira abbastanza bene però dopo quanche minuto anche 10-15 minuti si blocca

Nel file allegato (ESP32_problemi.txt)
Visualizzo dei dati:
         tempo in mS ad ogni passaggio
         durata della prova.
         alla fine alcuni messaggi emessi dalla board
         e CPU Halt
A questo punto si blocca, questo è il mio problema.

Penso che tra i messaggi emessi dalla board ci sia anche
il motivo del problema ma non saprei come ricavarlo.

Allego i file.
Grazie per eventuali suggerimenti.
Title: Re: Modulo WiFi+Bt ESP32
Post by: roboticboyer on Mar 04, 2017, 12:29 pm
Ho decodificato l'errore:

Code: [Select]

0x40084807: uxListRemove at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/freertos/./list.c line 214
0x40084807: uxListRemove at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/freertos/./list.c line 214
0x40083dce: xPortGetCoreID at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/freertos/./tasks.c line 4398
:  (inlined by) xTaskRemoveFromEventList at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/freertos/./tasks.c line 3018
0x40082ba1: xQueueGenericSend at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/freertos/./queue.c line 1998
0x400e2a6d: sys_mbox_post at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/lwip/port/freertos/sys_arch.c line 500
0x400dbd41: tcpip_send_api_msg at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/lwip/api/tcpip.c line 467
0x400e2cc8: tcpip_apimsg at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/lwip/api/api_lib.c line 811
0x400e30c4: netconn_recved at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/lwip/api/api_lib.c line 811
0x400db24c: lwip_recvfrom at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/lwip/api/sockets.c line 3233
0x400db755: lwip_recvfrom_r at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/lwip/api/sockets.c line 3233
0x400db7ad: lwip_recv_r at /Users/ficeto/Desktop/ESP32/ESP32/esp-idf-public/components/lwip/api/sockets.c line 3233
0x400d108c: WiFiClient::read(unsigned char*, unsigned int) at /home/giorgio/Programmi_gio/arduino-1.6.13/hardware/espressif/esp32/cores/esp32/Print.h line 50
0x4010735d: WiFiClient::read() at /home/giorgio/Programmi_gio/arduino-1.6.13/hardware/espressif/esp32/libraries/WiFi/src/WiFiClient.cpp line 158
0x400d0e40: loop at /home/giorgio/Programmi_gio/arduino-1.6.13/portable/sketchbook/SimpleWiFiServer_13/SimpleWiFiServer_13.ino line 51
0x4010015d: loopTask(void*) at /home/giorgio/Programmi_gio/arduino-1.6.13/hardware/espressif/esp32/cores/esp32/main.cpp line 11 (discriminator 1)


Conviene caricare nel Arduino IDE l' EspExceptionDecoder
https://github.com/me-no-dev/EspExceptionDecoder/releases/download/1.0.6/EspExceptionDecoder-1.0.6.zip (https://github.com/me-no-dev/EspExceptionDecoder/releases/download/1.0.6/EspExceptionDecoder-1.0.6.zip)

Istruzioni:
https://github.com/me-no-dev/EspExceptionDecoder (https://github.com/me-no-dev/EspExceptionDecoder)




Title: Re: Modulo WiFi+Bt ESP32
Post by: roboticboyer on Mar 04, 2017, 12:32 pm
Qualcuno dice che serve cancellare la memoria flash del ESP32 quando comincia a dare i numeri
Code: [Select]
esptool --port COM3 erase_flash

Per chi usa linux:
invece di COM3 mettete l'indirizzo linux della porta USB
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Mar 04, 2017, 05:28 pm
ho rpovato anche io una volta il decoder delle eccezioni sull 8266, buona cosa che sia stato aggiornato anche per il 32.
ma poi ti ha aiutato a beccare il rpoblema ? perche' a me non aiuto' piu' di tanto

Title: Re: Modulo WiFi+Bt ESP32
Post by: SukkoPera on Mar 04, 2017, 05:31 pm
Io lo uso parecchio, lo trovo molto utile.
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Mar 04, 2017, 07:13 pm
fate un esempio,
tipo come si interpreta il risultato di roboticboyer ?
e' importante quella scritta discriminator 1 ?

Title: Re: Modulo WiFi+Bt ESP32
Post by: roboticboyer on Mar 05, 2017, 08:44 am
Io ho interpretato che la CPU si è bloccata quando ha eseguito la linea 11 del main.cpp
Code: [Select]
0x4010015d: loopTask(void*) at /arduino-1.6.13/hardware/espressif/esp32/cores/esp32/main.cpp line 11 (discriminator 1)

Sembra che l'errore segnalato da Busco capiti anche ad altri:
https://github.com/espressif/arduino-esp32/issues/109 (https://github.com/espressif/arduino-esp32/issues/109)
https://github.com/espressif/arduino-esp32/issues/119 (https://github.com/espressif/arduino-esp32/issues/119)
https://github.com/espressif/arduino-esp32/issues/207 (https://github.com/espressif/arduino-esp32/issues/207)
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Mar 07, 2017, 08:17 pm
ma il main.cpp e' nel core, vai a modificare quello ?
il rpoblema e' nel tuo .ino no ?

Title: Re: Modulo WiFi+Bt ESP32
Post by: SukkoPera on Mar 08, 2017, 12:28 am
Lo stacktrace si legge al contrario :). Il punto dove si è piantato è nella prima riga, che è stata invocata dalla seconda, ecc... Fino al main, dove il programma è partito.
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Mar 08, 2017, 08:12 am
Quindi freertos, list.c linea 214
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Mar 08, 2017, 02:03 pm
che e' ugualmente nel core e quindi non ci mettiamo mano.

L'unica indicazione utile che riguarda un .ino e'
SimpleWiFiServer_13.ino line 51

E' qui il problema ?

Title: Re: Modulo WiFi+Bt ESP32
Post by: SukkoPera on Mar 08, 2017, 02:36 pm
I casi sono due: o c'è un problema nella libreria (improbabile), o nel proprio sketch si fa qualcosa che la fa crashare. Bisogna fare dei test e cercare di capire l'arcano.
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Mar 09, 2017, 11:18 am
certo, ma a questo punto torniamo alla mia affermazione originaria, cioe' che sto decoder non mi dice il problema, in cosa mi aiuta ?
Alla fine sei sempre tu nel tuo .ino a dover risolvere

Title: Re: Modulo WiFi+Bt ESP32
Post by: SukkoPera on Mar 09, 2017, 02:40 pm
Questo è un caso un po' sfortunato, ma lo stacktrace in generale è utilissimo, perché almeno sai esattamente DOVE si è piantato il programma.

Questo caso andrebbe analizzato un po' meglio, ma comunque qualcosa di utile te lo dice.
Title: Re: Modulo WiFi+Bt ESP32
Post by: busco on Mar 15, 2017, 08:58 pm
Ho provato più volte il codice che ho proposto nel post #63

su una scheda ESP8266 (una wemos) sostituendo solo la libreria

con la ESP8266WiFi.h ed ha funzionato perfettamente per ore.
 
Title: Re: Modulo WiFi+Bt ESP32
Post by: biccius on Apr 14, 2017, 12:49 pm
Qualcuno ha informazioni su come implementare codice che utilizzi il Bluetooth classic su ESP32?
Title: Re: Modulo WiFi+Bt ESP32
Post by: busco on Apr 15, 2017, 09:31 am
Qualcuno ha informazioni su come implementare codice che utilizzi il Bluetooth classic su ESP32?
Non l'ho ancora provato, vorrei veder funzionare il WiFi.
Come segnalato sopra ho ancora dei problemi.

Tu lo hai provato il WiFi?
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Apr 20, 2017, 07:27 pm
il bluetooth non e' stato ancora implementato nel core Arduino.
Lo si puo' usare solo con l'SDK ufficiale, e comunque ho letto che non si puo' far funzionare contemporaneamente wifi+BT
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Apr 22, 2017, 03:55 pm
Da tempo avevo i sospetti, ora e' arrivata la conferma ufficiale:
Bug su Chip ESP32 (http://espressif.com/sites/default/files/documentation/eco_and_workarounds_for_bugs_in_esp32_en.pdf)
Title: Re: Modulo WiFi+Bt ESP32
Post by: biccius on Apr 23, 2017, 02:12 pm
Tra l'altro problemi da poco..
Non capisco il senso si rilasciare una cosa che non funziona
Sono costretto a ripiegare su esp826
Peccato
Title: Re: Modulo WiFi+Bt ESP32
Post by: roboticboyer on Apr 25, 2017, 08:03 am
Un sito ricco d' informazioni sul ESP32:
http://esp32.net (http://esp32.net)
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Apr 29, 2017, 10:30 am
ESP32 scende sotto i 5€

https://it.aliexpress.com/item/Replace-ESP8266-ESP32-ESP-32S-ESP-WROOM-32-Bluetooth-WIFI-Module-Dual-Core-CPU-With-Low/32799649345.html (https://it.aliexpress.com/item/Replace-ESP8266-ESP32-ESP-32S-ESP-WROOM-32-Bluetooth-WIFI-Module-Dual-Core-CPU-With-Low/32799649345.html)
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Apr 29, 2017, 10:39 am
Si sta smuovendo qualcosina, apparso un esempio Bluetooth nel core arduino

Bluetooth ESP32 Arduino (https://github.com/espressif/arduino-esp32/blob/master/libraries/SimpleBLE/examples/SimpleBleDevice/SimpleBleDevice.ino)
Title: Re: Modulo WiFi+Bt ESP32
Post by: busco on Jul 01, 2017, 10:13 am
Con gli ultimi aggiornamenti ho riscontrato miglioramenti, prove solo con il WiFi.

non si blocca più come capitava qualche mese fa.

 
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Jul 03, 2017, 10:39 am
grazie dell'update,
lo stai usando su core arduino o idf ?
Title: Re: Modulo WiFi+Bt ESP32
Post by: busco on Jul 05, 2017, 09:59 am
grazie dell'update,
lo stai usando su core arduino o idf ?
arduino
Title: Re: Modulo WiFi+Bt ESP32
Post by: PaoloP on Aug 25, 2017, 09:52 am
Secondo voi è difficile da saldare?

Misura 7x7 mm
(https://cdn-images-1.medium.com/max/1600/1*yN1sALmQ5wraeahD82ZcCA.jpeg)

Fonte --> https://blog.hackster.io/introducing-the-new-esp32-pico-d4-sip-99476238bc07 (https://blog.hackster.io/introducing-the-new-esp32-pico-d4-sip-99476238bc07)
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Aug 30, 2017, 08:58 am
Bello, quel pezzo di ferro immagino sia l'antenna ?
Tutto si può saldare, mano ferma ed occhi buoni  :)

Ma non c'è nel core arduino come board ?
Title: Re: Modulo WiFi+Bt ESP32
Post by: PaoloP on Aug 30, 2017, 11:03 am
Si. E' da installare a parte.
--> https://github.com/espressif/arduino-esp32 (https://github.com/espressif/arduino-esp32)
Purtroppo copiando il contenuto manualmente. Non hanno predisposto il file json per l'acquisizione automatica tramite IDE.
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Aug 31, 2017, 08:55 am
Si questo é il core dell'esp lo uso regolarmente, intendevo dire che non c'è come board questo chip, lo usano con la board esp32 dev board ?
Title: Re: Modulo WiFi+Bt ESP32
Post by: PaoloP on Aug 31, 2017, 10:04 am
Non lo so.
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Oct 18, 2017, 10:46 pm
dichiarato aggiornato il core per l'attacco KRACK

https://github.com/espressif/arduino-esp32/issues/739 (https://github.com/espressif/arduino-esp32/issues/739)
Title: Re: Modulo WiFi+Bt ESP32
Post by: SukkoPera on Oct 31, 2017, 02:54 pm
Ragazzi, ma qualcuno usa ESP32 per qualcosa di stabile? Io l'ho preso in mano l'altro giorno, perché mi serviva una scheda Wifi, ma tutti i miei ESP8266 erano occupati. Finora l'unica prova che avevo fatto era metterci Webbino: l'avevo lasciato girare per giorni senza alcun problema. Ora ho provato a farci qualcosa di un po' meno fine a sé stesso e ho iniziato a scontrarmi con una serie di strani problemi:

1. analogWrite() non è ancora implementata.
2. Se collego qualcosa al pin 12, non riesco a flashare la scheda.
3. A volte, alla prima accensione, la scheda parte, dopo un po' si riavvia e quindi parte come dovrebbe.

C'è poi in generale un velo di oscurità su quali funzioni sono assegnate a quali pin. Mi pare di capire che sto chip ha una GPIO matrix, che permette sostanzialmente di assegnare le funzioni più o meno ai pin che si vuole. Ad esempio, l'interfaccia i2c di default dovrebbe essere sui pin 21 e 22, ma io l'ho usata su 13 e 14. Un documento chiarificatore in questo senso dovrebbe essere tale ESP32 Pin List (http://wiki.ai-thinker.com/_media/esp32/docs/esp32_chip_pin_list_en.pdf), ma sinceramente io non ci capisco granché, non mi pare molto chiaro.

Non riesco nemmeno a capire quanta corrente può erogare ciascun pin :(.

Se non altro, devo dire che (a parte i già citati problemi al primo avvio), il sistema pare stabile, e non ho riscontrato alcun problema col wifi. Personalmente ho un doIT devkit V1.

Perché questo chip, che sulla carta è così figo, sta faticando così tanto ad affermarsi?
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Oct 31, 2017, 07:25 pm
Io lo sto usando su un progetto ed al momento tutto ok.
Esistono due versioni del chip, la vecchia versione Rev0 ha un bel po di problemi.
É da poco stata mergiata la mia modifica per la lettura della revisione hw, io nel mio progetto ho messo un bel blocco nel Setup() in modo da costringere ad usare solo chip Rev1

Per i pin si puoi rimapparli ma sono così tanti che non vale la pena.

Uno dei bug della prima versione é proprio il reboot all'avvio
Title: Re: Modulo WiFi+Bt ESP32
Post by: SukkoPera on Oct 31, 2017, 07:27 pm
Mi passi il codice per la revisione?
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Oct 31, 2017, 10:24 pm
Stampati il risultato di getchiprevision e butta nel cestino tutti i moduli che ti rispondono 0  :)

https://github.com/espressif/arduino-esp32/pull/704/commits/b6a3fa5ebc5f7f68743bf724834e3017b5fc8da6 (https://github.com/espressif/arduino-esp32/pull/704/commits/b6a3fa5ebc5f7f68743bf724834e3017b5fc8da6)
Title: Re: Modulo WiFi+Bt ESP32
Post by: SukkoPera on Nov 01, 2017, 10:54 am
Grazie. A quanto pare, dovrò buttare l'unico ESP32 che ho :smiley-confuse:.


Ma come posso essere certo di comprare un rev. 1?
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Nov 02, 2017, 03:44 pm
Probabilmente comperando dagli specializzati, quelli che sono loro stessi produttori delle schede che ventono, tipo RobotDyn che però non ha schede con ESP32.
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Nov 02, 2017, 03:54 pm
Probabilmente comperando dagli specializzati, quelli che sono loro stessi produttori delle schede che ventono, tipo RobotDyn che però non ha schede con ESP32.
Sparkfun ne ha diverse, esempio QUESTA (https://www.sparkfun.com/products/13907), ma, se ho ben capito, tocca chiedergli  che visione del chip montano ... ::)

Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Nov 03, 2017, 12:11 am
Io ho preso 7 chip che mi servivano d'urgenza adafruit via mouser.
Risultano tutti Rev0  :o
Quindi sembra che al momento non v'è certezza, anzi credo proprio che stiano svuotando i magazzini dei Rev0 finché non risulta troppo conosciuta la situazione
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Nov 09, 2017, 08:50 am
Ho trovato QUESTO (https://www.hackster.io/rayburne/esp32-development-board-official-vs-clone-7f4ff7) interessante articolo che compara la "sensibilità" di due assembraggi diversi ... ;)

Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Nov 10, 2017, 08:31 am
A questo punto si potrebbe trattare di due revisioni diverse.
Per cui ho aggiunto un commento al post di Ray Burnette vosto che è l'unico che può eseguire il test.
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Nov 11, 2017, 12:11 pm
Dal documento ufficiale ESP non risultano differenze sul discorso della sensibilità di ricezione tra Rev0 e Rev1.
Mi aspetto che risultano tutti Rev0 anche a lui.

Una cosa che ho notato subito è che il clone ha il pcb sotto l'antenna, se anche non c'è rame sotto, e non sappiamo se ce ne è sopra, di certo è meglio che non ci sia proprio nemmeno il pcb stesso.

Io sul mio progetto ho fatto uno squarcio lasciando invece lateralmente il pcb in modo da proteggere l'antenna
Title: Re: Modulo WiFi+Bt ESP32
Post by: robademar on Jan 16, 2018, 03:23 pm
salve
sono nuovo in questo forum  e sto cercando di usare l'esp32 con webbino per un mio progettino.
Ho un po' di esperienza con Arduino e la programmazione ma ogni tanto incontro problemi che per altri sono banali e per me insuparabili in tempi ragionevoli.
Il punto è che, dopo aver scaricato le librerie wifi e webbino, quando compilo l'esempio Simpl Server ottengo tutta una serie di errori. Ho provato a compilarlo per la scheda esp32.
Visto che qualcuno lo ha già utilizzato mi potreste dire come fare?

Un caffè virtuale a chi mi aiuta. Grazie

Questi gli errori di compilazione
Arduino:1.8.3 (Windows 10), Scheda:"ESP32 Dev Module, QIO, 80MHz, 4MB (32Mb), 921600, None"

In file included from C:\Users\roberto\Documents\Arduino\libraries\Webbino-master\src/WebbinoCore/HTTPRequestParser.h:24:0,

                 from C:\Users\roberto\Documents\Arduino\libraries\Webbino-master\src/WebbinoCore/WebClient.h:25,

                 from C:\Users\roberto\Documents\Arduino\libraries\Webbino-master\src/WebbinoCore/NetworkInterface.h:25,

                 from C:\Users\roberto\Documents\Arduino\libraries\Webbino-master\src/WebbinoCore/WebServer.h:24,

                 from C:\Users\roberto\Documents\Arduino\libraries\Webbino-master\src/Webbino.h:21,

                 from C:\Users\roberto\Documents\Arduino\libraries\Webbino-master\examples\SimpleServer\SimpleServer.ino:20:

C:\Users\roberto\Documents\Arduino\libraries\Webbino-master\src/webbino_debug.h:48:2: warning: #warning Flash strings disabled [-Wcpp]

 #warning Flash strings disabled

  ^

In file included from C:\Program Files (x86)\Arduino\libraries\Ethernet\src\Dhcp.cpp:4:0:

C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility/w5100.h: In static member function 'static void W5100Class::initSS()':

C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility/w5100.h:353:64: error: 'digitalPinToPort' was not declared in this scope

       *portModeRegister(digitalPinToPort(ETHERNET_SHIELD_SPI_CS)) |= digitalPinToBitMask(ETHERNET_SHIELD_SPI_CS);

                                                                ^

C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility/w5100.h:353:65: error: 'portModeRegister' was not declared in this scope

       *portModeRegister(digitalPinToPort(ETHERNET_SHIELD_SPI_CS)) |= digitalPinToBitMask(ETHERNET_SHIELD_SPI_CS);

                                                                 ^

C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility/w5100.h:353:112: error: 'digitalPinToBitMask' was not declared in this scope

       *portModeRegister(digitalPinToPort(ETHERNET_SHIELD_SPI_CS)) |= digitalPinToBitMask(ETHERNET_SHIELD_SPI_CS);

                                                                                                                ^

C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility/w5100.h: In static member function 'static void W5100Class::setSS()':

C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility/w5100.h:356:66: error: 'digitalPinToPort' was not declared in this scope

       *portOutputRegister(digitalPinToPort(ETHERNET_SHIELD_SPI_CS)) &= ~digitalPinToBitMask(ETHERNET_SHIELD_SPI_CS);

                                                                  ^

C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility/w5100.h:356:67: error: 'portOutputRegister' was not declared in this scope

       *portOutputRegister(digitalPinToPort(ETHERNET_SHIELD_SPI_CS)) &= ~digitalPinToBitMask(ETHERNET_SHIELD_SPI_CS);

                                                                   ^

C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility/w5100.h:356:115: error: 'digitalPinToBitMask' was not declared in this scope

       *portOutputRegister(digitalPinToPort(ETHERNET_SHIELD_SPI_CS)) &= ~digitalPinToBitMask(ETHERNET_SHIELD_SPI_CS);

                                                                                                                   ^

C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility/w5100.h: In static member function 'static void W5100Class::resetSS()':

C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility/w5100.h:359:66: error: 'digitalPinToPort' was not declared in this scope

       *portOutputRegister(digitalPinToPort(ETHERNET_SHIELD_SPI_CS)) |= digitalPinToBitMask(ETHERNET_SHIELD_SPI_CS);

                                                                  ^

C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility/w5100.h:359:67: error: 'portOutputRegister' was not declared in this scope

       *portOutputRegister(digitalPinToPort(ETHERNET_SHIELD_SPI_CS)) |= digitalPinToBitMask(ETHERNET_SHIELD_SPI_CS);

                                                                   ^

C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility/w5100.h:359:114: error: 'digitalPinToBitMask' was not declared in this scope

       *portOutputRegister(digitalPinToPort(ETHERNET_SHIELD_SPI_CS)) |= digitalPinToBitMask(ETHERNET_SHIELD_SPI_CS);

                                                                                                                  ^

exit status 1
Errore durante la compilazione per la scheda ESP32 Dev Module.

Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
"Mostra un output dettagliato durante la compilazione"
in "File -> Impostazioni"
Title: Re: Modulo WiFi+Bt ESP32
Post by: SukkoPera on Jan 16, 2018, 03:31 pm
Vai in webbino_config.h (https://github.com/SukkoPera/Webbino/blob/master/src/webbino_config.h#L26), commenta WEBBINO_USE_WIZ5100 e scommenta WEBBINO_USE_ESP8266_STANDALONE WEBBINO_USE_WIFI.

La libreria wifi non serve a niente, il core per ESP32 ha la sua implementazione.
Title: Re: Modulo WiFi+Bt ESP32
Post by: robademar on Jan 16, 2018, 08:38 pm
grazie sukko,
sono andato avanti ma ora sono fermo per questo errore:

Arduino:1.8.3 (Windows 10), Scheda:"ESP32 Dev Module, QIO, 80MHz, 4MB (32Mb), 921600, None"

In file included from C:\Users\roberto\Documents\Arduino\libraries\Webbino-master\examples\SimpleServer\SimpleServer.ino:45:0:

C:\Users\roberto\Documents\Arduino\libraries\Webbino-master\src/WebbinoInterfaces/AllWiFi.h:48:25: fatal error: ESP8266WiFi.h: No such file or directory

compilation terminated.

exit status 1
Errore durante la compilazione per la scheda ESP32 Dev Module.

Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
"Mostra un output dettagliato durante la compilazione"
in "File -> Impostazioni"
Title: Re: Modulo WiFi+Bt ESP32
Post by: SukkoPera on Jan 17, 2018, 12:03 am
Scusami, ho detto una boiata, il #define giusto è WEBBINO_USE_WIFI. :smiley-roll-sweat:
Title: Re: Modulo WiFi+Bt ESP32
Post by: robademar on Jan 17, 2018, 09:19 am
grazie mille 2 volte. ora compila :)

con tutto quello che hai scritto un piccolo errore è subito perdonato. Grazie per il tuo lavoro adesso inizierò a studiare webbino
Title: Re: Modulo WiFi+Bt ESP32
Post by: robademar on Jan 17, 2018, 02:28 pm
dopo la compilazione lo carica ma non riesce ad ottenere l'indirizzo ip. per sicurezza del mio ambiente ho provato l'esempio Simplewifi server della libreria esp32 e questo funziona.
Qualche altro suggerimento?
PS ho anche provato a modificare l'esempio di webbino facendo luppare sul connect ma non riceve mai l'indirizzo.
Ho anche indicato ssid epw nelle 2 posizioni del source.
Ho visto che l'esempio si compila secondo alcune opzioni. immagino che avendo scommentato webbino_use_wifi
l'unica opzione usata sia questa ed ho quindi commentato la catena degli if lasciando solo questa. No result
Title: Re: Modulo WiFi+Bt ESP32
Post by: SukkoPera on Jan 17, 2018, 04:01 pm
Devi inserire SSID e password qui:

Code: [Select]
#include <WebbinoInterfaces/AllWiFi.h>

    // Wi-Fi parameters
    #define WIFI_SSID        "ssid"
    #define WIFI_PASSWORD    "password"

    NetworkInterfaceWiFi netint;



e sotto lasciare la riga:

Code: [Select]
bool ok = netint.begin (WIFI_SSID, WIFI_PASSWORD);


Ma puoi direttamente lasciare la serie di #if, dovrebbe funzionare.

Al limite prova anche l'esempio FixedIPAddress.
Title: Re: Modulo WiFi+Bt ESP32
Post by: robademar on Jan 17, 2018, 07:01 pm
Non ci sono ancora. l'esempio di fix address ha questo errore:

ixedIPAddress:100: error: #error "WiFi/WiFi101 does not currently support static IP configuration"

#error "WiFi/WiFi101 does not currently support static IP configuration"


Mentre questa è la prima parte del code che uso per il simple server


#include <Webbino.h>

// Instantiate the WebServer
WebServer webserver;

// Instantiate the network interface defined in the Webbino headers
#if defined (WEBBINO_USE_ENC28J60)
#include <WebbinoInterfaces/ENC28J60.h>
NetworkInterfaceENC28J60 netint;
#elif defined (WEBBINO_USE_WIZ5100) || defined (WEBBINO_USE_WIZ5500)
#include <WebbinoInterfaces/WIZ5x00.h>
NetworkInterfaceWIZ5x00 netint;
#elif defined (WEBBINO_USE_ESP8266)
#include <WebbinoInterfaces/AllWiFi.h>

#include <SoftwareSerial.h>
SoftwareSerial swSerial (6, 7);

// Wi-Fi parameters
#define WIFI_SSID        "Vodafone-roberto"
#define WIFI_PASSWORD    "tim******"

NetworkInterfaceWiFi netint;
#elif defined (WEBBINO_USE_WIFI) || defined (WEBBINO_USE_WIFI101) || \
defined (WEBBINO_USE_ESP8266_STANDALONE)
#include <WebbinoInterfaces/AllWiFi.h>

// Wi-Fi parameters
#define WIFI_SSID        "Vodafone-roberto"
#define WIFI_PASSWORD    "tim******"


NetworkInterfaceWiFi netint;
#elif defined (WEBBINO_USE_DIGIFI)
#include <WebbinoInterfaces/DigiFi.h>
NetworkInterfaceDigiFi netint;
#endif




ho visto che ho 2 librerie wifi con wifi.h.Una si trova nelle librerie di arduino l'altra nell' hardware
espressif, ovvero nell'aggiunta che ho fatto per gestire la scheda. e dal source ho visto che sono differenti. Mi sa che il problema sta lì. Che ne dici Sukko?

Il compilatore rileva la presenza di 2 wifi.h ed usa quell'hardware.
Title: Re: Modulo WiFi+Bt ESP32
Post by: SukkoPera on Jan 18, 2018, 10:30 am
OK, allora l'esempio con IP statico non lo puoi usare, sorry. Non saprei, io ho fatto un rapido test e me funziona, forse devo provare ad aggiornare il core e vedere se ci sono problemi con le ultime versioni.
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Jan 18, 2018, 01:33 pm
>robademar:   ti ricordo che in conformità al regolamento (http://forum.arduino.cc/index.php?topic=149082.0), punto 7, devi editare il tuo post #113 (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra). Grazie.

Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: robademar on Jan 18, 2018, 01:51 pm
thanks and sorry.
In effetti non sono molto pratico con questi strumenti :(
Title: Re: Modulo WiFi+Bt ESP32
Post by: biccius on Feb 22, 2018, 11:01 am
ciao a tutti

qualcuno ha aggiornamenti riguardo lo sviluppo di esp32?
in particolare si parlava nei post precedenti di bug e possibilità di avere esempi bluetooth classic nell'sdk arduino
Title: Problema con ESP32
Post by: andrea1201 on Mar 15, 2018, 12:43 pm
Salve, ho un due esp32 e vorrei programmare usando ide arduino, il mio progetto è quello di creare una rete wifi e che l'altro si colleghi, i due esp e si dovrebbero scambiare dati o almeno uno che invii dati e l'altro li esegua (per esempio all'espA è collegato un potenziometro invece l'espB riceve il valore del potenziometro)
Io ho provato a creare uno come Accesspoint e l'altro client ma non riesco a far inviare dati.
Avevo pensato di configurare l'esp32 come AP+Station (credo che non sia possibile con questo modello) ma comunque ho usato le direttive (#if,#else e #endif) ma niente si blocca dopo la configurazione di AP
Non chiedo che mi mandiate per forza tutto il codice ma fatemi capire le librerie e le funzioni che dovrei usare
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Mar 15, 2018, 08:45 pm
Lascia stare le direttive  :)

Si può fare tranquillamente quello che chiedi,
In tanti modi diversi
Esempio puoi usare il primo come webserver ed il secondo come client, puoi passare dati in mofo bidirezionale
Oppute puoi usare Telnet, sempre da un lato come server e l'altro client.

Consiglio di iniziare a studiare gli esempi integrati nel core esp32, anche AP+Station è funzionante
Title: Re: Modulo WiFi+Bt ESP32
Post by: andrea1201 on Mar 15, 2018, 11:29 pm
Lascia stare le direttive  :)

Si può fare tranquillamente quello che chiedi,
In tanti modi diversi
Esempio puoi usare il primo come webserver ed il secondo come client, puoi passare dati in mofo bidirezionale
Oppute puoi usare Telnet, sempre da un lato come server e l'altro client.

Consiglio di iniziare a studiare gli esempi integrati nel core esp32, anche AP+Station è funzionante

Se io creo un web server ho bisogno di una rete di accesso quindi di un access point, a questo punto avrei bisogno di tre dispositivi uno access point l'altro web server e l'altro client (anche con telnet), invece l'opzione ap+station non riesco a configurarla... se mi puoi dare una mano perfavore ti sono grato 
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Mar 17, 2018, 12:15 pm
In questa issue c'è un esempio

WiFi.mode(WIFI_MODE_APSTA);

https://github.com/espressif/arduino-esp32/issues/1040
 (https://github.com/espressif/arduino-esp32/issues/1040)

Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Mar 17, 2018, 04:40 pm
Se io creo un web server ho bisogno di una rete di accesso quindi di un access point, a questo punto avrei bisogno di tre dispositivi uno access point l'altro web server e l'altro client (anche con telnet), invece l'opzione ap+station non riesco a configurarla... se mi puoi dare una mano perfavore ti sono grato  
AP significa che altri dispositivi si possono connettere in WiFi all'ESP.
STA significa che l'ESP si connette ad un altro AP di solito il modem/router.
WebServer significa che c'è un programmino che ascolta per alcune richieste con un determinato protocollo, il suo funzionamento è indipendente dal fatto che l'ESP sia in STA o in AP.
Client è invece un programmino che si connette ad un server, anche questo è indipendente dal fatto che l'ESP sia in STA o in AP.

Ciò che cambia fra AP e STA è che mentre in AP sono accessibili solamente i dispositivi connessi all'ESP in STA si vedono fra loro tutti i dispositivi connessi all'AP, se è il modem/router è anche possible collegarsi ad internet, quindi l'ESP potrebbe essere accessibile da internet (in alcuni casi non è possibile, dipende dal provider) e sicuramente può accedere a server remoti presenti in rete internet.

Se hai due ESP che devono solo comunicare fra loro uno deve essere un AP e l'altro uno STA, ma possono essere anche due STA collegati allo stesso modem.
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Mar 18, 2018, 02:47 pm
Credo che questo lo sappia, infatti tutto nasce dal fatto che vuole usare due soli esp ma non gli funziona ap+sta su uno dei due

Title: Re: Modulo WiFi+Bt ESP32
Post by: PaoloP on Mar 27, 2018, 05:02 pm
Perché non hanno ancora creato il pacchetto di installazione tramite IDE di Arduino (Board Manager)?
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Mar 27, 2018, 10:06 pm
Non l'hanno ancora implementato, magari se si ricevono più richieste sulla issue si danno una mossa.
https://github.com/espressif/arduino-esp32/issues/515 (https://github.com/espressif/arduino-esp32/issues/515)

Title: Re: Modulo WiFi+Bt ESP32
Post by: mauri_va on Apr 12, 2018, 08:19 pm
Salve a tutti!
Sono davvero niubbo sia per quanto riguarda Arduino, sia per quanto riguarda questo modulo ESP32.
Sto cercando di dare una mano per un progetto che prevede l'uso di Arduino Uno a cui sono collegati in un caso ad un semplice pulsante, in un altro a dei sensori.
La parte che mancherebbe sarebbe la possibilità di inviare i dati via wi-fi e/o bluetooth ad uno smartphone o ad un pc.

Nelle mie ricerche su questo argomento sono incappato in questo modulo ESP32, ma ho capito che la cosa non sia così semplice.

Anzitutto non ho capito come interfacciare una scheda Arduino Uno con l'ESP32: mi sembra che esistano in commercio solo delle schede di sviluppo che integrano il chip ESP32 che di fatto si sostitiscono a Arduino Uno, o sbaglio? C'è comunque la possibilità di far comunicare le due schede?

Inoltre mi sembra di aver capito che l'integrazione delle librerie in Arduino IDE è ancora incompleta, in particolare la gestione del bluetooth ho capito essere ancora non implementata o allo stato embrionale. Lo sviluppo completo sarebbe possibile passando a IDF. La domanda torna a questo punto quella precedente: usando programmi sviluppati in IDF è possibile interagire con una scheda Arduino Uno?

E' ovvio che su Arduino c'è già tutto un lavoro fatto che si vorrebbe "salvare".

Qualcuno può darmi delle dritte su come muovermi e quali guide e documentazione leggere per fare quanto mi serve?
Grazie per l'attenzione.
Maurizio
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Apr 12, 2018, 08:25 pm
>mauri_va: essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (http://forum.arduino.cc/index.php?topic=113640.0) (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO (http://forum.arduino.cc/index.php?topic=149082.0) ... Grazie.

Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: mauri_va on Apr 13, 2018, 01:01 pm
>mauri_va: essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (http://forum.arduino.cc/index.php?topic=113640.0) (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO (http://forum.arduino.cc/index.php?topic=149082.0) ... Grazie.

Guglielmo
Grazie Guglielmo per la segnalazione!
L'avevo letto il regolamento, ma l'obbligo della presentazione mi era sfuggito.
Ho rimediato.
Scusate la svista!
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Apr 13, 2018, 05:00 pm
Maurizio,
ho preso l'ESP32 ma non è ancora arrivato. Per quanto ne so, può benissimo sostituire la UNO con adattamenti del caso.

Ma può comunicare con la UNO tramite la seriale ma credo che i livelli vadano adattati perché l'ESP32 dovrebbe essere un dispositivo che lavora solo a 3.3V.

Ci sarebbe anche l'ESP8266 di cui esiste una libreria per farlo funzionare come lo shield WiFi ufficiale della UNO ma non ha il bluetooth.
Title: Re: Modulo WiFi+Bt ESP32
Post by: mauri_va on Apr 14, 2018, 03:32 pm
Maurizio,
ho preso l'ESP32 ma non è ancora arrivato. Per quanto ne so, può benissimo sostituire la UNO con adattamenti del caso.

Ma può comunicare con la UNO tramite la seriale ma credo che i livelli vadano adattati perché l'ESP32 dovrebbe essere un dispositivo che lavora solo a 3.3V.

Ci sarebbe anche l'ESP8266 di cui esiste una libreria per farlo funzionare come lo shield WiFi ufficiale della UNO ma non ha il bluetooth.
Grazie per la risposta.
Avevo capito che la scheda di sviluppo dovrebbe sostituire la UNO, ma le librerie al momento integrate nella IDE Arduino non sono ancora complete, da quanto ho capito, nonostante siano già passati parecchi mesi dalla commercializzazione.
Tra l'altro ho visto che esistono esempi d'uso del bluetooth per l'IDE, ma non ho ancora avuto modo di studiarli (possibile che nessuno in rete l'abbia ancora fatto?).
La scelta della ESP32 rispetto alla ESP8266 dipendeva proprio dalla possibilità di utilizzare sia il wifi che il bluetooth.

La mia scheda di sviluppo ha una porta microUSB per l'alimentazione, quindi a 5V, ma nel caso di collegamento con la UNO, dovrebbe essere possibile alimentarla a 3.3V, giusto?
La comunicazione frala UNO e la ESP32 tramite seriale non mi è molto chiara (come detto nella presentazione sono un VERO principiante in questo mondo, nonostante non sia del tutto digiuno di programmazione in genere). Se qualcuno su questo ha un suggerimento, una pagina di esempio da indicarmi, ne sarei davvero grato.
Grazie mille!
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Apr 14, 2018, 04:09 pm
Il BT, se parliamo di core Arduino, é affidato ad una libreria esterna, e mi sembra che ad oggi non possa essere usato in contemporanea bt e wifi.
Questo se parliamo di BLE, che non tutti i cell hanno. Se parli di BT Classic c'è ancora meno in giro, credo nulla su core Arduino e non so se Idf lo supporta già.

Potresti rinunciare a BT e usare un esp8266, oppure usare un esp per wifi e un altro modulo per bt hc6, hm10, ecc

Sul topic esp8266 trovi allegato al primo messaggio uno schema per la questione dei livelli sulla connessione seriale ad una Uno
https://forum.arduino.cc/index.php?topic=265682.0 (https://forum.arduino.cc/index.php?topic=265682.0)

Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Apr 16, 2018, 03:44 pm
A scanso di equivoci la stragrande maggioranza delle schede Arduino UNO non è in gradi di alimentare correttamente tali moduli dalla linea a 3.3V: la corrente fornita non basta.
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Apr 18, 2018, 05:54 am
Lo schema a cui mi riferisco tiene conto anche di questo ;-)

Title: Re: Modulo WiFi+Bt ESP32
Post by: mauri_va on Apr 19, 2018, 12:22 pm
Grazie a tutti per le risposte: appena avrò tempo mi studierò le cose che mi avete indicato.

Il BT, se parliamo di core Arduino, é affidato ad una libreria esterna, e mi sembra che ad oggi non possa essere usato in contemporanea bt e wifi.
Questo se parliamo di BLE, che non tutti i cell hanno. Se parli di BT Classic c'è ancora meno in giro, credo nulla su core Arduino e non so se Idf lo supporta già.
Effettivamente che wifi e bt non si potessero usare contemporaneamente l'avevo capito. Fra gli esempi c'è un file chiamato "WiFiBlueToothSwitch.ino" il cui nome non lascia molto spazio ai dubbi...
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Apr 19, 2018, 02:35 pm
Mi è arrivato il modulo, la scansione delle reti funziona ma non mi si connette all'access point, cui altri moduli ESP8266 si connettono senza problemi. Potrebbe essere colpa dell'AP ma non ho avuto tempo di indagare.
Si tratta di una revisione 1.
Title: Re: Modulo WiFi+Bt ESP32
Post by: mauri_va on Apr 19, 2018, 04:16 pm
Mi è arrivato il modulo, la scansione delle reti funziona ma non mi si connette all'access point, cui altri moduli ESP8266 si connettono senza problemi. Potrebbe essere colpa dell'AP ma non ho avuto tempo di indagare.
Si tratta di una revisione 1.
Grazie, tienici aggiornati sugli sviluppi!
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Apr 20, 2018, 08:16 am
Funziona! A casa mi si è connesso regolarmente, al lavoro invece non si è connesso all'AP costituito da un pennino WiFi e Virtual Router, forse ho sbagliato qualcosa perché di solito le difficoltà di connessione le ho nell'assegnazione dell'IP ma in questo caso nel Virtual Router Manager vedo la connessione lo stesso e in questo caso non ho visto nulla.

A questo punto mi scarico il PDF di Neil Kolban, che ha già scritto quello sull'ESP8266 (solo in inglese), che dovrebbe  riportare tutto quello che si conosce su questo chip. Su GitHub ho visto degli esempi e la libreria BLE è la sua.

Io ho installato il core manualmente senza git.
Ho scaricato il repository da GitHub e l'ho decompresso in hardware/espressif/esp32 se lo mettete in un'altra cartella l'IDE non lo vede. La cartella hardware è una sottocartella di quella dove stanno i vostri sketch, dove c'è anche la libraries.
Poi ho scaricato la singola libreria BLE dal sito di Neil usando downGit che ti permette di scaricare una singola parte di un repository e l'ho decompressa in hardware/espressif/esp32/libraries/BLE
Se non lo fate il core funziona lo stesso ma ovviamente non potete usare il BLE e l'IDE vi darà continuamente errore sulla libreria perché vede la cartella ma dentro non c'è nulla.
Infine vado nella cartella hardware/espressif/esp32/tools e lancio get.exe come amministratore. Questo programma scaricherà il compilatore, un paio di file zip.


L'unico sketch che ho provato è quello che fa uso dei server NTP per sincronizzare l'orologio interno ed avere l'ora esatta tenendo conto di fuso orario e ora estiva ed invernale.


La storia che bluetooth e wifi non possono funzionare contemporaneamente è seccante. Il vantaggio di questo affare è che ci sono 2 core di cui uno gestisce il WiFi come l'ESP8266 mentre l'altro può fare... altro senza essere interrotto.


Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Apr 20, 2018, 11:44 pm
Rev1 l'hai testato con l'apposito comando ?
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Apr 21, 2018, 04:36 pm
Affermativo!
Più precisamente con quello modificato da te.
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Apr 21, 2018, 09:00 pm
Quindi funziona  :)
Puoi postare il link per comprarne uno che i miei sono tutti Rev0 anche avendo preso degli Adafruit
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Apr 22, 2018, 11:26 am
Funziona si, quello precedente, per dire, non funziona perché c'è qualcosa non dichiarato.
A scanso di equivoci allego lo sketch.

L'ho preso da Aliexpress
https://www.aliexpress.com/item/LOLIN32-Wifi-Bluetooth-Development-Board-Antenna-ESP32-ESP-32-REV1-CH340-CH340G-MicroPython-Micro-USB-Lithium/32846143452.html (https://www.aliexpress.com/item/LOLIN32-Wifi-Bluetooth-Development-Board-Antenna-ESP32-ESP-32-REV1-CH340-CH340G-MicroPython-Micro-USB-Lithium/32846143452.html)
Ma devo ancora capire cosa farci perché i progetti che ho visto finora sono fattibili anche con un ESP8266 mentre questo affare ha molte più caratteristiche interessanti.
Title: Re: Modulo WiFi+Bt ESP32
Post by: SukkoPera on Apr 22, 2018, 12:49 pm
In effetti anch'io ho questo "problema": L'ESP8266 è già più che sufficiente per praticamente ogni progetto. Prendere un ESP32, che costa di più, ha un core meno maturo, ha alcuni problemi hardware (sulla Rev.0 almeno)... Chi me lo fa fare?
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Apr 22, 2018, 10:16 pm
Possibili usi da verificare: gestione di moduli video (l'OV7670) e forse comunicazioni cifrate. La memoria RAM in più dovrebbe essere utile.
Ci sarebbe anche anche la generazione di segnali video anche se si spreca la parte WiFi.
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Apr 23, 2018, 09:24 am
C'è il discorso https, qui la cifratura è inyegrata in HW.
Poi il bluetooth, Sia Classic che Ble

Poi c'è il coprocessore, che può fare gestione di sensori tenendo spente le due Cpu.

Il problema è il core Arduino, che pur essendo Ufficiale è indietro anni luce.
Ad esempio il dns server è stato integrato da pochissimo solo grazie ai tipi di wifimanager coi quali ho collaborato rompendo le palle con issue e test :-)
Mentre il Webserver non c'è ancora, sei costretto ad usare webserver modificati da terzi.

Nemmeno il board manager è presente, purtroppo sembra che aver deciso di creare ufficialmente un core arduino invece di velocizzare le cose le rallenta
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Apr 23, 2018, 01:17 pm
Le comunicazioni cifrate le avevo dimenticate. Se non sbaglio sull'ESP8266 sono possibili ma consumano un sacco di risosrse.
L'installazione manuale è un po' particolare, come ho scritto sopra non basta decomprimere il repository come succedeva con altri core. Installando git, come consigliato da expressif si risparmia lo scaricamento della sola libreria BLE e un po' si automatizza l'aggiornamento.
Title: Modulo Wi-Fi ESP32
Post by: milefori on Jun 14, 2018, 02:52 pm
Buona giornata ragazzi
spero di non commettere cavolate ponendo qui la mia domanda,
visto che ci sono 180 topic pero mi trovo sul primo, non so come funziona,

la mia domanda, più cortesemente una richiesta di aiuto,
qui si parla della ESP8266 ma io credo sia molto simile alla ESP32 che io posseggo,
il problema e il seguente:
dopo molte ricerche sono riuscito a scrivere un file per una specie di telecomando via WiFi,
il tutto funziona correttamente fin tanto che la ESP si trova all'interno "ovviamente" del segnale WiFi,
ma se per un qualsiasi motivo perde il segnale, ovvio si di sconnette, ma poi anche se sono molto vicino al ruter ed ovviamente il segnale e presente lei non si connette più, perché si riconnetta  la devo resettare,

vorrei postare il file ma non so se sia corretto farlo qui,
se posso lo posto volentieri

mille grazie a chi mi può dare qualche suggerimento per risolvere l'inghippo
Title: Re: Modulo Wi-Fi ESP32
Post by: docdoc on Jun 14, 2018, 03:04 pm
Si che puoi postarlo, se non è troppo lungo mettilo in un post tra i tag [ code ] altrimenti mettilo come file allegato.
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Jun 14, 2018, 03:06 pm
Ho spostato io gli ultimi due post nel thread dedicato al ESP32.

Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Jun 14, 2018, 05:18 pm
Come ho scritto su, io ho avuto problemi banali di connessione che, con l'ESP8266 non ho mai avuto.
Non ho mai provato quel che capita a te ma posso confermare che con l'ESP8266 non succede, se perde la connessione poi evidentemente prova finché si riconnette. Ma è una cosa che fa la parte di firmware che non vediamo e che è curata da Espressif.
Qui sarà la stessa cosa ma temo che ancora il firmware sia immaturo, nonostante l'esperienza ESP8266.
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Jun 14, 2018, 11:21 pm
Io metto comunque un controllo sulla connessione, e se é disconnesso provo a riconnettere.
Così hai la gestione di tutto senza affidarti a cose che non vedi
Title: Re: Modulo WiFi+Bt ESP32
Post by: milefori on Jun 16, 2018, 08:15 am
scusate il ritardo, ma viene prima la famiglia,
non ne combino una di giusta,
grazie Guglielmo di aver sistemato,
bene veniamo al problema della riconnessione posto il file
Code: [Select]

/***************************
 Telecomando con ESP32
 via WiFi
****************************/

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <WiFi.h>

#define I2C_ADDR        0x27 // <<- indirizzo del PCF8574
#define Rs_pin          0
#define Rw_pin          1
#define En_pin          2
#define BACKLIGHT_PIN   3
#define D4_pin          4
#define D5_pin          5
#define D6_pin          6
#define D7_pin          7
LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin,
 D7_pin);

#define btn1 5
#define btn2 23
#define btn3 14
#define btn4 12
#define led     18

boolean PB1_Flag;
boolean PB2_Flag;
boolean PB3_Flag;
boolean PB4_Flag;
unsigned long headLunga = 0;
unsigned long totLunga = 0;

// WiFi parametri
const char* ssid = "Mia_Linea";   //  <<- definite la vostra rete WIFI
const char* password = "Mia_Password";  //  <<- e la vostra password

// Si crea un' instance di server
WiFiServer server(80);

void DisplayClear(void) {
 int i;
 for (i = 0; i < 4; i++) {
 lcd.setCursor(0, 0);
 lcd.print("                ");
 }
}

//*******************************************************************
void setup() {
 // Viene inizializzato il display
 lcd.begin(20, 4, LCD_5x10DOTS);      // LCD 16x4 e formato caratteri
 lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
 lcd.setBacklight(HIGH);       // accende Bachkight

 // Si definiscono le porte e le condizioni iniziali
 pinMode(btn1, OUTPUT);
 digitalWrite(btn1, LOW);
 pinMode(btn2, OUTPUT);
 digitalWrite(btn2, LOW);
 pinMode(btn3, OUTPUT);
 digitalWrite(btn3, LOW);
 pinMode(btn4, OUTPUT);
 digitalWrite(btn4, LOW);

 pinMode(led, OUTPUT);
 digitalWrite(led, LOW);

 // Start Seriale
 Serial.begin(115200);
 delay(10);

 WiFi.begin(ssid, password);  // inizializza la connessione WIFI

 // Verifica lo stato fino a connessione avvenuta.
 while (WiFi.status() != WL_CONNECTED) {
 lcd.setCursor(0, 0);
 lcd.print("  CONNESSIONE   ");
 lcd.setCursor(0, 1);
 lcd.print("   IN CORSO     ");
 Serial.print(".");
 delay(500);
 }

 DisplayClear();
 lcd.setCursor(0, 0);
 lcd.print("CONNESSO A:     ");
 lcd.setCursor(0, 1);
 lcd.print("                ");
 lcd.setCursor(0, 1);
 lcd.print(ssid);
 lcd.setCursor(0, 2);
 lcd.print("INDIRIZZO IP:   ");
 lcd.setCursor(0, 3);
 lcd.print(WiFi.localIP());

 // Start del server
 server.begin();

}

void loop() {
 while (WiFi.status() != WL_CONNECTED) {
 WiFi.reconnect();
 digitalWrite(led, HIGH);
 }
 digitalWrite(led, LOW);

 // Verifica se un client si è connesso
 WiFiClient client = server.available();
 if (!client) {
 return;
 }
 // Attende di ricevere qualche dato
 while (!client.available()) {
 delay(1);
 }

 // Legge la richiesta fino a r, poi con client.flush elimina eventuali caratteri
 // ricevuti ma non letti.
 String req = client.readStringUntil('\r');
 client.flush();
 Serial.println(req);

 //se viene ricevuta "GET/favicon.ico HTTP/1.1" risponde che non trova jl file
 if (req.indexOf("favicon.ico") != -1) {
 client.flush();
 client.print("HTTP/1,1 404 Not Found\r\n");
 Serial.println("Non Trovato");
 delay(1);
 } else {
 if (req.indexOf("PB1ON") != -1) {
 digitalWrite(btn1, HIGH);
 PB1_Flag = true;
 }
 if (req.indexOf("PB1OFF") != -1) {
 digitalWrite(btn1, LOW);
 PB1_Flag = false;
 }

 if (req.indexOf("PB2ON") != -1) {
 digitalWrite(btn2, HIGH);
 PB2_Flag = true;
 }
 if (req.indexOf("PB2OFF") != -1) {
 digitalWrite(btn2, LOW);
 PB2_Flag = false;
 }

 if (req.indexOf("PB3ON") != -1) {
 digitalWrite(btn3, HIGH);
 PB3_Flag = true;
 }
 if (req.indexOf("PB3OFF") != -1) {
 digitalWrite(btn3, LOW);
 PB3_Flag = false;
 }

 if (req.indexOf("PB4ON") != -1) {
 digitalWrite(btn4, HIGH);
 PB4_Flag = true;
 }
 if (req.indexOf("PB4OFF") != -1) {
 digitalWrite(btn4, LOW);
 PB4_Flag = false;
 }

 String buff = "HTTP/1.1 200 OK\r\n Content-Type:text/html\r\n content-lenght:2166\r\n\r\n";
 headLunga = buff.length();

 buff += "<html>";
 buff += "<head><title>TETECOMANDO</title>";
 buff += "<style type=\"text/css\">";
 buff += "td{align:center;width:auto;height:70px;}";
 buff += "</style></head>";
 buff += "<body style=\"width:99,99%;height:99,99%\">";

 buff += "<div align=\"center\">";

 buff += "<table style=\"width:auto;background-color:#dcdcdc\">";

 buff += "<thead style=\"width:100%;background-color:#6699FF\">";
 buff += "<tr><th colspan=\"5\"style=\"font-weight:bold;font-size:2em\">TELECOMANDO</th></tr></thead>";

 buff += "<tr>";
 if (PB1_Flag) {
 buff += "<td><a href=\"/?PB1ON\"><button style=\"background-color:#008000;width:99%;height:99%;border-radius:15px\">";
 buff += "<font size=\"6\"><b>&nbsp;ON&nbsp;</font></button></a></td>";
 buff += "<td><a href=\"/?PB1OFF\"><button style=\"background-color:#ffff66;width:99%;height:99%;border-radius:15px\">";
 buff += "<font size=\"6\"><b>OFF</font> </button></a></td>";
 } else if (!PB1_Flag) {
 buff += "<td><a href=\"/?PB1ON\"> <button style=\"background-color:#ffff66;width:99%;height:99%;border-radius:15px\">";
 buff += "<font size=\"6\"><b>&nbsp;ON&nbsp;</font></button></a></td>";
 buff += "<td><a href=\"/?PB1OFF\"><button style=\"background-color:#cc0000;width:99%;height:99%;border-radius:15px\">";
 buff += "<font size=\"6\"><b>OFF</font></button></a></td>";
 }
 buff += "<td><h3>LUCE GIARDINO</h3></td></tr>";

 buff += "<tr>";
 if (PB2_Flag) {
 buff += "<td><a href=\"/?PB2ON\"><button style=\"background-color:#008000;width:99%;height:99%;border-radius:15px\">";
 buff += "<font size=\"6\"><b>ON</font></button></a></td>";
 buff += "<td><a href=\"/?PB2OFF\"><button style=\"background-color:#ffff66;width:99%;height:99%;border-radius:15px\">";
 buff += "<font size=\"6\"><b>OFF</font></button></a></td>";
 } else if (!PB2_Flag) {
 buff += "<td><a href=\"/?PB2ON\"><button style=\"background-color:#ffff66;width:99%;height:99%;border-radius:15px\">";
 buff += "<font size=\"6\"><b>ON</font></button></a></td>";
 buff += "<td><a href=\"/?PB2OFF\"><button style=\"background-color:#cc0000;width:99%;height:99%;border-radius:15px\">";
 buff += "<font size=\"6\"><b>OFF</font></button></a></td>";
 }
 buff += "<td><h3>LUCE INGRESSO</h3></td></tr>";

 buff += "<tr>";
 if (PB3_Flag) {
 buff += "<td><a href=\"/?PB3ON\"><button style=\"background-color:#008000;width:99%;height:99%;border-radius:15px\">";
 buff += "<font size=\"6\"><b>ON</font></button></a></td>";
 buff += "<td><a href=\"/?PB3OFF\"><button style=\"background-color:#ffff66;width:99%;height:99%;border-radius:15px\">";
 buff += "<font size=\"6\"><b>OFF</font></button></a></td>";
 } else if (!PB3_Flag) {
 buff += "<td><a href=\"/?PB3ON\"><button style=\"background-color:#ffff66;width:99%;height:99%;border-radius:15px\">";
 buff += "<font size=\"6\"><b>ON</font></button></a></td>";
 buff += "<td><a href=\"/?PB3OFF\"><button style=\"background-color:#cc0000;width:99%;height:99%;border-radius:15px\">";
 buff += "<font size=\"6\"><b>OFF</font></button></a></td>";
 }
 buff += "<td><h3>LUCE NOTTURNA</h3></td></tr>";

 buff += "<tr>";
 if (PB4_Flag) {
 buff += "<td><a href=\"/?PB4ON\"><button style=\"background-color:#008000;width:99%;height:99%;border-radius:15px\">";
 buff += "<font size=\"6\"><b>ON</font></button></a></td>";
 buff += "<td><a href=\"/?PB4OFF\"><button style=\"background-color:#ffff66;width:99%;height:99%;border-radius:15px\">";
 buff += "<font size=\"6\"><b>OFF</font></button></a></td>";
 } else if (!PB4_Flag) {
 buff += "<td><a href=\"/?PB4ON\"><button style=\"background-color:#ffff66;width:99%;height:99%;border-radius:15px\">";
 buff += "<font size=\"6\"><b>ON</font></button></a></td>";
 buff += "<td><a href=\"/?PB4OFF\"><button style=\"background-color:#cc0000;width:99%;height:99%;border-radius:15px\">";
 buff += "<font size=\"6\"><b>OFF</font></button></a></td>";
 }
 buff += "<td><h3>LUCE SCALA</h3></td></tr>";

 buff += "</table></div></body></html>";

 totLunga = buff.length();
 Serial.print("lunghezza intestazione = ");
 Serial.println(headLunga);
 Serial.print("lunghezza totale = ");
 Serial.println(totLunga);

 // Invia la risposta al client
 client.print(buff);

 delay(1);
 }

}


spero che qualcuno mi possa dare qualche dritta
toni
Title: Re: Modulo WiFi+Bt ESP32
Post by: andrea1201 on Jun 25, 2018, 11:51 am
Ciao ragazzi, è da un pò che ci smanetto con l'esp32, ma ora mi sono bloccato a un progetto,
1) volevo avere una connessione diretta wifi tra due esp32 senza l'uso di un access point (accendere un led)
2) avere una connessione diretta tra esp32 e android (accendendo un led)

Ci smanetto da vari giorni, ho impostato un esp32 in modalità softAP nel loop ho messo questo e non funziona


Code: [Select]
void loop(){
WiFiClient client = server.available();  
 if (client) {                          
   Serial.println("New Client.");          
   String currentLine = "";                
   while (client.connected()) {            
     if (client.available()) {            
       char c = client.read();            
       Serial.write(c);                    
       if (c == '\n') {                          
         if (currentLine.length() == 0) {
           
           client.println("HTTP/1.1 200 OK");
           client.println("Content-type:text/html");
           client.println();

           client.print("Click <a href=\"/H\">here</a> to turn the LED on pin 5 on.<br>");
           client.print("Click <a href=\"/L\">here</a> to turn the LED on pin 5 off.<br>");

           
           client.println();
           
           break;
         } else {    
           currentLine = "";
         }
       } else if (c != '\r') {  
         currentLine += c;      
       }

       
       if (currentLine.endsWith("GET /H")) {
         digitalWrite(5, HIGH);    }          

       if (currentLine.endsWith("GET /L")) {
         digitalWrite(5, LOW);              
       }
     }
   }
   
   client.stop();
   Serial.println("Client Disconnected.");
 }
}


Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Jun 25, 2018, 12:01 pm
>andrea1201:   ti ricordo che in conformità al regolamento (http://forum.arduino.cc/index.php?topic=149082.0), punto 7, devi editare il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.

Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: andrea1201 on Jun 25, 2018, 12:11 pm
>andrea1201:   ti ricordo che in conformità al regolamento (http://forum.arduino.cc/index.php?topic=149082.0), punto 7, .....
Grazie l'avevo dimenticato :D
Title: Re: Modulo WiFi+Bt ESP32
Post by: PaoloP on Jul 02, 2018, 06:55 pm
File json da inserire nell'IDE.
https://dl.espressif.com/dl/package_esp32_dev_index.json (https://dl.espressif.com/dl/package_esp32_dev_index.json)
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Jul 03, 2018, 07:55 am
Alla fine dopo un sacco di messaggi su github lo hanno fatto. Sai se scarica anche le librerie che sono al di fuori del repository come la bluetooth? Io ho capito di no, anche se non è un problema, basta saperlo.
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Jul 04, 2018, 07:41 am
No, non le scarica
Credo sia voluto

Nel momento in cui le scaricasse l'utente crederebbe fossero parte integrante del progetto, portando ad aprire issue sul core esp in caso di problemi ad esempio sul BT

Comunque non capisco questa via di mezzo, o le tieni dentro o fuori, che senso ha averle così ?
Title: Re: Modulo WiFi+Bt ESP32
Post by: PaoloP on Jul 28, 2018, 06:05 pm
Rilasciato il core stabile per ESP32
--> https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/boards_manager.md (https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/boards_manager.md)
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Jul 28, 2018, 07:15 pm
Incluso di board manager finalmente  :)

Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Jul 29, 2018, 07:49 pm
Eliminato il vecchio core e installato il nuovo: la libreria bluetooth è inclusa!
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Jul 30, 2018, 08:24 am
Ottimo, quindi va a scaricarla automaticamente via board manager, visto che nel core non é presente

Title: Re: Modulo WiFi+Bt ESP32
Post by: Andrea_81 on Oct 04, 2018, 02:42 pm
Salve a tutti,
 volevo sapere come inviare  comandi AT di ESP32 per confingurare il bluetooth tradizionale(non il BLE). Utilizzo un sistema operativo Linux e vorrei evitare di installare Microsoft Windows. Grazie.
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Oct 04, 2018, 06:25 pm
>Andrea_81: essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (http://forum.arduino.cc/index.php?topic=113640.0) (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO (http://forum.arduino.cc/index.php?topic=149082.0) ... Grazie.

Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: steve-cr on Nov 06, 2018, 06:57 pm
Scusate il disturbo, mi sono arrivate le schedine ESP32, una la Nano (LOLIN) e l'altra la DEVKIT V1.

Nesson problema per la LOLIN

Problema su quella più "grande", la DEVKIT
Apro la seriale e schiaccio il reset: OK, mi trasmette tutto quello che deve.
Ho anche io il problema, come molti da quanto ho visto, che non riesco a caricare niente perche dopo connecting mi da l'errore Failed to connect ESP32 timeout waiting ecc ecc ecc

C'è qualcuno che sa il perché?

Grazie in anticipo.
Title: Re: Modulo WiFi+Bt ESP32
Post by: steve-cr on Nov 10, 2018, 09:06 pm
TROVATO, dopo un po' di surfing in internet.

Quando IDE scrive Connecting ....._____..... basta premere il tasto BOOT fino a quando non inizia la trasmissione.

I parametri che ho usato sono:
Scheda: ESP 32 Dev Module
Flash mode: DIO
Flash size: 4Mb
Partition scheme: Pochi
Flash frequency: 80Mhz
Upload speed: 921600
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Nov 12, 2018, 06:45 pm
Salve a tutti,
 volevo sapere come inviare  comandi AT di ESP32 per confingurare il bluetooth tradizionale(non il BLE). Utilizzo un sistema operativo Linux e vorrei evitare di installare Microsoft Windows. Grazie.
Comandi AT su ESP32 ?
Spreco inutile, la forza di questo modulo sta proprio nel poterlo programmare evitando di abbinarlo ad una mcu.
Comunque ho visto che e' uscito il manuale dei comandi at anche per esp32 (attenzione che non devi averlo programmato, devi lasciarlo cosi' come da fabbrica)

cerca sul sito Espressif il manule comandi AT
Title: Re: Modulo WiFi+Bt ESP32
Post by: PaoloP on Nov 17, 2018, 09:07 am
--> https://github.com/espressif/esp32-at (https://github.com/espressif/esp32-at)
Title: Re: Modulo WiFi+Bt ESP32
Post by: gianlucaf on Nov 21, 2018, 11:18 am
chiedo già scusa per la domanda ingenua, ma non ho ancora capito cosa centra questo modulo con arduino.
ovvero è completamente compatibile con il codice già scritto per arduino?
Title: Re: Modulo WiFi+Bt ESP32
Post by: SukkoPera on Nov 21, 2018, 11:30 am
Esatto, se hai scritto codice ad alto livello (senza accessi a registri, ecc...) e non usi pin che su questo modulo non ci sono, non dovresti avere molte difficoltà ad adattare i tuoi sketch.
Title: Re: Modulo WiFi+Bt ESP32
Post by: biccius on Dec 12, 2018, 12:32 pm
Ciao a tutti

Sto cercando da giorni di risolvere un problema con un ESP32 che riguarda l'utilizzo del modulo per applicazioni di bridging da UART a BLE e UART a WIFI.

I dettagli li trovate in forum ufficiale ESP32 a questo link
https://www.esp32.com/viewtopic.php?f=2&t=8407 (https://www.esp32.com/viewtopic.php?f=2&t=8407)

Praticamente all'avvio della board l'applicazione va a controllare lo stato di un GPIO e a seconda che sia alto o basso parte in modalità bridge per BLE o per WIFI

Il problema nasce dal fatto che:
- se carico l'applicativo per funzionare in BLE e commento la parte WIFI va tutto
- se carico l'applicativo per funzionare in WIFI e commento la parte BLE va tutto
- se carico l'applicativo per funzionare in BLE o WIFI non commentando il codice di entrambi l'applicativo parte lasciando sulla seriale in output un messaggio di IllegalIstruction, StoreProhibited o LoadProhibited.

Sembra quasi che all'avvio dell'applicativo venga sforata la RAM a disposizione.
Il modulo non utilizza moduli esterni per estendere la RAM quindi utilizza quella fornita dall'ESP-WROOM32.

Qualcuno ha avuto esperienza in merito o ha già avuto un problema simile?
Nel caso si tratti come penso di un problema di memoria, avete dritte da darmi per cercare di ridurre uno dei due stack al minimo necessario per un applicazione di bridging per BLE e WIFI?

Grazie

Fabrizio
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Dec 15, 2018, 12:31 pm
Quando compili quanta ram ti resta libera ?
Posta la scritta che appare a fine compilazione.

Title: Re: Modulo WiFi+Bt ESP32
Post by: biccius on Dec 19, 2018, 04:51 pm
Grazie del suggerimento. Alla fine non era la RAM ma era la FLASH che non bastava.
Risolto cambiando partition scheme.
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Jan 05, 2019, 12:00 pm
Buongiorno, qualcuno può cortesemente spiegarmi cos'è e come funziona in modo semplice la SPIFFS?
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Jan 05, 2019, 02:34 pm
Si tratta di una partizione della flash che può essere utilizzata per memorizzare file, quasi come se fosse una SD.
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Jan 05, 2019, 02:43 pm
Si tratta di una partizione della flash che può essere utilizzata per memorizzare file, quasi come se fosse una SD.
Si qualcosa o trovato e sono riuscito a creare la partizione, fare l'upload dei files (immagini nel mio caso) e leggerli/visualizzarli su TFT.
Ho usato il tool esp32fs.jar però non so come vedere tutto il contenuto della partizione e/o eliminare file non pià utili.
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Jan 05, 2019, 04:11 pm
Togli il file dalla cartellina sul tuo pc e fai upload  :)
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Jan 05, 2019, 04:16 pm
Togli il file dalla cartellina sul tuo pc e fai upload  :)

:o

Non ci sarei mai arrivato! :D
Title: Re: Modulo WiFi+Bt ESP32
Post by: biccius on Feb 02, 2019, 02:27 pm
Rilasciata nuova versione stabile 1.0.1 alcune settimane fa.

Testata e posso dire che risolve diversi problemi su BLE (compatibilità Android e iOS)

Qualcuno ha esperienza sul riuscire a fare andare BLE e WiFi in contemporanea utilizzando il core di Arduino? (No esp-idf framework per capirci)

Leggendo in giro dovrebbe essere possibile dividendo sui due core due task che si dividono l'antenna.
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Feb 02, 2019, 06:18 pm
A che so io non si può fare perché anche la radio è  la stessa.
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Feb 03, 2019, 12:48 am
Se é così non si può nemmeno con Idf.
Dobbiamo dire che é un modulo "Wifi o Bt" non "Wifi + Bt"  :smiley-roll-sweat:
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Feb 04, 2019, 03:28 pm
Mi pare sia possibile però alternare WiFi e Bluetooth
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Feb 06, 2019, 01:29 pm
Con alternare intendi una specie di multiplexing in modo da dare l'illusione che siano utilizzati contemporaneamente ?
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Feb 07, 2019, 11:07 am
No, se non ricordo male quando parli in bluetooth il WiFi è praticamente scollegato e spento e quando parli in WiFi vicerversa.  Non so con che velocità possa avvenire questo cambio per cui non so se è possibile effettuare una sorta di multiplexing.


Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Feb 07, 2019, 12:26 pm
Quindi sempre di modulo "Wifi o Bt" si deve parlare  :)
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Feb 07, 2019, 12:42 pm
Ho trovato QUESTA (http://bbs.esp32.com/viewtopic.php?t=6707) discussione, la cui conclusione mi pare abbastanza chiara:

Quote
Again, this is not a software issue. The ESP32 only has one radio and only one antenna. This radio and antenna, if viewed in a somewhat simplified fashion, can be used for one of six things: send a WiFi packet, send a BT packet, listen for a WiFi packet, listen for a BT packet, receive a WiFi packet, receive a BT packet. I think we actually do some magic that allows us to listen for BT and WiFi packets at the same time in some circumstances, but in general, we're limited to doing only one of these things. To get around this, we would need a separate radio and antenna, something which is not in the current ESP32. No software hacks can change this, because it's a hardware limitation, not a software one.
Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Feb 07, 2019, 02:16 pm
Grazie della ricerca, sarebbe interessante capire precisamente cosa intende con:

we actually do some magic that allows us to listen for BT and WiFi packets at the same time in some circumstances
Title: Re: Modulo WiFi+Bt ESP32
Post by: steve-cr on Feb 08, 2019, 10:16 pm
Scusate se disturbo, ma non capisco come scrivere su EEPROM col modulo ESP32 DEVKIT

Ho seguito le istruzioni ma nelle celle 0 - 1 - 2  - 3 ecc trovo sempre ZERO

 Ho scritto

EEPROM.begin(1); nel setup e poi

Code: [Select]
 lcd.clear ();
  lcd.print (F("   W R I T I N G "));
  EEPROM.write (0, set1);
  EEPROM.write (1, set2);
  EEPROM.write (2, set3);
  EEPROM.write (3, setAux);
  EEPROM.write (4, DPset);
  EEPROM.commit ();
  delay (800);


La domanda che mi faccio è: la libreria EEPROM.h è la stessa?
Se non fosse la stessa perché si fa riferimento sempre a questo nome di libreria?

Comunque non ho nessun errore, anche con i due comandi (begin e commit) che non ho mai usato su NANO.

Naturalmente la lettura la faccio così:

Code: [Select]
int set1   = EEPROM.read (0);
int set2   = EEPROM.read (1);
int set3   = EEPROM.read (2);
int setAux = EEPROM.read (3);
int DPset  = EEPROM.read (4);


Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Feb 08, 2019, 10:26 pm
SE (non ho mai usato il ESP32) funziona come sul ESP8266, in realtà NON c'è una EEPROM, ma, si alloca della RAM con la begin(), si scrive con le write() e si trasporta da RAM a Flash (viene usata la Flash per simulare la EEPROM) al momento della commit().

Dalla documentaione del ESP8266 "core" ...

Quote
EEPROM
This is a bit different from standard EEPROM class. You need to call EEPROM.begin(size) before you start reading or writing, size being the number of bytes you want to use. Size can be anywhere between 4 and 4096 bytes.

EEPROM.write does not write to flash immediately, instead you must call EEPROM.commit() whenever you wish to save changes to flash. EEPROM.end() will also commit, and will release the RAM copy of EEPROM contents.

EEPROM library uses one sector of flash located just after the SPIFFS.
Guglielmo

P.S.: Sulla Nano non hai mai suato la begin() e commit() perché NON ci sono, la libreria per ESP è differente.
Title: Re: Modulo WiFi+Bt ESP32
Post by: steve-cr on Feb 08, 2019, 10:35 pm
...
P.S.: Sulla Nano non hai mai suato la begin() e commit() perché NON ci sono, la libreria per ESP è differente.

Era quello che immaginavo, però ha lo stesso nome...
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Feb 08, 2019, 10:39 pm
Era quello che immaginavo, però ha lo stesso nome...
... e che vuol dire ? ? ? :)

Ogni "core" che implementa librerie standard è costretto ad adattarle per fale funzionare sul hardware che gestice aggiungendo, modificando, adattando o ... eliminando i vari metodi.

Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: SukkoPera on Feb 08, 2019, 11:00 pm
Se scrivi degli int, credo che su ESP32 occupino 32 bit, quindi devi scriverli ad indirizzi spaziati di 4.
Title: Re: Modulo WiFi+Bt ESP32
Post by: steve-cr on Feb 09, 2019, 12:42 pm
Allora, qui c'è un po' di confusione, magari non è tutta mia...

Però caricando gli esempi e lavorandoci su ho capito diverse cose:

- intanto lo sapevate che se includo la libreria EEPROM da MENU, questa appare colore rosso mentre se la scrivo a mano appare di colore verde scuro (anche se a livello pratico non noto differenze) ?

- poi con i "credo" purtroppo si aggiunge confusione (anche se in buona fede, ci mancherebbe SukkoPera)

La EEPROM viene gestita a bytes :
"With the ESP32 and the EEPROM library you can use up to 512 bytes in the flash memory. This means you have 512 different addresses, and you can save a value between 0 and 255 in each address position."

Quindi con
Code: [Select]
EEPROM.begin(5);
vado a dire a ESP32 che voglio usare 5 celle della sua memoria, dalla 0 alla 4, su cui posso scrivere 5 bytes.

- l'errore che nessuno ha notato è che io, come su NANO, inizializzavo delle variabili così
Code: [Select]
int set1   = EEPROM.read (0);
int set2   = EEPROM.read (1);
int set3   = EEPROM.read (2);
int setAux = EEPROM.read (3);
int DPset  = EEPROM.read (4);

mentre (a causa di EEPROM.begin) prima devo dichiarare le variabili e solo dopo l'istruzione
Code: [Select]
EEPROM.begin (5);
posso leggerle, altrimenti ottengo sempre ZERO anche se sono scritte correttamente.


Code: [Select]

int set1;
int set2;
int set3;
int setAux;
int DPset;

void setup ()

EEPROM.begin(5);

  set1   = EEPROM.read (0);
  set2   = EEPROM.read (1);
  set3   = EEPROM.read (2);
  setAux = EEPROM.read (3);
  DPset  = EEPROM.read (4);
Title: Re: Modulo WiFi+Bt ESP32
Post by: maubarzi on Feb 09, 2019, 01:16 pm
Questa non l'ho capita.
Cioè dici che le variabili devono essere globali altrimenti non funziona?
O che il compilatore non riesce a gestire l'allocazione della memoria su cui salvare il risultato contestualmente alla lettura del valore tramite chiamata di funzione?
O che l'esito dipende dalla funzione chiamata?

O solo che prima non mettevi la
EEPROM.begin(5);
prima di fare le read?
Title: Re: Modulo WiFi+Bt ESP32
Post by: steve-cr on Feb 09, 2019, 01:54 pm
...
O solo che prima non mettevi la
EEPROM.begin(5);
prima di fare le read?

La EEPROM.begin (5) la posso solo fare nel void setup ()
Di seguito leggo le variabili da EEprom, però prima del void setup () le devo dichiarare.

Su NANO le leggevo già in fase di dichiarazione, prima del void setup ()
Title: Re: Modulo WiFi+Bt ESP32
Post by: maubarzi on Feb 09, 2019, 03:01 pm
però, se la

EEPROM.begin(5)

è nel setup, nel loop puoi comunque fare

int set1  = EEPROM.read (0);
...

e dovrebbe funzionare.
Non dovrebbe richiedere variabili globali.
la set1 è il posto dove decidi di salvare il valore che ti passa la read, potrebbe anche essere il parametro di una funzione, non una variabile locale o globale che sia, il funzionamento della read non dovrebbe dipendere da questo.

Giusto?
Title: Re: Modulo WiFi+Bt ESP32
Post by: steve-cr on Feb 09, 2019, 06:04 pm
però, se la

EEPROM.begin(5)

è nel setup, nel loop puoi comunque fare

int set1  = EEPROM.read (0);
...

Giusto?
Eh no, perché ho anche un soubroutine di scrittura

Code: [Select]
void scrivi () {  //subroutine di scrittura su EEPROM interna

  lcd.clear ();
  lcd.print (F("   W R I T I N G "));
  EEPROM.write (0, set1);
  EEPROM.write (1, set2);
  EEPROM.write (2, set3);
  EEPROM.write (3, setAux);
  EEPROM.write (4, DPset);
  EEPROM.commit ();
  delay (800);
  lcd.clear ();


e quando compilo mi da errore

'DPset' was not declared in this scope

Ma anche levando questo ciclo di scrittura, al primo utilizzo di una di quelle variabili mi da errore, quindi vanno globali
Title: Re: Modulo WiFi+Bt ESP32
Post by: SukkoPera on Feb 09, 2019, 07:30 pm
- poi con i "credo" purtroppo si aggiunge confusione (anche se in buona fede, ci mancherebbe SukkoPera)
Nessun problema. D'ora in poi invece di darti un suggerimento che magari ti permette di andare avanti da solo con un minimo di ricerca farò che stare zitto.
Title: Re: Modulo WiFi+Bt ESP32
Post by: maubarzi on Feb 10, 2019, 09:23 am
Eh no, perché ho anche un soubroutine di scrittura
Ok, quindi dipende da come hai strutturato tu il codice, non dalla libreria.
Ovvio che le varie funzioni (subroutine) vedono solo le variabili globali e non quelle locali dichiarate altrove.
Ora mi torna.

Scusa l'intermezzo ma:
mentre (a causa di EEPROM.begin) prima devo dichiarare le variabili e solo dopo l'istruzione
Code: [Select]
EEPROM.begin (5);
posso leggerle, altrimenti ottengo sempre ZERO anche se sono scritte correttamente.
non mi quadrava proprio.
Title: Re: Modulo WiFi+Bt ESP32
Post by: steve-cr on Feb 10, 2019, 10:58 am
Se scrivi degli int, credo che su ESP32 occupino 32 bit, quindi devi scriverli ad indirizzi spaziati di 4.
E' solo che con questo consiglio mi sono intestardito a modificare continuamente il valore di EEPROM.begin() e non ottenevo nulla. Poi sono andato di nuovo in giro per internet e ho capito diverse cose (anche se spiegate male).

EEPROM.begin() ha un senso proprio perchè ESP32 non ha una EEPROM quindi, come diceva Guglielmo, riservi della memoria PRIMA di eseguire il programma perché magari uno può anche scrivere EEPROM.begin(512) ma in questo modo porti via memoria per altre cose.

Un int è di 16 bit e si memorizza come con NANO e cioè

Code: [Select]

EEPROM.write (3, highByte(variabile1));
EEPROM.write (4, lowByte (variabile1));


quindi usi due celle di memoria per avere i 2 bytes

A me, SukkoPera, i tuoi consigli sono sempre stati utili quindi se vorrai continuare a darmeli te ne sarò grato.
Title: Re: Modulo WiFi+Bt ESP32
Post by: maubarzi on Feb 10, 2019, 11:40 am
Ho trovato questo (https://github.com/espressif/arduino-esp32/issues/1745), vi risulta?
Qui dice che l'int è a 4 byte su ESP32 in base ai suoi test.
Ho trovato anche questo (https://www.robolinkmarket.com/datasheet/kolban-ESP32.pdf) e a pag. 416 elenca i tipi dato con le dimensioni e indica 4 byte per gli int.

Sono documenti farlocchi oppure effettivamente l'int è a 4 byte, cioè 32 bit?

Ovvio che se sul codice si dichiara int16_t o uint16_t si forza a 16 bit a prescindere dai tipi nativi della piattaforma.
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Feb 10, 2019, 11:59 am
Controllando su uno dei "sacri testi" (Kolban's Book on ESP32" di Neil Kolban), confermo che:

(https://forum.arduino.cc/index.php?action=dlattach;topic=358374.0;attach=294128)

Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: steve-cr on Feb 10, 2019, 12:53 pm
E' sicuramente così.

Le mie prove si limitano a mettere dei numeri oltre 255, quindi 300 o 400 e in questo modo anche se si sovrastano uno con l'altro non si nota alla successiva lettura con solo 2 bytes.
Title: Re: Modulo WiFi+Bt ESP32
Post by: maubarzi on Feb 10, 2019, 02:32 pm
Controllando su uno dei "sacri testi" (Kolban's Book on ESP32" di Neil Kolban)
che per puro caso è proprio quello che avevo linkato io poco sopra ;) e che riporta quella tabella proprio a pag. 416... ho anticipato il maestro :P

Quindi possiamo togliere il "forse" dal post di @SukkoPera e fare pace tutti? ;)

Io mi son chiarito i dubbi. bye.
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Feb 12, 2019, 05:58 pm
int è legato all'architettura, è normale che su mcu diverse hai dimensioni diverse.
Per aumentare la chiarezza e la portabilità io consiglio sempre di udare i nomi autoesplicativi che includono la dimensione, tipo:
uint8_t
Title: Re: Modulo WiFi+Bt ESP32
Post by: SukkoPera on Feb 13, 2019, 10:07 am
Esatto, e soprattutto int dovrebbe rappresentare il tipo "nativo", quello con cui l'architettura in questione esegue le operazioni più velocemente. E il fatto che la piattaforma si chiami ESP32...
Title: Re: Modulo WiFi+Bt ESP32
Post by: maubarzi on Feb 13, 2019, 12:43 pm
ma in genere il numero sulla sigla, quando assume un significato di questo tipo, si riferisce ai bit di indirizzamento o sbagio? ;)
Title: Re: Modulo WiFi+Bt ESP32
Post by: SukkoPera on Feb 13, 2019, 02:35 pm
No, di solito è la dimensione del bus dati e, dunque, dei registri interni e, dunque, quella che ogni singola istruzione elabora.
Title: Re: Modulo WiFi+Bt ESP32
Post by: maubarzi on Feb 13, 2019, 03:05 pm
mi sa che hai ragione tu

(https://www.clinicaveterinariacmv.it/dp-admin/ckeditor/kcfinder/upload/images/vomito-cane-malato%281%29.jpg)
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Feb 13, 2019, 03:35 pm
No, di solito è la dimensione del bus dati e, dunque, dei registri interni e, dunque, quella che ogni singola istruzione elabora.
... in principo era ... la dimensione della ALU (l'unità aritmetico/logica), ovvero il numero di bit che trattava.

Il primo micro Intel i4004 era una CPU a 4 bit, aveva la ALU a 4 bit ed una serie di registri affiancati (parte bassa e parte alta) da poter unire per trattare anche 8 bit (una word) ... è la prima CPU su cui ho lavorato ... anni '70 :D :D :D

(https://hackadaycom.files.wordpress.com/2018/01/intel_c4004_b.jpg?w=646)

Guglielmo

P.S.: In allegato il datasheet ... :D
Title: Re: Modulo WiFi+Bt ESP32
Post by: steve-cr on Feb 13, 2019, 04:29 pm
Bei tempi. Io cominciai con z80 con Nuova Elettronica...
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Feb 19, 2019, 09:32 am
Buongiorno,
nella speranza di non aver sbagliato sezione, in caso contrario chiedo scusa ed invito i mod a spostare il mio post in sezione Software, vorrei da parte vostra un aiuto per ottimizzare questa porzione di codice:

Code: [Select]


void wifi()
{
  tft.setTextSize(1);

  while (WiFi.status() != WL_CONNECTED) {
    if (previousMillisWiFi < intervalWiFi)
    {
      previousMillisWiFi = millis();
      Serial.print(".");
      delay(500);
    }
    else break;
  }
}

void WiFiScan()
{
  unsigned long attesa = 0;
  do {
    Touch();
    //Una volta ogni 10 secondi per dare il tempo necessario di recepire eventuali azioni durante la scansione WiFi
    if (millis() - attesa > 10000)
    {
      int n = 0;
      attesa = millis();
      tft.setTextColor(TFT_YELLOW, TFT_BLACK);
      // WiFi.scanNetworks will return the number of networks found
      n = WiFi.scanNetworks();
      if (n == 0) {
        tft.setTextColor(TFT_RED, TFT_YELLOW);
        tft.fillRect(58, 65, 216, 155, TFT_BLACK); //pulisco l'area di scansione WiFi
        tft.fillRect(56, 44, 219, 17, TFT_BLACK); //pulisco l'area di scansione WiFi
        tft.drawString("WiFi Assenti!", 95 , 110, 4);
        esp_wifi_wps_disable();
        Serial.println("RIAVVIO WPS");
        wps();
      }
      else {
        tft.drawRect(55, 10, 223, 215 , TFT_BLUE);
        tft.drawFastHLine(55, 42, 223, TFT_BLUE);
        tft.drawFastHLine(55, 62, 223, TFT_BLUE);

        tft.setTextColor(TFT_RED);
        tft.drawString("Premi il tasto WPS sul tuo router", 62 , 10, 2);
        tft.drawString("ed attendi la connessione", 95 , 25, 2);

        x = 65;
        y = 45;
        spr.createSprite(219, 17);   // Creo lo sprite 219 pixels di lunghezza e 17 di altezza
        spr.fillSprite(TFT_BLACK);
        spr.setTextColor(0x000F);
        spr.setCursor(x, y);
        x +=  spr.drawNumber (n, x , y, 2);
        x += spr.drawString(" reti trovate", x , y, 2);
        spr.pushSprite(57, 43); // Posiziono la scritta
        spr.deleteSprite(); // Libero la memoria

        y = 1;
        spr.createSprite(219, 160);   // Creo lo sprite 219 pixels di lunghezza e 160 di altezza
        spr.fillSprite(TFT_BLACK);
        spr.setTextColor(0x000F);

        for (int i = 0; i < n; ++i) {
          // Print SSID and RSSI for each network found
          x = 1;
          spr.setCursor(x, y);
          spr.setTextColor(0x000F);
          x += spr.drawNumber(i + 1, x , y, 2);
          x += spr.drawString(": ", x , y, 2);
          x += spr.drawString(WiFi.SSID(i), x , y, 2);
          x += spr.drawString(" (", x , y, 2);
          x += spr.drawNumber(WiFi.RSSI(i), x , y, 2);
          x += spr.drawString(")", x , y, 2);
          x += spr.drawString((WiFi.encryptionType(i) == WIFI_AUTH_OPEN) ? " " : "*", x , y, 2);
          y = y + 15;
        }
        spr.pushSprite(57, 63); // Posiziono la scritta
        spr.deleteSprite(); // Libero la memoria
      }
      if (WiFi.status() != WL_CONNECTED) {
        Serial.println("AVVIO WPS");

        WiFi.onEvent(WiFiEvent);
        WiFi.mode(WIFI_MODE_STA);
        wpsInitConfig();
        esp_wifi_wps_enable(&config);
        esp_wifi_wps_start(0);
      }
      else {
        tft.unloadFont(); // Remove the font to recover memory use
        spr.unloadFont(); // Remove the font to recover memory use
        tft.setTextSize(1);
        tft.fillScreen(TFT_BLACK);
        tft.setCursor(40, 110);
        tft.print("Connesso a: ");
        tft.println(WiFi.SSID());
        tft.print("IP Address: ");
        tft.println(WiFi.localIP());
        delay(3000);
        tft.fillScreen(TFT_BLACK);
        Maschera();
        Home();
        Update_time();
        break;
      }
    }
  } while (!pressed);
  tft.fillScreen(TFT_BLACK);
  Maschera();
  Home();
  }

void wps()
{
  Maschera();
  if (WiFi.status() != WL_CONNECTED) {
    Serial.println("AVVIO WPS");
    WiFiScan();
  }
}




Ciò che vorrei è che quando richiamo la funzione wps() la mia Lolin D32 Pro mi faccia la scansione delle reti WiFi e, nel caso in cui io abbia premuto il tasto WPS sul mio router si agganci automaticamente e torni sulle schermate di default Maschera() ed Home().

Tra l'altro sono stato costretto a mettere un delay molto lungo di 10 secondi tra i cicli di scansione della WiFi perchè riducendolo il touch del display non riusciva a reagire prontamente alla pressione del tasto.

Un'altro grosso problema è gestire il buzzer poichè utilizzando la libreria EasyBuzzer.h spesso il cicalino va in tilt.

Grazie per l'aiuto.

Title: Re: Modulo WiFi+Bt ESP32
Post by: steve-cr on Feb 26, 2019, 06:08 pm
Ho provato la tua modifica (prima ti avevo letto sul forum inglese) e sul mio programma quella parte di programma funziona. (anche se devo pensare come dargliene un'altra per vedere se funziona... Modifico il mio SSID?...Modifico la Password?...)

D'accordo che non me ne può fregare di meno di nome SSID e Password, ma siamo sicuri che l'ultima configurazione rimane memorizzata su ESP32?
E, comunque, se volessi farne una copia su EEPROM come dovrei fare
Title: Re: Modulo WiFi+Bt ESP32
Post by: simone91 on Feb 26, 2019, 10:56 pm
Ciao, spero di aver azzeccato il topic.

Sto facendo qualche prova con un ESP32:
Vorrei leggere i valori acquisti da un encoder su un app sul telefono tramite il BLE (praticamente vorrei vedere ciò che vedo sul serial monitor.
Ho buttato giù questo schizzo che non funziona...

Code: [Select]
#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>

BLECharacteristic *pCharacteristic;
bool deviceConnected = false;

int encoderPin1 = 2;
int encoderPin2 = 4;

volatile int lastEncoded = 0;
volatile long encoderValue = 0;
long lastencoderValue = 0;

int lastMSB = 0;
int lastLSB = 0;

#define SERVICE_UUID "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"

class MyServerCallbacks: public BLEServerCallbacks {
void onConnect(BLEServer* pServer) {
deviceConnected = true;
};
void onDisconnect(BLEServer* pServer) {
deviceConnected = false;
}
};
void setup() {
Serial.begin(115200);
// Create the BLE Device
BLEDevice::init("MyESP32");
// Create the BLE Server
BLEServer *pServer = BLEDevice::createServer();
pServer->setCallbacks(new MyServerCallbacks());
// Create the BLE Service
BLEService *pService = pServer->createService(SERVICE_UUID);
// Create a BLE Characteristic
pCharacteristic = pService->createCharacteristic(
CHARACTERISTIC_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE |
BLECharacteristic::PROPERTY_NOTIFY |
BLECharacteristic::PROPERTY_INDICATE
);

// Create a BLE Descriptor
pCharacteristic->addDescriptor(new BLE2902());

// Start the service
pService->start();

// Start advertising
pServer->getAdvertising()->start();
Serial.println("Waiting a client connection to notify…");

pinMode(encoderPin1, INPUT_PULLUP);
pinMode(encoderPin2, INPUT_PULLUP);

attachInterrupt(0, updateEncoder, CHANGE);
attachInterrupt(1, updateEncoder, CHANGE);

}
void loop() {

if (deviceConnected) {

Serial.printf("*** NOTIFY: %d ***\n", encoderValue * 0.942/4,1);
pCharacteristic->setencoderValue(&encoderValue, 1);
pCharacteristic->notify();
//pCharacteristic->indicate();
encoderValue++;
}
void updateEncoder(){
int MSB = digitalRead(encoderPin1); //MSB = most significant bit
int LSB = digitalRead(encoderPin2); //LSB = least significant bit

int encoded = (MSB << 1) |LSB; //converting the 2 pin value to single number
int sum = (lastEncoded << 2) | encoded; //adding it to the previous encoded value

if(sum == 0b1101 || sum == 0b0100 || sum == 0b0010 || sum == 0b1011) encoderValue ++;
if(sum == 0b1110 || sum == 0b0111 || sum == 0b0001 || sum == 0b1000) encoderValue -;

lastEncoded = encoded; //store this value for next time
}
}


Per caso qualcuno saprebbe e sarebbe cosi' gentile da aiutarmi?
P.S
Abbiate pazienza per gli eventuali strafalcioni ma sono alle prime armi!

Simone
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Feb 27, 2019, 09:34 am
Come per il modulo ESP8266, così ora per il modulo ESP32, che ha raggiunto una certa maturità ed interessa sempre più persone, mi sembra giusto spostare questa discussione in area "Megatopic". :)

Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Feb 27, 2019, 09:56 am
Ottima idea, grazie.

Per il BLE non ci ho ancora giocato quindi non posso aiutarti, però due tips in generale:
- esp32 supporta anche BT classic, trovi degli esempi in giro
- tutti i cellulari supportano BT classic, non tutti il BLE quindi controllare sempre se il telefono è compatibile.
- se con il core Arduino non riesci puoi sempre usare quello ufficiale IDF, anche internamente all'Ide arduino credo
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Feb 27, 2019, 10:31 am
- tutti i cellulari supportano BT classic, non tutti il BLE quindi controllare sempre se il telefono è compatibile.
Purtroppo NO ...
... tutti i device mobili iOS supportano SOLO BLE e NON BT v2.x,;  tutti i device mobili Android supportano BT v2.x e, già da parecchio, quasi tutti anche BLE ;)

Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: simone91 on Feb 27, 2019, 01:27 pm
Ottima idea, grazie.

Per il BLE non ci ho ancora giocato quindi non posso aiutarti, però due tips in generale:
- esp32 supporta anche BT classic, trovi degli esempi in giro
- tutti i cellulari supportano BT classic, non tutti il BLE quindi controllare sempre se il telefono è compatibile.
- se con il core Arduino non riesci puoi sempre usare quello ufficiale IDF, anche internamente all'Ide arduino credo

In realtà non ho problemi di connessione e riesco anche a passare e visualizzare dei valori di prova caricando uno sketch di esempio... Il mio problema è capire come passare i valori dell' encoder in particolare... Diciamo i valori provenienti a 2 ingressi.
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Feb 27, 2019, 11:36 pm
Purtroppo NO ...
... tutti i device mobili iOS supportano SOLO BLE e NON BT v2.x,;  tutti i device mobili Android supportano BT v2.x e, già da parecchio, quasi tutti anche BLE ;)

Guglielmo

Non considero l'esistenza delle melemorse  :D
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Feb 27, 2019, 11:41 pm
In realtà non ho problemi di connessione e riesco anche a passare e visualizzare dei valori di prova caricando uno sketch di esempio... Il mio problema è capire come passare i valori dell' encoder in particolare... Diciamo i valori provenienti a 2 ingressi.
Leggi il valore degli encoder, li piazzi in una variabile, li spedisci al BT.
Quale é il problema ?
Se dici che ricevi dati di esempi via BLE, guarda come fanno, e gli invii la variabile che contiene i tuoi encoder
Title: Re: Modulo WiFi+Bt ESP32
Post by: biccius on Feb 28, 2019, 01:40 pm
In realtà non ho problemi di connessione e riesco anche a passare e visualizzare dei valori di prova caricando uno sketch di esempio... Il mio problema è capire come passare i valori dell' encoder in particolare... Diciamo i valori provenienti a 2 ingressi.
il tuo sketch così a naso sembra anche giusto.

Devi collegare i contatti di un encoder sui pin 2 e 4 mentre un eventuale terzo pin di bottone non é gestito (si assume che pin 2 e 4 siano pin di interrupt)

Quando i contatti vengono variati la funzione updateEncoder() vieene richiamata e incrementa la variabile encoderValue se ruoti in un senso mentre la decrementa se la ruoti nell'altro.

Tutta la parte di BLE crea un servizio e una caratteristica e le espone aggiornando il valore a ogni ciclo programma.

Se con un app da cellulare tipo nRF connect vai a fare una scansione dovresti trovare il device "MyESP32".

Entrandoci dentro dovresti riuscire a  poter vedere la caratteristica e di conseguenza ruotando l'encoder dovresti vedere i valori variare (passi solo un byte quindi valori 0-255, occhio)

Secondo me questa istruzione non può andare
Code: [Select]

pCharacteristic->setencoderValue(&encoderValue, 1);
pCharacteristic->notify();


dovresti usare qualcosa tipo questo:

Code: [Select]
   
pTxCharacteristic->setValue(&encoderValue,1);
pTxCharacteristic->notify();



Prendi come riferimento questo esempio del leggendario Nicolone Kolbone
https://github.com/nkolban/ESP32_BLE_Arduino/blob/master/examples/BLE_uart/BLE_uart.ino

Se vuoi visualizzare il valore di piu' sensori basta che vai a notificare tali valori su piu' caratteristiche distinte

Spero di averti confuso le idee
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Feb 28, 2019, 03:16 pm
Non considero l'esistenza delle melemorse  :D
... se fossi uno sviluppatore sapresti che "pecunia non olet" e quindi, visto lo share di mercato, considereresti l'esistenza di entrambi i sistemi  :smiley-twist:

Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Feb 28, 2019, 07:38 pm
La pecunia non mi é mai interessata, sono comunista  :smiley-yell:
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Feb 28, 2019, 08:35 pm
La pecunia non mi é mai interessata, sono comunista  :smiley-yell:
(http://www.nikonland.eu/forum/public/style_emoticons/default/post-42-1201873916.gif)

Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: simone91 on Feb 28, 2019, 09:46 pm
il tuo sketch così a naso sembra anche giusto.

Devi collegare i contatti di un encoder sui pin 2 e 4 mentre un eventuale terzo pin di bottone non é gestito (si assume che pin 2 e 4 siano pin di interrupt) ...
Grazie mille!!!

In effetti sono un pò confuso ma piano piano forse ci capisco qualcosa!

Ne approfitto per farvi un' altra domanda: la mia intenzione è di alimentare il tutto con una batteria a bottone da 3volt.

Il problema è che misurando col tester l' uscita "Vin" ho appena 1,5 volt... Cosi a naso me ne sarei aspettato 3...

Come potrei fare per risolvere il "problema" e mantenere una tensione di 3 volt con cui alimentare l' encoder? (ammesso che ne trovi uno da 3 volt perchè quello che ho adesso sotto mano ne richiede 5)


--- Quando si quota un post, NON è necessario riportarlo (inutilmente) tutto; bastano poche righe per far capire di cosa si parla ed a cosa ci si riferisce. Gli utenti da device "mobile" ringrazieranno per la cortesia ;) - gpb01
Title: Re: Modulo WiFi+Bt ESP32
Post by: simone91 on Feb 28, 2019, 10:54 pm
Comunque ho provato ad aggiornare lo sketch con i suggerimenti:
Code: [Select]
#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>

BLECharacteristic *pTxCharacteristic;

bool deviceConnected = false;

int encoderPin1 = 2;
int encoderPin2 = 4;

volatile int lastEncoded = 0;
volatile long encoderValue = 0;
 
long lastencoderValue = 0;

int lastMSB = 0;
int lastLSB = 0;

#define SERVICE_UUID "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"

class MyServerCallbacks: public BLEServerCallbacks {
    void onConnect(BLEServer* pServer) {
      deviceConnected = true;
    };

    void onDisconnect(BLEServer* pServer) {
      deviceConnected = false;
    }
};


void setup() {

  Serial.begin(115200);

  // Create the BLE Device
  BLEDevice::init("MyESP32");

  BLEServer *pServer = BLEDevice::createServer();
 
  pServer->setCallbacks(new MyServerCallbacks());
 
BLEService *pService = pServer->createService(SERVICE_UUID);


 // Create a BLE Characteristic
pTxCharacteristic = pService->createCharacteristic(
                  CHARACTERISTIC_UUID,
                  BLECharacteristic::PROPERTY_READ   |
                  BLECharacteristic::PROPERTY_WRITE  |
                  BLECharacteristic::PROPERTY_NOTIFY |
                  BLECharacteristic::PROPERTY_INDICATE
                  );
pTxCharacteristic->addDescriptor(new BLE2902());

  // Start the service
pService->start();

// Start advertising
pServer->getAdvertising()->start();

Serial.println("Waiting a client connection to notify...");

  pinMode(encoderPin1, INPUT_PULLUP);
  pinMode(encoderPin2, INPUT_PULLUP);

attachInterrupt(0, updateEncoder, CHANGE);
attachInterrupt(1, updateEncoder, CHANGE);

  }

void loop(){

if (deviceConnected) {

   Serial.printf("*** NOTIFY: %d ***\n", encoderValue * 0.942/4,1);
 pTxCharacteristic->setValue(&encoderValue * 0.942/4,1); 
 pTxCharacteristic->notify();
    //pTxCharacteristic->indicate();
    encoderValue++;
  }
 
void updateEncoder(){
  int MSB = digitalRead(encoderPin1); //MSB = most significant bit
  int LSB = digitalRead(encoderPin2); //LSB = least significant bit
 
  int encoded = (MSB << 1) |LSB; //converting the 2 pin value to single number
  int sum  = (lastEncoded << 2) | encoded; //adding it to the previous encoded value
 
  if(sum == 0b1101 || sum == 0b0100 || sum == 0b0010 || sum == 0b1011) encoderValue ++;
  if(sum == 0b1110 || sum == 0b0111 || sum == 0b0001 || sum == 0b1000) encoderValue --;
 
  lastEncoded = encoded; //store this value for next time
  }


Però mi da diversi errori...
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Mar 01, 2019, 08:53 am
Il problema fondamentale di iOS è che non puoi installarti le app fatte da te se non attraverso lo store a meno che non diventi sviluppatore. Per dire, io una app Android la posso persino testare su un PC.


@simone91,
ma tu l'encoder lo riesci a leggere e a mandare i valori sulla seriale?

L'app bluetooth è un terminale seriale su bluetooth o qualcosa di più evoluto?
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Mar 01, 2019, 09:01 am
[OFF-TOPIC]

Il problema fondamentale di iOS è che non puoi installarti le app fatte da te se non attraverso lo store a meno che non diventi sviluppatore. Per dire, io una app Android la posso persino testare su un PC.
Non è del tutto esatto, hanno cambiato alcune cose. Di sicuro, se vuoi "aprire al pubblico" la tua app, allora devi pagare la quota annuale di sviluppatore, ma per uso personale (solo sui TUOI devices), sono cambiate alcune cose.

Da sempre le App le puoi provare (... anzi DEVI provarle, altrimenti come fai il debug?) con il simulatore su desktop, simulatore che è sempre esistito.

Guglielmo

[/OFF-TOPIC]
Title: Re: Modulo WiFi+Bt ESP32
Post by: steve-cr on Mar 02, 2019, 12:02 pm
Mi sono informato sul wachdog di ESP32 e... mi è venuta una emicrania.
Ho capito che ce ne sono tre, che sono hardware e software eccetera eccetera ma all'accensione quello hardware non è attivo, o sbaglio?
Ho provato a fare un ciclo infinito ma non succede nulla.
Quindi, c'è modo di avere un wachdog SEMPLICE, hardware o software che sia, con il minor numero di istruzioni? (come sul nano, lo accendi, lo spegni e via...)
Title: Re: Modulo WiFi+Bt ESP32
Post by: biccius on Mar 02, 2019, 02:44 pm
prova cosi:

Code: [Select]

#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>

void updateEncoder();

BLECharacteristic *pCharacteristic;
bool deviceConnected = false;

int encoderPin1 = 2;
int encoderPin2 = 4;

volatile int lastEncoded = 0;
volatile int encoderValue = 0;
long lastencoderValue = 0;

int lastMSB = 0;
int lastLSB = 0;

#define SERVICE_UUID "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"

class MyServerCallbacks: public BLEServerCallbacks
{

void onConnect(BLEServer* pServer)
{
deviceConnected = true;
};

void onDisconnect(BLEServer* pServer)
{
deviceConnected = false;
}
};

void setup()
{
Serial.begin(115200);
// Create the BLE Device
BLEDevice::init("MyESP32");
// Create the BLE Server
BLEServer *pServer = BLEDevice::createServer();
pServer->setCallbacks(new MyServerCallbacks());
// Create the BLE Service
BLEService *pService = pServer->createService(SERVICE_UUID);
// Create a BLE Characteristic
pCharacteristic = pService->createCharacteristic(
CHARACTERISTIC_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE |
BLECharacteristic::PROPERTY_NOTIFY |
BLECharacteristic::PROPERTY_INDICATE
);

// Create a BLE Descriptor
pCharacteristic->addDescriptor(new BLE2902());

// Start the service
pService->start();

// Start advertising
pServer->getAdvertising()->start();
Serial.println("Waiting a client connection to notify…");

pinMode(encoderPin1, INPUT_PULLUP);
pinMode(encoderPin2, INPUT_PULLUP);

attachInterrupt(0, updateEncoder, CHANGE);
attachInterrupt(1, updateEncoder, CHANGE);
}


void loop()
{

if (deviceConnected)
{

//Serial.println("*** NOTIFY: %d ***\n", encoderValue * 0.942/4,1);
int value = encoderValue;
pCharacteristic->setValue(value);
pCharacteristic->notify();
//pCharacteristic->indicate();
//encoderValue++;
}
}


void updateEncoder()
{
int MSB = digitalRead(encoderPin1); //MSB = most significant bit
int LSB = digitalRead(encoderPin2); //LSB = least significant bit

int encoded = (MSB << 1) |LSB; //converting the 2 pin value to single number
int sum = (lastEncoded << 2) | encoded; //adding it to the previous encoded value

if(sum == 0b1101 || sum == 0b0100 || sum == 0b0010 || sum == 0b1011) encoderValue ++;
if(sum == 0b1110 || sum == 0b0111 || sum == 0b0001 || sum == 0b1000) encoderValue --;

lastEncoded = encoded; //store this value for next time
}
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Mar 02, 2019, 05:35 pm
Nell'esp8266 c'è un solo core che si occupa anche del WiFi per cui se fai un ciclo infinito si resetta.
L'ESP32 invece ha due core, uno si occupa del WiFi e l'altro è a disposizione (ma anche il primo) per cui anche se lo tieni occupato con un ciclo infinito l'altro core continua ad andare.

Però sull'ESP32 di watchdog ce ne sarebbero solo 2, uno controlla che si abbia un passaggio fra i task e l'altro controlla che un task non occupi troppa CPU.
https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/system/wdts.html (https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/system/wdts.html)
Ma non so come vanno gestiti dal core Arduino.
Title: Re: Modulo WiFi+Bt ESP32
Post by: simone91 on Mar 04, 2019, 09:18 pm
prova cosi:

Code: [Select]

#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>

void updateEncoder();

BLECharacteristic *pCharacteristic;
bool deviceConnected = false;

int encoderPin1 = 2;
int encoderPin2 = 4;

volatile int lastEncoded = 0;
volatile int encoderValue = 0;
long lastencoderValue = 0;

int lastMSB = 0;
int lastLSB = 0;

#define SERVICE_UUID "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"

class MyServerCallbacks: public BLEServerCallbacks
{

void onConnect(BLEServer* pServer)
{
deviceConnected = true;
};

void onDisconnect(BLEServer* pServer)
{
deviceConnected = false;
}
};

void setup()
{
Serial.begin(115200);
// Create the BLE Device
BLEDevice::init("MyESP32");
// Create the BLE Server
BLEServer *pServer = BLEDevice::createServer();
pServer->setCallbacks(new MyServerCallbacks());
// Create the BLE Service
BLEService *pService = pServer->createService(SERVICE_UUID);
// Create a BLE Characteristic
pCharacteristic = pService->createCharacteristic(
CHARACTERISTIC_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE |
BLECharacteristic::PROPERTY_NOTIFY |
BLECharacteristic::PROPERTY_INDICATE
);

// Create a BLE Descriptor
pCharacteristic->addDescriptor(new BLE2902());

// Start the service
pService->start();

// Start advertising
pServer->getAdvertising()->start();
Serial.println("Waiting a client connection to notify…");

pinMode(encoderPin1, INPUT_PULLUP);
pinMode(encoderPin2, INPUT_PULLUP);

attachInterrupt(0, updateEncoder, CHANGE);
attachInterrupt(1, updateEncoder, CHANGE);
}


void loop()
{

if (deviceConnected)
{

//Serial.println("*** NOTIFY: %d ***\n", encoderValue * 0.942/4,1);
int value = encoderValue;
pCharacteristic->setValue(value);
pCharacteristic->notify();
//pCharacteristic->indicate();
//encoderValue++;
}
}


void updateEncoder()
{
int MSB = digitalRead(encoderPin1); //MSB = most significant bit
int LSB = digitalRead(encoderPin2); //LSB = least significant bit

int encoded = (MSB << 1) |LSB; //converting the 2 pin value to single number
int sum = (lastEncoded << 2) | encoded; //adding it to the previous encoded value

if(sum == 0b1101 || sum == 0b0100 || sum == 0b0010 || sum == 0b1011) encoderValue ++;
if(sum == 0b1110 || sum == 0b0111 || sum == 0b0001 || sum == 0b1000) encoderValue --;

lastEncoded = encoded; //store this value for next time
}

Innanzi tutto grazie!
Cosi' si carica ma purtroppo non visualizzo nulla perchè la stringa che mi farebbe visualizzare il valore è un commento... Ma se la rendo una riga di codice mi da errore...

per zoomx con un codice che non utilizzi il ble riesco a vedere i valori sul serial monitor e per l' app sto cercando di utilizzare  "nRF Connect"
Title: Re: Modulo WiFi+Bt ESP32
Post by: maubarzi on Mar 04, 2019, 09:27 pm
Se intendi questa:
//Serial.println("*** NOTIFY: %d ***\n", encoderValue * 0.942/4,1);
hai usato la virgola al posto del punto come separatore decimale
La virgola viene usata come separatore dei parametri delle funzioni per cui non va bene.
Devi scrivere 4.1 e non 4,1
Title: Re: Modulo WiFi+Bt ESP32
Post by: simone91 on Mar 04, 2019, 09:29 pm
Se intendi questa:
//Serial.println("*** NOTIFY: %d ***\n", encoderValue * 0.942/4,1);
hai usato la virgola al posto del punto come separatore decimale
La virgola viene usata come separatore dei parametri delle funzioni per cui non va bene.
Devi scrivere 4.1 e non 4,1

No è proprio un altro parametro l' 1... Non volevo scrivere 4.1

Code: [Select]
#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>

void updateEncoder();

BLECharacteristic *pCharacteristic;
bool deviceConnected = false;

int encoderPin1 = 2;
int encoderPin2 = 4;

volatile int lastEncoded = 0;
volatile int encoderValue = 0;
long lastencoderValue = 0;

int lastMSB = 0;
int lastLSB = 0;

#define SERVICE_UUID "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"

class MyServerCallbacks: public BLEServerCallbacks
{

  void onConnect(BLEServer* pServer)
  {
    deviceConnected = true;
  };

  void onDisconnect(BLEServer* pServer)
  {
    deviceConnected = false;
  }
};

void setup()
{
  Serial.begin(115200);
  // Create the BLE Device
  BLEDevice::init("MyESP32");
  // Create the BLE Server
  BLEServer *pServer = BLEDevice::createServer();
  pServer->setCallbacks(new MyServerCallbacks());
  // Create the BLE Service
  BLEService *pService = pServer->createService(SERVICE_UUID);
  // Create a BLE Characteristic
  pCharacteristic = pService->createCharacteristic(
  CHARACTERISTIC_UUID,
  BLECharacteristic::PROPERTY_READ |
  BLECharacteristic::PROPERTY_WRITE |
  BLECharacteristic::PROPERTY_NOTIFY |
  BLECharacteristic::PROPERTY_INDICATE
  );

  // Create a BLE Descriptor
  pCharacteristic->addDescriptor(new BLE2902());

  // Start the service
  pService->start();

  // Start advertising
  pServer->getAdvertising()->start();
  Serial.println("Waiting a client connection to notify…");

  pinMode(encoderPin1, INPUT_PULLUP);
  pinMode(encoderPin2, INPUT_PULLUP);

  attachInterrupt(0, updateEncoder, CHANGE);
  attachInterrupt(1, updateEncoder, CHANGE);
}


void loop()
{

  if (deviceConnected)
  {

    Serial.println(encoderValue * 0.942/4);
    int value = encoderValue;
    pCharacteristic->setValue(value);
  
  }
}


void updateEncoder()
{
  int MSB = digitalRead(encoderPin1); //MSB = most significant bit
  int LSB = digitalRead(encoderPin2); //LSB = least significant bit

  int encoded = (MSB << 1) |LSB; //converting the 2 pin value to single number
  int sum = (lastEncoded << 2) | encoded; //adding it to the previous encoded value

  if(sum == 0b1101 || sum == 0b0100 || sum == 0b0010 || sum == 0b1011) encoderValue ++;
  if(sum == 0b1110 || sum == 0b0111 || sum == 0b0001 || sum == 0b1000) encoderValue --;

  lastEncoded = encoded; //store this value for next time
}



Cosi funziona e vedo variare i valori sia sul serial monitor che sull app!

Però non sono valori veritieri o meglio non dovrebbero esserci quelli...
Però qualcosa vedo ed è già qialcosa!!

Rettifico mi ero dimenticato di collegare l' alimentazione!!
Vedo i valori corretti!

L' unica cosa che ancora non mi soddisfa è che per vedere aggiornarsi "Value" sull app devo cliccare sull' icona della freccia che mi fa acquisire il valore aggiornato ed invece mi piacerebbe che si aggiornasse in tempo reale.
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Mar 05, 2019, 07:29 am
Ma usi una app dallo store android ?
C'è n'è saranno altre che magari funzionano in realtime
Title: Re: Modulo WiFi+Bt ESP32
Post by: simone91 on Mar 05, 2019, 11:39 am
E' un' app IOS comunque è vero potrebbe dipendere dall' app! Provero con altre...
Title: Re: Modulo WiFi+Bt ESP32
Post by: simone91 on Mar 06, 2019, 09:14 pm
Scrivo per porvi un' altra domanda: Sto alimentando l' ESP32 dal pin "VIN" con un' alimentazione di 6 volt.

Il problema è che non vedo il dispositivo sull' app che comunica con il BLE, invece se lo connetto al PC funziona tutto... Qualcuno saprebbe spiegarmi il perchè?

Devo implementare il codice per caso?
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Mar 06, 2019, 09:37 pm
Su Arduino 6V sono troppo pochi ma l'ESP32 va a 3.3V.
Però nelle caratteristiche di questa versione di ESP32 vedo che come minimo ci vogliono 7V
https://docs.zerynth.com/latest/official/board.zerynth.esp32_devkitc/docs/index.html (https://docs.zerynth.com/latest/official/board.zerynth.esp32_devkitc/docs/index.html)
quindi può essere che sia lo stesso con la tua.
Title: Re: Modulo WiFi+Bt ESP32
Post by: simone91 on Mar 06, 2019, 10:09 pm
Su Arduino 6V sono troppo pochi ma l'ESP32 va a 3.3V.
Però nelle caratteristiche di questa versione di ESP32 vedo che come minimo ci vogliono 7V
https://docs.zerynth.com/latest/official/board.zerynth.esp32_devkitc/docs/index.html (https://docs.zerynth.com/latest/official/board.zerynth.esp32_devkitc/docs/index.html)
quindi può essere che sia lo stesso con la tua.
Si l' ho letto anche io però scendendo un pò dice:

"Power to the Esp32 DevKitC is supplied via the on-board USB Micro B connector or directly via the "VIN" pin. The power source is selected automatically.

The device can operate on an external supply of 6 to 20 volts. If using more than 12V, the voltage regulator may overheat and damage the device. The recommended range is 7 to 12 volts."

Quindi in teoria dovrebbe andare...

Adesso provo a verificare col tester effettivamente quanto arriva...
Title: Re: Modulo WiFi+Bt ESP32
Post by: simone91 on Mar 06, 2019, 10:56 pm
Ho provato a dare 12 volt ma col tester tra VIN e GND misuro solo 4,6 volt... Non capisco se sto sbagliando qualcosa
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Mar 07, 2019, 09:28 am
Forse è l'alimentatore che non funziona.
Title: Re: Modulo WiFi+Bt ESP32
Post by: simone91 on Mar 07, 2019, 01:27 pm
No perchè misurando direttamente sull' alimentatore non ho nessuna caduta di tensione...
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Mar 07, 2019, 03:04 pm
Ma misuri con carico collegato oppure a vuoto?
Title: Re: Modulo WiFi+Bt ESP32
Post by: simone91 on Mar 07, 2019, 08:11 pm
L' alimentatore a vuoto (sono poi delle batterie in serie)...
Title: Re: Modulo WiFi+Bt ESP32
Post by: simone91 on Mar 07, 2019, 09:01 pm
Potrebbe essere un problema di scarso amperaggio?
Title: Re: Modulo WiFi+Bt ESP32
Post by: simone91 on Mar 07, 2019, 09:24 pm
Sono l' unico che ha problemi di questo tipo?
Potrebbe essere un problema di scarso amperaggio?
Direi di si, ho provato con una batteria a 9 volt e funziona!
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Mar 08, 2019, 11:54 am
L'ESP32 si mangia una buona maciata di milliampere già quando è acceso ma in trasmissione ancora di più ma solo per brevi picchi.
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Mar 08, 2019, 05:23 pm
Gentilmente qualcuno può darmi indicazioni su come collegare un sensore galleggiante come quello in foto ad una LOLIN D32 PRO?


(https://www.shopdoro.it/705-thickbox_default/sensore-livello-acqua-liquidi-galleggiante-arduino-raspberry.jpg)

(https://wiki.wemos.cc/_media/products:d32:d32_pro_v2.0.0_5_16x9.jpg)

Ho fatto alcune prove ma la lettura non è stabile.
Ho collegato un filo a GND l'altro ad uno dei PIN VP(36), VN(39) oppure ad A(34) ed inoltre mi sono accorto che il sensore lo legge solo se tocco con le dita il PIN analogico dove lo collego.
Title: Re: Modulo WiFi+Bt ESP32
Post by: brunello22 on Mar 08, 2019, 06:02 pm
Mettici una resistenza di PullUp
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Mar 08, 2019, 06:20 pm
Mettici una resistenza di PullUp
Si ho letto in giro qualcosa però mi pare di aver capito che non è possibile usare la PullUp su quei PIN.
L'articolo parlava di  pinMode(34, INPUT_PULLUP);  LINK (https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=2ahUKEwissK7ghvPgAhXiMewKHemfDqoQFjABegQICBAB&url=https%3A%2F%2Fgithub.com%2Fespressif%2Farduino-esp32%2Fissues%2F510&usg=AOvVaw3hmznZh2qx1c7tytBQDBkB)
Ho capito male io?
Title: Re: Modulo WiFi+Bt ESP32
Post by: steve-cr on Mar 08, 2019, 06:58 pm
La devi mettere FISICAMENTE, non via software
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Mar 08, 2019, 07:04 pm
Perfetto grazie mille. Quindi l'articolo parlava solo di quelle interne...  :smiley-wink:  Grazie!
Title: Re: Modulo WiFi+Bt ESP32
Post by: simone91 on Mar 11, 2019, 08:23 pm
L'ESP32 si mangia una buona maciata di milliampere già quando è acceso ma in trasmissione ancora di più ma solo per brevi picchi.
Per il momento ho collegato una pila alcalina da 9 volt e 600 mAh e funziona. Adesso vorrei capire quanto potrà durare per capire se può andar bene! Non vorrei che non duri nulla...
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Mar 11, 2019, 08:58 pm
Scusate ma utilizzando più variabili con millis per evitare di usare i delay, gli crea qualche problema o sono io che non riesco a farlo andare?
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Mar 12, 2019, 07:19 am
Non dovrebbe creare nessun problema.
 9V ? Due o tre ore ce la fai :-)
Title: Re: Modulo WiFi+Bt ESP32
Post by: simone91 on Mar 12, 2019, 11:33 am
Non dovrebbe creare nessun problema.
 9V ? Due o tre ore ce la fai :-)
L' ho provato ieri sera e forse dura qualcosa in più direi 4-5 ore ma cercavo qualcosa che durasse almeno 10 o 20 ore. Qualche consiglio?

Vorrei utilizzare una soluzione il più compatta possibile.
Title: Re: Modulo WiFi+Bt ESP32
Post by: steve-cr on Mar 13, 2019, 05:20 pm
Scusate ma utilizzando più variabili con millis per evitare di usare i delay, gli crea qualche problema o sono io che non riesco a farlo andare?
Allora, usare millis "per evitare i delay" mi sembra un po' poco come ragione.
Diciamo che se usi delay, la scheda ti si INCHIODA finché non ha finito di contare e non fa niente altro.
Usando millis continui a far girare il programma.
Puoi usare tutte le variabili che vuoi per andare a comparare il millis letto poco prima col millis letto attualmente
Title: Re: Modulo WiFi+Bt ESP32
Post by: steve-cr on Mar 13, 2019, 05:24 pm
Non dovrebbe creare nessun problema.
 9V ? Due o tre ore ce la fai :-)
Si, mi sono accorto anche io che ESP32 assorbe tanto. Ho solo messo una scheda ed un display 20x4, collegata alla sola USB del PC e all'accensione la retroilluminazione del display sfarfalla e molte volte il programma non partiva....
Con un alimentatore 5v è tutta un'altra cosa.
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Mar 13, 2019, 07:18 pm
Allora, usare millis "per evitare i delay" mi sembra un po' poco come ragione.
Diciamo che se usi delay, la scheda ti si INCHIODA finché non ha finito di contare e non fa niente altro.
Usando millis continui a far girare il programma.
Puoi usare tutte le variabili che vuoi per andare a comparare il millis letto poco prima col millis letto attualmente
Chiedo venia, non ho specificato le ragioni ma erano le medesime da te citate.

Uso spesso millis per evitare che il microcontrollore si "INCHIODI" come dici tu senza alcun problema.
Con una LOLIN D32 PRO invece non capisco perchè non andava.  :smiley-confuse:
Da qui la mia domanda ;)
Title: Re: Modulo WiFi+Bt ESP32
Post by: testato on Mar 13, 2019, 07:57 pm
Che poi in realtà il delay non é per forza bloccante, vedi yield, ma questo é altro discorso
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Mar 14, 2019, 10:25 am
Che poi in realtà il delay non é per forza bloccante, vedi yield, ma questo é altro discorso
Confesso di non avere ancora le idee chiare sull'utilizzo e sul perchè debba essere/venga utilizzato yeald(). Tra l'altro, yeald() è regolabile nel tempo o da come ho letto non è possibile associare nessun parametro e non fa nulla? Quindi a che serve?  :smiley-confuse:  :o 
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Mar 14, 2019, 10:40 am
Quindi a che serve?  :smiley-confuse:  :o 
Gli ESP in raltà NON sono come Arduino dove hai SOLO il tuo programma che gira e sei tu che controlli tutto ...
... gli ESP sono sistemi "multi-task" in cui il tuo programma è solo uno dei task che girano contemporaneamente all'interno.

Ora, per evitare blocchi e malfunzionamenti, negli ESP è implementato un meccanismo di "watchdog" (questo puoi averlo anche in un normale programma Arduino per controllarne il corretto funzionamento) il quale, se vede un blocco di più di X tempo, effettua un "reset" dell'ESP con conseguente riavvio.

Dato che tu, nel tuo programma, potresti utilizzare un qualche cosa che blocca l'esecuzione degli altri task, come la funzione delay() che, normalmente, è bloccante, è stato introdotto un meccansismo che evita tale cosa ...
... semplificando, per farti capire, nel ESP, la delay() in realtà NON blocca completamente tutto, ma, con regolarità chiama la funzione yield() che ha il compito di passare il controllo ad un altro task (che così può essere eseguito per ciò che deve fare), resettare il "watchdog" (così da evitare il "reset" del ESP) e poi tornare al tuo ciclo di attesa ... e la cosa si ripete sino a quando non è passato il tempo d'attesa da te richiesto.

Spero di averti, più o meno, chiarito le idee :D

Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Mar 14, 2019, 10:52 am
Grazie mille Guglielmo per l'esauriente e tempestiva spiegazione ;) In realtà alcuni semplici concetti da te menzionati li conoscevo già ma ciò che ignoravo era che l'ESP facesse ricorso a yeald per switchare i vari processi. ;)
Ora mi resta però da capire perchè se uso più di una variabile con millis (per evitare di usare delay) non riesco a tenporizzare più di una funzione. E' come se accettasse solo e soltanto una variabile da usare con millis e la cosa mi lascia sconcertato  :smiley-eek-blue:  soprattutto perchè mi avete già risposto che non è possibile che avvenga ciò  :P
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Mar 14, 2019, 11:42 am
yield non yeald.

@ziopippo
non ho capito il problema che incontri. Usare millis è come guardare l'orologio molto molto molto spesso  per vedere che ora è in modo da decidere cosa fare in base al tempo che è passato.
Ma gli esempi ti funzionano?

Edit:
grazie Guglielmo! ho corretto anche io!
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Mar 14, 2019, 11:50 am
yeld non yeald.
In verità yield() (https://www.arduino.cc/en/Reference/SchedulerYield) (... è anche documentata nel reference)... comunque, grazie, ho corretto il post  :smiley-mr-green:

Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Mar 14, 2019, 11:56 am
yeld non yeald.

@ziopippo
non ho capito il problema che incontri. Usare millis è come guardare l'orologio molto molto molto spesso  per vedere che ora è in modo da decidere cosa fare in base al tempo che è passato.
Ma gli esempi ti funzionano?
Nel mio sketch no e non ho fatto la prova del nove facendo un nuovo scketch pulito con solo l'utilizzo di più millis. Avendo in questo periodo solo un'oretta al giorno per portare avanti il mio progettino nel frattempo avevo lasciato in sospeso la questione millis per continuare con le altre funzioni che mi ero proposto di fargli fare ;)  :smiley-evil:

In verità yield() (https://www.arduino.cc/en/Reference/SchedulerYield) (... è anche documentata nel reference)... comunque, grazie, ho corretto il post  :smiley-mr-green:

Guglielmo
Mi aggiungo anche io agli autori dell'errore di sbaglio  :smiley-razz:  ;D
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Mar 14, 2019, 12:02 pm
ziopippo,

dovresti partire dagli esempi per capire come funziona.
Attento a come fai i controlli del tempo passato, in genere si controlla che il tempo passato sia uguale o maggiore di quello che doveva passare. Uguale soltanto non va bene perché potresti guardare l'orologio troppo tardi.
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Mar 14, 2019, 12:05 pm
ziopippo,

dovresti partire dagli esempi per capire come funziona.
Attento a come fai i controlli del tempo passato, in genere si controlla che il tempo passato sia uguale o maggiore di quello che doveva passare. Uguale soltanto non va bene perché potresti guardare l'orologio troppo tardi.
Se rileggi qui mio post (https://forum.arduino.cc/index.php?topic=358374.msg4064987#msg4064987) puoi verificare come uso i millis ;)
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Mar 14, 2019, 12:17 pm
Se rileggi qui mio post (https://forum.arduino.cc/index.php?topic=358374.msg4064987#msg4064987) puoi verificare come uso i millis ;)
... e purtroppo NON va bene.  NON si può usare in quel semplice modo, ma occorre sempre valutare una differenza di tempi (che risolve anche il problema dell'overflow) ... come faccio sempre, ti invito a ristudiarti questi link ... PRIMO (http://www.leonardomiliani.com/2013/programmiamo-i-compiti-con-millis/), SECONDO (http://www.leonardomiliani.com/2012/come-gestire-loverflow-di-millis/) e tutti gli articoli che si trovano QUI (https://www.baldengineer.com/arduino-millis-examples.html), nonché QUESTO (http://forum.arduino.cc/index.php?topic=491944.msg3361369#msg3361369) bell'esempio ... dovrebbero chiarire le idee ... ::)

Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Mar 14, 2019, 01:10 pm
Lo farò senz'altro grazie! ;)
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Mar 14, 2019, 03:01 pm
Se non scrivo castronerie....
questo
Code: [Select]
if (previousMillisWiFi < intervalWiFi)
non va mica, dovrebbe essere
Code: [Select]
if (millis()- previousMillisWiFi > intervalWiFi)
cioè esattamente lo stesso confronto che fai più sotto.
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Mar 14, 2019, 04:23 pm
Se non scrivo castronerie....
questo
Code: [Select]
if (previousMillisWiFi < intervalWiFi)
non va mica, dovrebbe essere
Code: [Select]
if (millis()- previousMillisWiFi > intervalWiFi)
cioè esattamente lo stesso confronto che fai più sotto.
Hai ragione scusa non mi ero accorto dell'errore, tant'è che poi in altre funzioni la uso così
Code: [Select]
void temperature()
{
  if (millis() - t > 5000) //Una volta ogni 5 secondi:
  {
    t = millis();
    sensors.requestTemperatures();
    tempDALLAS = sensors.getTempCByIndex(0);   //Read temperature of Dallas sensor
    //Serial.print(tempDALLAS);
    //Serial.println("° C");
    dht12.get();
    /*
      if (dht12.get() == 0) {
          Serial.print("Temperature in Celsius : ");
          Serial.println(dht12.cTemp);
          Serial.print("Temperature in Fahrenheit : ");
          Serial.println(dht12.fTemp);
          Serial.print("Relative Humidity : ");
          Serial.println(dht12.humidity);
          Serial.println();
        }*/
  }
}


Ed è proprio per quella svista che molto probabilmente non andava. Maledetta fretta accompagnata dalla distrazione!  :smiley-confuse:  :-[  :-X
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Mar 15, 2019, 08:34 am
Infatti ho anche scritto che in un altro punto il confronto è corretto, che è anche quello che avevo visto per primo per cui non riuscivo a capire dove fosse l'inghippo.
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Mar 15, 2019, 09:20 am
Infatti ho anche scritto che in un altro punto il confronto è corretto, che è anche quello che avevo visto per primo per cui non riuscivo a capire dove fosse l'inghippo.
In realtà il mio quesito sul poter utilizzare più variabili per millis in una ESP (cosa che faccio comunemente con le altre board) derivava dal fatto che non riesco a sostituire la riga delay(6000) dalla void T_Setting() con millis

Code: [Select]

void Touch()
{
  // Pressed will be set true is there is a valid touch on the screen
  pressed = tft.getTouch(&px, &py);

  if (!mute) drawBmp("/bmp/audio-on.bmp", 285, 200);
  else drawBmp("/bmp/audio-off.bmp", 285, 200);

  if (pressed) {
    buzzer();
    // Verifico Home
    if ((px > 0) && (px < 30)) {
      if ((py > 200) && (py <= 239)) {
        Serial.println("Hai premuto il tasto HOME");
        // buzzer();
        tft.fillScreen(TFT_BLACK);
        scelta = 0;
        Maschera();
        Home();
      } // END 2° if Home
    } //END 1° if Home

    // Verifico WPS
    if ((px > 290) && (px < 319)) {
      if ((py > 90) && (py <= 130)) {
        Serial.println("Hai premuto il tasto WPS");
        tft.fillScreen(TFT_BLACK);
        wps();
      }// END 2° if WPS
    }// END 1° if WPS

    // Verifico Audio
    if ((px > 290) && (px < 319)) {
      if ((py > 200) && (py <= 239)) {
        silenzia();
        buzzer();
        Serial.println("Hai premuto il tasto Audio");
      }// END 2° if Audio
    }// END 1° if Audio

    // Verifico Setting
    if ((px > 144) && (px < 174)) {
      if ((py > 200) && (py <= 239)) {
        Serial.println("Hai premuto il tasto Setting");
        tft.fillScreen(TFT_BLACK);
        scelta = 1; // Menù Setting
      }// END 2° if Setting
    }// END 1° if Setting

    delay(100);

    Serial.print("px = ");
    Serial.print(px);
    Serial.print(", py = ");
    Serial.println(py);
  } //END (pressed)
  px = 0, py = 0; // resetto i valori di px e py
} //END Void Touch()

void Exit()
{
  // Pressed will be set true is there is a valid touch on the screen
  pressed = tft.getTouch(&px, &py);
  drawBmp("/bmp/home.bmp", 144, 200);
  if (pressed) {

    // Verifico Home
    if ((px > 144) && (px < 30)) {
      if ((py > 200) && (py <= 239)) {
        Serial.println("Hai premuto il tasto HOME");
        tft.fillScreen(TFT_BLACK);
        Home();
      }// END 2° if Home
    }// END 1° if Home

    delay(100);

    Serial.print("x = ");
    Serial.print(px);
    Serial.print(", y = ");
    Serial.println(py);
  } //END (istouched)

} //END Void Exit()

void T_Setting()
{
  // Pressed will be set true is there is a valid touch on the screen
  pressed = tft.getTouch(&px, &py);
  if (pressed) {
    buzzer();
    EasyBuzzer.update();

    if (KeyValvola) {
      //buzzer();
      // EasyBuzzer.update();
      // Verifico Apertura Valvola
      if ((px > 100) && (px < 230)) {
        if ((py > 40) && (py <= 170)) {
          Serial.println("Hai premuto il tasto APRI VALVOLA");
        }// END 2° if Apertura Valvola
      }// END 1° if Apertura Valvola
    } //END (KeyValvola)
    else
      Serial.println("Non faccio nulla");

    // Verifico Valvola
    if ((px > 100) && (px < 134)) {
      if ((py > 200) && (py <= 239)) {
        Serial.println("Hai premuto il tasto Valvola");
        tft.fillScreen(TFT_BLACK);
        drawBmp("/bmp/Bvalve.bmp", 110, 50);
        KeyValvola = true;
        Serial.println("KeyValvola = true");
        //scelta = 1; // Menù Setting
      }// END 2° if Valvola
    }// END 1° if Valvola


    // Verifico Info
    if ((px > 144) && (px < 174)) {
      if ((py > 200) && (py <= 239)) {

        Serial.println("Hai premuto il tasto Info");

        tft.fillScreen(TFT_BLACK);
        spr.createSprite(315, 100);   // Creo lo sprite 150 pixels di lunghezza e 100 di altezza
        spr.fillSprite(TFT_BLACK);
        spr.setTextColor(TFT_WHITE);
        x = 1;
        y = 1;
        spr.setCursor(x, y);
        x += spr.drawString("ArduAcquario MALAWI V.", x , y, 2);
        x += spr.drawString((Version), x , y, 2);
        x = 1;
        y = y + 20;
        x += spr.drawString("By Ettore Di Fabio ", x , y, 2);
        x += spr.drawString((date_Version), x , y, 2);
        x = 1;
        y = y + 20;
        if (WiFi.status() != WL_CONNECTED) {
          spr.setTextColor(TFT_RED, TFT_BLACK);
          x += spr.drawString("NON CONNESSO", x , y, 4);
        }
        else
        {
          x += spr.drawString("Connesso a: ", x , y, 2);
          x += spr.drawString(WiFi.SSID(), x , y, 2);
          y = y + 20;
          x = 1;
          x += spr.drawString("IP Address: ", x , y, 2);
          // x = 10;
          // y = y + 30;
          x += spr.drawString(WiFi.localIP().toString(), x , y, 2);
        }
        spr.pushSprite(50, 70); // Posiziono la scritta
        spr.deleteSprite(); // Libero la memoria
        EasyBuzzer.update();
        delay(6000);
        tft.fillScreen(TFT_BLACK);
        scelta = 0;
        Maschera();
        Home();
      }// END 2° if Info
    }// END 1° if Info

    // Verifico Power
    if ((px > 184) && (px < 218)) {
      if ((py > 200) && (py <= 239)) {
        tft.fillScreen(TFT_BLACK);
        Serial.println("Hai premuto il tasto Power");
        x = 100;
        x += tft.drawString("RIAVVIO", x , 110, 4);

        for (int i = 0; i < 3; i++)
        {
          EasyBuzzer.update();
          delay(1000);
          x += tft.drawString(".", x , 110, 4);
        }
        ESP.restart(); // Riavvio
        //scelta = 1; // Menù Setting
      }// END 2° if Power
    }// END 1° if Power
    delay(100);
  } //END (istouched)
} //END Void Setting()


Questo spezzone di codice non è definitivo e ci sto ancora lavorando per fargli fare alcune cose ;)
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Mar 15, 2019, 09:42 am
Quando devi fare più cose devi anche pensare diversamente il programma, questo perché il decidere cosa fare a secondo del tempo trascorso alla fine deve essere centralizzato in qualche modo.
Ad esempio l'apparizione di un messaggio per un certo intervallo (quello del delay(6000) se non ho capito male) dovrebbe diventare una funzione a parte, generica ed utilizzabile dal resto del programma e cheappartiene ad un ciclo di cose che possono essere eseguite in dipendenza, ad esempio, da un flag.
Oppure ti crei o usi un task scheduler, Guglielmo, se non ricordo male, ne ha realizzato uno ma ce ne sono tanti.
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Mar 15, 2019, 09:55 am
Oppure ti crei o usi un task scheduler, Guglielmo, se non ricordo male, ne ha realizzato uno ma ce ne sono tanti.
Questa la devo studiare meglio perchè non ci ho mai provato. Avevo pensato di usare il "case" ma devo ancora capire come strutturarlo.
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Mar 15, 2019, 10:20 am
Oppure ti crei o usi un task scheduler, Guglielmo, se non ricordo male, ne ha realizzato uno ...
Non mi piace fare pubblicità, comunque SI. Si tratta di un semplicissimo ma efficiente "scheduler cooperativo" ed è stato pubblicato sul numero 229 di Ottobre 2018 di Elettronica In ...

Guglielmo

P.S.: ... dato che è passato un po' di tempo, ho già chiesto che lo rendano fruibile gratuitamente a tutti in formato .pdf scaricabile dal sito (... occorrerà solo registrarsi se già non lo si è). E solo questione dei necessari tempi tecnici ... ;)
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Mar 17, 2019, 12:26 pm
Buona domenica, torno a bomba con le domande  :smiley-twist:

Ho provato a collegare sia un relè singolo (cinese) che un modulo con doppio relè optoisolato. Quello singolo non ne vuol sapere di eccitarsi mentre sul doppio se ne eccita uno solo. Presumo quindi che i 3V della ESP non siano sufficienti.
Ora prevedendo di mettere un piccolo alimentatore switch a 12V esterno che userò per accendere delle ventole ed una elettrovalvola, mi consigliate di alimentare il relè con l'alimentatore esterno per risolvere il problema?
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Mar 18, 2019, 09:16 am
Io ho usato lo shield con relais per Wemos D1 mini e funziona benissimo. Credo però che il relè sia alimentato dalla linea a 5V mentre la logica sia a 3.3V. C'è anche il relè doppio se non ricordo male.
Sopra il relè ci dovrebbe essere scritta la tensione di eccitazione, se è da 5V dargliene 12 non credo faccia bene.
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Mar 18, 2019, 09:31 am
Devo leggere bene e poi ti faccio sapere.
La cosa strana è che quello cinese non ne vuol sapere di eccitarsi (si accende solo il led rosso) mentre l'altro, se collego solo un relè alla ESP non ho problemi ma, se collego entrambi i PIN alla ESP fa lo stesso difetto del cinese.
Presumo non siano sufficienti i 3V ad eccitarli entrambi.
Che tu sappia, è possibile prendere la 5V dall'ingresso della ESP (e come) se alimentato tramite porta USB? (Uso una LOLIN D32 Pro)
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Mar 18, 2019, 09:45 am
(https://www.cnx-software.com/wp-content/uploads/2018/06/LOLIN-D32-PRO-Pinout.jpg)
Non è chiarissimo ma sospetto che il piedino USB sia quello con i 5V dell'USB
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Mar 18, 2019, 09:48 am
Questi schemi della pagina ufficiale li consulto continuamente ma, non essendo un elettrotecnico, volevo il parere di un esperto. ;)
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Mar 18, 2019, 10:16 am
Ma io non sono né un esperto nè un elettrotecnico!
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Mar 18, 2019, 10:43 am
Beh ... basta fare un piccolo sforzo ... cercare lo schema ...  ;)

Lo SCHEMA (https://wiki.wemos.cc/_media/products:d32:sch_d32_pro_v2.0.0.pdf) è pubblico e basta andarlo a guardare per vedere che quel pin (JP1 - 15) è direttamente collegato al VBUS della USB, ovvero ai 5V che arrivano direttamnete dalla porta USB senza passare attraverso a null'altro. :)

Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Mar 18, 2019, 10:53 am
Beh ... basta fare un piccolo sforzo ... cercare lo schema ...  ;)

Lo SCHEMA (https://wiki.wemos.cc/_media/products:d32:sch_d32_pro_v2.0.0.pdf) è pubblico e basta andarlo a guardare per vedere che quel pin (JP1 - 15) è direttamente collegato al VBUS della USB, ovvero ai 5V che arrivano direttamnete dalla porta USB senza passare attraverso a null'altro. :)

Guglielmo
Perdona l'ignoranza (che in tale materia è davvero tanta) quindi potrei collegare direttamente il +5 del modulo relè ai pin USB o BAT(PIN 15 e 16) della LOLIN?   :smiley-money:
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Mar 18, 2019, 11:01 am
... devi usare il pin USB, lascia stare il pin BAT ;)

Ovviamnete la scheda deve essere alimentata tramite la USB !

Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: ziopippo on Mar 18, 2019, 11:05 am
Grazie!  :smiley-wink: Peccato che non ci sono gli smiles con i cuoricini come in WhatsApp  :smiley-lol:
Title: Re: Modulo WiFi+Bt ESP32
Post by: gpb01 on Apr 25, 2019, 07:29 am
Non so quanto "validi" siano, comunque volevo segnalare che DF Robot ha pubblicato una lunga serie di tutorials su ESP32  QUI (https://www.dfrobot.com/blog-964.html) ... provate a darci un'occhiata, magari trovate qualche cosa di interessante. ;)

Guglielmo
Title: Re: Modulo WiFi+Bt ESP32
Post by: zoomx on Apr 25, 2019, 07:40 pm
Lo sapremo solo leggendoli. Grazie Guglielmo!