. . .

 

La scheda ESPertino offre un’eccellente integrazione di microelettronica con il modulo a microcontrollore ESP32-WROOM con Wi-Fi e BLE ideale per un'ampia varietà di applicazioni IoT e non solo: dalle reti di sensori a bassa potenza, alla codifica vocale e streaming musicale. ESPertino è disponibile solo su Elettronica Open Source con numerosi articoli applicativi, che saranno pubblicati nei prossimi giorni.

 

Introduzione.

L'internet delle cose ha l’obiettivo di collegare gli oggetti ad Internet. Queste "cose" usano o coinvolgono dati che devono essere misurati come parte di un sistema embedded più grande. I sistemi embedded sono dispositivi a microcontrollore che utilizzano sensori e altri meccanismi di rilevazione per la raccolta dati. Un sistema decisionale avrà l’obiettivo di raccogliere e analizzare i dati, e compiere decisioni sul sistema in base ai risultati dell’analisi. Come per qualsiasi progetto di sistema embedded, è importante iniziare con il corretto kit di sviluppo, scelto in accordo ai requisiti del progetto IoT.  Lo sviluppatore avrebbe bisogno di creare un ambiente hardware e software, scrivere driver e codice applicativo sia per il nodo IoT che per il server cloud, quindi eseguire il debug della connettività tra entrambi i sistemi prima di creare anche l'applicazione finale. Per facilitare questo processo, gli strumenti di sviluppo forniscono un ecosistema di connettività pronto con un codice applicativo testato che può creare un prototipo funzionante in meno di un giorno. Per la maggior parte degli sviluppatori, la creazione di un sistema di rete IoT da zero richiede la conoscenza di molte diverse tecnologie, tra cui la connessione cablata e wireless, lo sviluppo di codice embedded e di driver per dispositivi. Mentre molti sviluppatori esperti possono già conoscere queste tecnologie, competenze aggiuntive come la scrittura di applicazioni per dispositivi mobile e lo sviluppo di codice cloud per esempio sono delle competenze relativamente nuove. I nuovi kit di sviluppo di Internet of Things forniscono strumenti hardware e software flessibili, al fine di ridurre il time-to-market ma anche educare lo sviluppatore sulle nuove tecnologie. In questo contesto ESPertino si mostra una scelta ideale per applicazioni che coinvolgono il settore dell’IoT con il modulo core ESP32 per la connettività wireless, e due relè per l’interfaccia verso soluzioni ad alta tensione (figura 1). Attraverso delle librerie C/C++ la scheda è programmabile con l'interfaccia IDE Arduino. ESPertino ha una doppia alimentazione, due LED sui pin IO13 e IO05 e altri relativi al TX/RX della UART.

 

Figura 1: La scheda ESPertino con in evidenzia i due relè (nero) e il modulo ESP32 (grigio).

 

 

Figura 2: Schema elettrico della scheda ESPertino.

 

L’Hardware di ESPertino.

Lo schema elettrico di ESPertino è visualizzato in figura 2 dove osserviamo i seguenti principali componenti:
    modulo ESP-WROOM-32;
    relè;
    CP2102 della Silicon Labs;
    LD1117S33;

L'alimentazione della scheda può avvenire esternamente con il connettore X1 o tramite la USB (5 V). Un pulsante di reset SW1 è presente per la programmazione del firmware attraverso librerie Arduino IDE. Sulla scheda è integrato anche un sensore di temperatura IC3 MCP9700 che converte la temperatura in una tensione analogica. Questi sensori low-cost e low-power offrono un'accuratezza di ± 2 °C e ± 4 °C da 0 °C a + 70 °C, con consumi tipici di 6 μA. L'impiego dei sensori low cost permette di evitare circuiti di condizionamento e quindi eseguire il collegamento direttamente all'ingresso di un microcontrollore.

