Come scegliere e utilizzare il giusto modulo ESP32 Wi-Fi/Bluetooth per un'applicazione Industrial IoT

Di Jacob Beningo

Contributo di Editori nordamericani di DigiKey

L'automazione industriale prosegue a ritmo serrato e gli ingegneri sono impegnati a collegare i sistemi all’IoT, che per molti versi ha sorpassato la realtà industriale di un tempo. Tuttavia, grazie ai moduli e ai kit ESP32 la connettività wireless a IoT tramite Wi-Fi o Bluetooth è risultata relativamente semplice sia per i sistemi nuovi che per quelli esistenti.

ESP32 è una serie di microcontroller SoC (System-on-Chip) a basso costo e a basso consumo con Wi-Fi e Bluetooth dual-mode integrati creata da Espressif Systems che ha rappresentato una vera e propria rivoluzione per gli ingegneri di automazione che non vogliono rimanere invischiati nelle sottigliezze della radiofrequenza (RF) e della progettazione wireless. Come radio combinata Wi-Fi/Bluetooth a basso costo, ha guadagnato popolarità non solo tra gli hobbisti ma anche tra gli sviluppatori di IoT. Il suo basso consumo energetico, i molteplici ambienti di sviluppo open-source e le librerie a disposizione la rendono perfettamente idonea per qualsiasi tipo di sviluppatore.

ESP32 è tuttavia disponibile in così tanti moduli e schede di sviluppo che potrebbe essere difficile scegliere il prodotto giusto.

Questo articolo presenta le soluzioni ESP32 e mostra come gli sviluppatori possono identificare il modulo e la scheda di sviluppo giusti per iniziare a collegare la loro applicazione a IoT.

Il modulo ESP32

Il modulo ESP32 è una soluzione all-in-one, integrata e certificata Wi-Fi/Bluetooth, che fornisce non solo radio wireless ma anche un processore su scheda con interfacce per la connessione a varie periferiche. Il processore ha di fatto due core di elaborazione le cui frequenze operative possono essere controllate in modo indipendente tra 80 e 240 MHz. Le periferiche del processore agevolano il collegamento a una serie di interfacce esterne, ad esempio:

  • SPI
  • I2C
  • UART
  • I2S
  • Ethernet
  • Schede SD
  • Rilevamento tattile capacitivo

Uno sviluppatore può scegliere fra diversi moduli ESP32, in base alle proprie esigenze applicative. Il primo, e anche più diffuso, modulo ESP32 è ESP32-WROOM-32D, che opera fino a 240 MHz (Figura 1). Include un'antenna stampata su PCB, cosa che semplifica l'implementazione. Inoltre evita di dover aggiungere altro hardware e la complessità di layout associati a un'antenna collegata a IPEX. Tuttavia, se si sceglie l'opzione del connettore IPEX, esistono moltissime ottime antenne, una delle quali è W24P-U di Inventek Systems.

Immagine del modulo ESP32-WROOM-32D di Espressif SystemsFigura 1: Il modulo ESP32-WROOM-32D opera a velocità fino a 240 MHz e contiene 8 MB di flash SPI su scheda. (Immagine per gentile concessione di Espressif Systems)

Il modulo contiene 4 MB di flash e i suoi 38 pin sono disposti in modo da ridurne al minimo le dimensioni, rendendolo quasi quadrato. Di fatto, WROOM-32D ha una piedinatura completamente compatibile con ESP-WROOM-32U (Figura 2). In WROOM-32U l'antenna stampata su PCB è stata sostituita con un connettore IPEX, basato sul progetto U.FL di Hirose. Questo permette di risparmiare spazio su scheda e di collegare un'antenna esterna che gli sviluppatori possono inserire all'interno del loro prodotto per ottenere prestazioni RF ottimali.

Immagine del modulo ESP32-WROOM-32U di Espressif SystemsFigura 2: Il modulo ESP32-WROOM-32U è compatibile a livello di pin con WROOM-32D ma al posto dell'antenna stampata su PCB ha un connettore IPEX per un'antenna esterna che consente di ottimizzare le prestazioni RF. (Immagine per gentile concessione di Espressif Systems)

I moduli WROOM-32D sono interessanti anche per un altro aspetto: sono disponibili in varie dimensioni di memoria flash. Sono dotati di ulteriori varianti di supporto di memoria come ESP32-WROOM-32D con 8 MB e ESP-WROOM-32D con 16 MB.

Scegliere una scheda di sviluppo ESP32 per il controllo industriale

