Modulo WiFi+Bt ESP32

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

Perché non hanno ancora creato il pacchetto di installazione tramite IDE di Arduino (Board Manager)?

Non l'hanno ancora implementato, magari se si ricevono più richieste sulla issue si danno una mossa.

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

**>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 (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 ... Grazie.

Guglielmo

gpb01:
>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 (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 ... 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!

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.

zoomx:
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!

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

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.

Lo schema a cui mi riferisco tiene conto anche di questo :wink:

Grazie a tutti per le risposte: appena avrò tempo mi studierò le cose che mi avete indicato.

testato:
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...

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.

zoomx:
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!

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.

Rev1 l'hai testato con l'apposito comando ?

Affermativo!
Più precisamente con quello modificato da te.

Quindi funziona :slight_smile:
Puoi postare il link per comprarne uno che i miei sono tutti Rev0 anche avendo preso degli Adafruit

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
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.

ESP32_getChipRevision.ino (1.02 KB)

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?