ESP-WROOM-32 è un modulo a microcontrollore con Wi-Fi e Bluetooth integrati che si rivolge ad un'ampia varietà di applicazioni. Al centro di questo modulo c'è il chip ESP32-D0WDQ6, progettato per essere scalabile e adattativo. Ci sono due core CPU che possono essere controllati individualmente o alimentati con una frequenza di clock regolabile da 80 MHz a 240 MHz. L'utente può anche disattivare la CPU e utilizzare il coprocessore a bassa potenza per monitorare costantemente le periferiche per i relativi aggiornamenti. ESP32 integra un ricco set di periferiche, come i sensori touch capacitivi, sensore di temperatura, sensori Hall, amplificatori a basso rumore (low noise amplifier LNA), e la relativa interfaccia per schede SD, bus Ethernet, SDIO / SPI, UART, I2S e I2C. L'integrazione di Bluetooth, Bluetooth LE e Wi-Fi garantisce una vasta gamma di applicazioni in ambito IoT: l'utilizzo di Wi-Fi consente una connessione diretta con internet tramite un Router, mentre l'utilizzo di Bluetooth consente all'utente di collegarsi comodamente al dispositivo mobile per trasmettere e ricevere segnali a bassa velocità di trasferimento dati. La corrente del chip in modalità sleep è inferiore a 5 μA, rendendo così il modulo adatto per applicazioni elettroniche portatili a batteria. ESP-WROOM-32 supporta velocità di trasmissione fino a 150 Mbps e potenza di uscita di 22 dBm alla PA. In quanto tale, il chip offre le specifiche leader del settore e le migliori prestazioni per l'integrazione elettronica, con un ottimo consumo energetico ed eccellente connettività. Il sistema operativo scelto per ESP32 è freeRTOS con LwIP; e TLS 1.2 come acceleratore hardware integrato. È inoltre supportato l'aggiornamento sicuro (crittografato), in modo che gli sviluppatori possano aggiornare i propri prodotti anche dopo il loro rilascio. Con la tecnologia avanzata di gestione dell'alimentazione, ESP32 può lavorare in diverse modalità, in particolare (tabella 1 e 2):

  • Modalità attiva (active mode): il chip può ricevere, trasmettere o ascoltare.
  • Modalità sleep (sleep mode): la CPU è operativa e il clock può essere configurato. Wi-Fi e Bluetooth sono disattivati.
  • Modalità light-sleep (sleep-light mode): la CPU è in pausa. RTC e il co-processore ULP sono in esecuzione. Eventuali eventi di sveglia (MAC, host, timer RTC o interrupt esterni) riattiveranno il chip.
  • Modalità deep-sleep (deep-sleep mode): solo RTC è acceso. I dati di connessione Wi-Fi e Bluetooth sono memorizzati nella memoria RTC. Il coprocessore ULP può funzionare.
  • Modalità di ibernazione (hibernation mode): l'oscillatore interno 8MHz e il coprocessore ULP sono disabilitati. La memoria di ripristino RTC è disattivata. Sono attivi solo un timer RTC sul clock lento e alcuni GPIO. Il timer RTC o i GPIO possono riattivare il chip dalla modalità di ibernazione.

 

Tabella 1: valori di consumo per alcune modalità operative.

 

Tabella 2: valori di consumo per alcune modalità operative.

 

ESP32 integra diverse fonti di clock per i core CPU, configurati per soddisfare diverse esigenze. La Figura 3 mostra la struttura del clock di sistema. Il chip ESP32 dispone di 40 pad GPIO fisici. Alcuni non possono essere utilizzati nè hanno i corrispondenti pin sul package di chip. Ogni pad può essere utilizzato come un I / O generico o essere collegato ad un segnale periferico interno. La memoria integrata è composta da quattro segmenti: ROM interna (448 KB), SRAM interna (520 KB), memoria RTC FAST (8 KB) e memoria RTC SLOW (8 KB). La ROM interna da 448 KB è suddivisa in due parti: ROM interna 0 (384 KB) e ROM interna 1 (64 KB). SRAM interna da 520 KB è suddivisa, invece, in tre parti: SRAM interna 0 (192 KB), SRAM interna 1 (128 KB) e SRAM interna 2 (200 KB). RTC FAST Memory e RTC SLOW Memory sono entrambe implementate come SRAM.

 

Figura 3: struttura schematica del clock di sistema dell'ESP32.