I moduli ESP32 sono un'ottima scelta quando si progetta una scheda da utilizzare nella produzione o quando vengono messi su una scheda che verrà utilizzata per "grandi" volumi. Per lo sviluppo di apparecchi in piccole serie, gli sviluppatori possono utilizzare una scheda di sviluppo ESP32. Queste schede vanno da quelle base "per principianti" a prodotti sofisticati che includono processori secondari e LCD. Ve ne sono alcune che si prestano bene anche per applicazioni di automazione industriale, sempre che la semplicità di sviluppo sia un requisito fondamentale.

ESP32-DEVKITC-32D-F è una di queste (Figura 3). È una semplice scheda di breakout per WROOM-32D dotata di tutti i circuiti di condizionamento di potenza e programmazione che servono a un progettista o a uno sviluppatore per iniziare. È alimentata tramite un microconnettore USB su scheda o tramite la basetta di breakout V-IN. Per collegare vari componenti a WROOM-32D si possono poi usare ponticelli o fili.

Immagine della scheda di sviluppo ESP32-DEVKITC-32D-F di Espressif SystemsFigura 3: La scheda di sviluppo ESP32-DEVKITC-32D-F include basette di breakout per la connessione ai pin di WROOM-32D e può essere alimentata tramite USB a fini di sviluppo. (Immagine per gentile concessione di Espressif Systems)

Un altro esempio è lo shield Airlift ESP32 di Adafruit Industries. Questo shield, oltre a includere WROOM-32D, dispone anche di spazio di prototipazione supplementare (Figura 4), utilizzabile per aggiungere non solo circuiti personalizzati ma anche connessioni ad altri shield. Uno sviluppatore potrebbe sfruttare quest'area per realizzare circuiti di ingresso e di uscita per applicazioni di automazione industriale a bassa tensione. È presente anche un connettore integrato per schede SD che agevola moltissimo lo sviluppo di un'applicazione di registrazione dati.

Immagine dello shield Airlift ESP32 di AdafruitFigura 4: Lo shield Airlift ESP32 di Adafruit consente ai progettisti di prototipare il proprio progetto o di costruire circuiti personalizzati da utilizzare in applicazioni di automazione industriale. Airlift include uno spazio di prototipazione che può essere utilizzato per circuiti dedicati. (Immagine per gentile concessione di Adafruit Industries)

Esistono anche delle applicazioni di automazione industriale in cui è utilizzata una scheda di sviluppo con un processore aggiuntivo ed ESP32 si limita a fornire la connettività invece di gestire l'intero carico dell'applicazione. In queste applicazioni, la scheda di sviluppo o il prodotto può avere connettori PMOD di espansione integrati.

Invece di progettare una scheda PMOD personalizzata per ESP32, gli sviluppatori possono sfruttare la scheda di breakout ESP32 PMOD di Digilent (Figura 5).

Oltre a un connettore standard PMOD, la scheda ESP32 PMOD fornisce:

  • Un indicatore a LED dell'alimentazione
  • Un pulsante utente su scheda
  • Espansione I/O a quattro pin
  • Ponticelli per la configurazione di avvio

Immagine della scheda ESP32 PMOD di DigilentFigura 5: La scheda ESP32 PMOD di Digilent fornisce il modulo ESP32 in un formato di espansione di facile connessione per l'uso con altri processori e schede di sviluppo. (Immagine per gentile concessione di Digilent)

La scheda ESP-WROVER-KIT di Espressif Systems è una soluzione completa di sviluppo ESP32 con tutto l’occorrente per sviluppare un'applicazione basata su ESP32 (Figura 6). Ad esempio, WROVER include un USB FT2232HL per il convertitore seriale da FTDI che facilita la programmazione del modulo ESP32 senza che siano richiesti strumenti di programmazione personalizzati. La scheda comprende anche un LCD integrato da 3,2 pollici, un connettore microSD, un LED RGB e un'interfaccia per telecamera. Inoltre presenta tutti gli I/O allineati e facilmente accessibili tramite basette pin.

Schema della scheda ESP-WROVER-KIT di EspressifFigura 6: La scheda ESP-WROVER-KIT di Espressif fornisce agli sviluppatori di automazione industriale un modulo ESP32 che ha accesso a un LED RGB, a uno slot microSD, a una telecamera, a un LCD e a un'espansione I/O. (Immagine per gentile concessione di Espressif Systems)

Quando il progettista ha deciso quali sono il modulo e la scheda di sviluppo più idonei per la sua applicazione, deve occuparsi dell'ambiente di sviluppo per ESP32 più adatto alle sue esigenze.

Scelta di un ambiente di sviluppo per ESP32