CP2102 è un controller Bridge USB-to-UART altamente integrato che fornisce una soluzione semplice per aggiornare i design RS-232 al bus USB utilizzando un minimo di componenti e un ridotto spazio PCB. CP2102 include un controller USB 2.0, un ricetrasmettitore USB, un oscillatore, un EEPROM o un EPROM e un bus dati seriale asincrono (UART) con segnali di controllo, il tutto in un package QFN-28 da 5 x 5 mm. La ROM è programmata tramite USB, consentendo la fase di programmazione facilmente integrata nel processo di produzione e di collaudo del prodotto. I driver per i dispositivi virtuali (VCP) senza licenza forniti da Silicon Laboratories consentono di visualizzare un dispositivo CP2102 come porta COM nelle applicazioni PC. CP2102 integra un regolatore di tensione da 5 a 3 V che consente al circuito IC di essere configurato come un dispositivo USB alimentato da bus o dispositivo USB autoalimentato (figura 4).

 

Figura 4: regolatore interno al chip CP2102.



LD1117 è un regolatore di tensione in grado di fornire fino a 800mA di corrente di uscita, disponibile anche in versione regolabile (Vref = 1.25V). Per quanto riguarda le versioni a tensioni fisse, sono offerti le seguenti tensioni di uscita: 2.5V, 2.85V, 3.0V 3.3V e 5.0V. Il dispositivo è fornito in package SOT-223, DPAK, SO-8 e TO-220. I package di montaggio superficiale SOT-223 e DPAK ottimizzano le caratteristiche termiche offrendo anche un deciso risparmio di spazio.

La serie di relè RSM954N impiegata sulla scheda (figura 5) è costituita da un materiale di contatto Ag/Au 0.2 μm, con un massimo carico di 3 A / 125 V AC e 3 A / 30 V DC. Questi piccoli relè rappresentano essenzialmente degli interruttori, il cui stato dipende dall'eccitazione. A riposo, il contatto mobile è connesso ad uno fisso, con l'altro disconnesso rappresentando, di fatto, un circuito aperto. In modalità di eccitazione, il contatto mobile si sposta verso l'altro contatto attivando un circuito esterno.

 

Figura 5: schema di collegamento dei relè.

 

Installazione delle librerie.

La libreria per la scheda ESPertino può essere scaricata dal seguente link e riportata nella sezione Download in fondo all'articolo. Prima di iniziare dovrete installare l'ultima versione di Arduino IDE e i driver del CP2102 della Silicon Labs. Successivamente, è necessario eseguire con attenzione i seguenti passi di installazione.

 

Mac OS/Linux.

Creare la cartella /Documenti/Arduino/hardware/espressif/ESPertino e copiare tutto il contenuto della libreria precedentemente scaricata. Successivamente, eseguire da terminale nella cartella /ESPertino/tools il seguente comando:

python get.py

In particolare, dovreste avere una nuova cartella dist e un file eseguibile denominato esptool nella cartella tools. Per gli utenti Mac, vi consiglio di leggere con attenzione la nota in fondo al paragrafo.

 

Windows.

Con Windows, il procedimento è esattamente uguale attraverso python con il comando precedente. In ogni caso, considerando la fattibilità dell'operazione python, la libreria presenta un file exe denominato get.exe attraverso il quale il sistema genererà i file necessari dopo averlo eseguito con i permessi da amministratore. In particolare, nella cartella tools verrà inserito un file eseguibile denominato esptool.

 

Figura 6: Schermata Arduino con la scheda ESPertino. Sullo sfondo dell'IDE un esempio di codice.

 

Arduino IDE.

Dopo aver installato correttamente la libreria, dovreste trovare sotto la categoria "Gestore Schede" la scheda ESPertino. I parametri di default relativi a Upload speed, Core debug level, Flash frequency, non dovrebbero richiedere una particolare gestione (ovviamente il valore nella voce "upload speed" dovrà coincidere con il vostro Serial.begin). Sotto la voce "Porta" ricordatevi di selezionare la Vostra COM di ESPertino installata attraverso i driver della SiliconLabs (figura 6). Come semplice test, possiamo eseguire il codice riportato di seguito che consiste nel far lampeggiare il led LD5 posto sulla scheda e collegato all'ingresso IO13 del modulo ESP32.

void setup() { 
 //Initialize serial and wait for port to open: 
 pinMode(13, OUTPUT);

Serial.begin(115200); 
 Serial.println("Hello ESP32 World!"); 
  
} 
void loop() { 

 digitalWrite(13, HIGH); 

 //Serial.println("Hello ESP32 World!"); 

 delay(2000);

 digitalWrite(13, LOW);

 delay(500);

} 

Dopo aver compilato e inviato il codice al microcontrollore del modulo ESP32, e se tutte le operazioni sono andate a buon fine, Arduino risponderà con un messaggio conclusivo del seguente tipo:

Leaving...
Hard resetting...

Successivamente, per alcuni sistemi operativi, sarà sufficiente premere il pulsante SW1 (pulsante di reset) per eseguire l'applicazione caricata.

 

Nota.

Se in seguito ad una nuova riprogrammazione con l'IDE Arduino dello stesso codice leggermente modificato, oppure in fase di una nuova compilazione, vengono riscontrati problemi con il seguente messaggio nel terminale:

A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header

Occorrerà eseguire dei step in più relativamente all'installazione delle librerie per tutti i sistemi operativi. Vi accorgerete, inoltre, che per ovviare a questo problema sarà sufficiente staccare e ricollegare il cavo USB. In ogni caso, per evitare questa spiacevole situazione, sarà necessario eseguire correttamente, indipendentemente dal sistema operativo, i seguenti passi di installazione relativamente ai file exe/exec di esptool.py:

Eseguire nella cartella /tools il seguente comando #1:

pyinstaller --onefile esptool.py

Nella cartella dist verrà memorizzato il file exec denominato esptool da sostituire con l'altro presente nella cartella tools. Qualora il sistema non supportasse il comando pyinstaller, questo può essere installato attraverso il seguente comando #2:

pip install pyinstaller

Per semplicità, nella sezione download abbiamo inserito la possibilità di scaricare i due file esptool già compilati, e quindi eseguibili, sia per il Mac-Os/Unix (testato con la versione 10.11.2), sia per Windows (testato con la versione Win10).

Questa procedura è fortemente consigliata per gli utenti Mac-Os. Per gli utenti Windows, invece, bisognerà prima fare dei test (vedi codice Arduino sopra) in seguito all'installazione delle sole librerie, solo successivamente considerare quest'ultimo caso riportato nella nota.

 

Conclusioni.

La scheda ESPertino dimostra essere una interessante piattaforma per lo sviluppo di applicazioni generali IoT, forte anche del suo modulo core ESP32 che ingloba Wi-Fi e Bluetooth, oltre ad interessanti periferiche integrate perfettamente nel chip. Prossimamente vedremo su Elettronica Open Source una serie di progetti e una interessante promozione con la possibilità di poter acquistare la scheda. All'interno della libreria troverete anche esempi per poter gestire una rete Wi-Fi e le varie porte GPIO. A tal proposito, vi consiglio di dare anche uno sguardo al data sheet del modulo ESP32 dove troverete tutte le denominazioni dei pin e i loro impieghi.

Download

 

Fonte: http://it.emcelettronica.com

 

 

Segnala questa pagina web in rete.

 

Disclaimer: questo sito ("Ogigia, l'isola incantata dei navigatori del web") NON rappresenta una testata giornalistica in quanto viene aggiornato senza alcuna periodicità su vari argomenti, tra cui Linux, geopolitica, metodi di auto-costruzione di risorse, elettronica, segreti, informatica ed altri campi. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62 del 07/03/2001. Il Webmaster inoltre dichiara di NON essere responsabile per i commenti inseriti nei post. Ogni informazione circa la salute o l'alimentazione sono solo a carattere informativo, e NON siamo responsabili di qualsiasi conseguenza negativa se qualcuno vuole improvvisarsi medico oppure dietologo; si consiglia sempre di rivolgersi a medici ed esperti qualificati. Eventuali commenti dei lettori, lesivi dell'immagine o dell'onorabilità di persone terze NON sono da attribuirsi al Webmaster, che provvederà alla loro cancellazione una volta venuto a conoscenza di un ipotetico problema. Eventuali ritardi nella cancellazione di quanto sgradito non sono imputabili a nessuno. Si declina ogni responsabilità sull'utilizzo da parte di terzi delle informazioni qui riportate. Le immagini pubblicate su questo sito, salvo diversa indicazione, sono state reperite su Internet, principalmente tramite ricerca libera con vari motori. In ogni caso si precisa che se qualcuno (potendo vantare diritti su immagini qui pubblicate, oppure su contenuti ed articoli, o per violazioni involontarie di copyright) avesse qualcosa da rimproverare o lamentare può scriverci attraverso la sezione per i contatti .