ESP32 è diventato così diffuso che per sviluppare e programmare il dispositivo esiste un'ampia scelta di ambienti. Fra gli strumenti di sviluppo più diffusi vi sono:

  • Il framework di sviluppo IoT (IDF) Espressif
  • L'IDE Arduino
  • MicroPython

Il primo ambiente, l'IDF Espressif, è una toolchain di strumenti di sviluppo per sviluppatori esperti di software embedded. La toolchain include diversi componenti utili come un IDE per sviluppare l'applicazione, un compilatore, librerie ed esempi. L'IDF utilizza FreeRTOS come sistema operativo base in tempo reale (RTOS) insieme allo stack TCP/IP lwIP e a TLS 1.2 per Wi-Fi.

Gli sviluppatori con poca esperienza di programmazione possono utilizzare anche il comune IDE Arduino per sviluppare un'applicazione e implementarla su ESP32. Anche se l'IDE Arduino è un po' più lento e arzigogolato di un ambiente di sviluppo professionale, offre molti esempi e supporto per ESP32 che possono semplificare notevolmente lo sviluppo per un principiante.

Infine, per chi è interessato a sviluppare la propria applicazione in Python, ESP32 è supportato dal kernel open-source MicroPython. Gli sviluppatori possono caricare MicroPython su ESP32 e poi sviluppare script Python per la propria applicazione. Sarà così molto facile aggiornare l'applicazione al volo in un ambiente industriale senza dover necessariamente possedere le competenze richieste da uno sviluppo embedded.

Suggerimenti e consigli per lavorare con ESP32

Iniziare a lavorare con ESP32 non è difficile e una ricerca sul Web fornirà descrizioni dettagliate di come impostare i vari ambienti software. Detto questo, gli sviluppatori che lavorano con ESP32 per la prima volta dovranno prendere molte decisioni e fare attenzione a diverse sottigliezze. Ecco alcuni consigli per iniziare:

  • Identificare e configurare accuratamente i pin di boot di un modulo - MTDI, GPIO0, GPIO2, MTDO e GPIO5 - per caricare un'applicazione dalla sorgente di memoria corretta (flash interna, QSPI, download, messaggi di debug Abilita/Disabilita).
  • Impostare la velocità di trasmissione (in baud) dell'uscita seriale identica a quella del firmware di avvio di ESP32. Questo permetterà il monitoraggio dei messaggi di avvio di ESP32 e di quelli di debug dell'applicazione, senza riconfigurare la velocità.
  • Gli utenti senza esperienza di programmazione embedded dovrebbero "flashare" MicroPython su ESP32 in modo da poter programmare l'applicazione nel linguaggio di scripting Python di facile apprendimento.
  • Per accelerare lo sviluppo e l'integrazione dell'applicazione, cercare su Internet esempi e librerie ESP32 (esistono già numerosissimi esempi eccellenti).
  • In fase di progettazione, assicurarsi che si possano usare i pin di boot strapping per l'avvio in modalità di aggiornamento. Sarà così molto facile aggiornare il firmware sul campo.

Seguendo questi consigli, gli sviluppatori che lavorano con ESP32 per la prima volta risparmieranno parecchio tempo ed eviteranno grattacapi.

Conclusione

Come è stato dimostrato, ESP32 ha diversi moduli e schede di sviluppo che gli sviluppatori possono sfruttare per iniziare a progettare la loro applicazione Industrial IoT. L'uso di ESP32 a questo scopo ha il vantaggio di semplificare lo sviluppo eliminando la necessità di comprendere la circuiteria RF e di certificare il ricevitore wireless. Inoltre, ESP32 è ampiamente supportato non solo dal produttore del modulo, ma anche all'interno dei circoli di professionisti e hobbisti. Gli sviluppatori che non hanno familiarità con il software embedded possono facilmente utilizzare l'IDE Arduino o programmare la loro applicazione wireless utilizzando MicroPython.

Per concludere, ESP32 è una scelta eccellente per collegare le apparecchiature di automazione industriale in modo rapido ed efficiente.

DigiKey logo

Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.

Informazioni su questo autore

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo è un consulente software embedded e attualmente lavora con clienti in più di una decina di paesi per trasformare radicalmente le loro attività migliorando la qualità dei prodotti, i costi e il time-to-market. Ha pubblicato più di 200 articoli sulle tecniche di sviluppo di software embedded, è un relatore e un istruttore tecnico e ha conseguito tre lauree, tra cui un master in ingegneria presso University of Michigan. Risponde all'indirizzo jacob@beningo.com, ha un sito web personale www.beningo.com e produce una Newsletter mensile Embedded Bytes cui è possibile iscriversi.

Informazioni su questo editore

Editori nordamericani di DigiKey