Progetti
hardware
- Come installare la IDE
di Arduino
- Configurazione e
piedinatura
- Caricamento dei
programmi
- Come caricare le
librerie necessarie
Programmi
vari
Temperatura e umidità con DHT11/DHT/21/DHT22 Programmi
con Telegram
Programmi con ThingSpeak
Programmi
con Mosquitto (MQTT)
|
ESP01/01S
è il "piccolo" della famiglia delle schede ESP, anche nelle
dimensioni: infatti misura solo 25 x 14 mm. Ma non per
questo difetta di potenza o di utilità. Infatti ha un processore da 80 MHz, 36 Kb di memoria RAM, e 1 Mb di memoria per i programmi. Nativamente si collega alle rete WiFi a 2,4 GHz e supporta i protocolli 802.11 b/g/n. Possiede inoltre due porte digitali di input/output, GPIO0, e GPIO2. Condivide tutti i programmi e sketch con la scheda NodeMCUESP8266, naturalmente quando non si usino più di due porte di input/output. |
ESP01 |
Quanti
moduli si possono collegare a un ESP01? |
La
risposta sembra scontata: avendo solo due porte di
input/output, si possono collegare ad esso o due moduli
digitali che utilizzino una sola porta, come il sensore di
temperatura/umidità DHT11 o un relè tipo KY-019. Ma la realtà, per nostra fortuna, è più articolata. Oltre che al fatto che esistono decine e decine di moduli che hanno queste caratteristiche, ci sono anche altre possibilità. Ci sono per esempio dei moduli digitali per la misura della temperatura che si basano su 18B20 (KY-001 - HW-506), che possiedono all'interno un indirizzo univoco; quindi sulla stessa porta se ne possono collegare vari in parallelo, per misurare per esempio le temperature di vari locali adiacenti, lasciando comunque libera una seconda porta per ulteriori periferiche. Inoltre ESP01 supporta anche il protocollo I2C: infatti GPIO0 corrisponde a SDA (data) e GPIO2 a SCL (clock). Perciò si potrebbe collegare in parallelo anche un certo numero di moduli, a patto che abbiano indirizzi interni diversi e nella memoria di ESP01 ci sia abbastanza spazio per le linee di programma e per le variabili utilizzate. Spesso i moduli I2C svolgono anche delle funzioni complesse, quindi si possono strutturare dei programmi interessanti che restituiscono un ricco insieme di informazioni, quali una completa stazione meteorologica, i cui dati possono anche essere visualizzati su di un piccolo schermo OLED! |
il sensore KY-001 BMP680 ............................... il display Oled 128x64 |
Ha senso
usare un ESP01 per dei programmi che funzionano localmente
(non via WiFi)? |
Un essiccatore solare | Da un
punto di vista logico sembrerebbe inutile utilizzare un
ESP01 per dei programmi che non sfruttano le potenzialità
del WiFi, però ci sono dei casi che varrebbe la pena di
valutare.
|
Entriamo nel merito... |
ESP01non possiede un connettore USB, quindi non può essere collegato direttamente al computer per ricevere la programmazione con la IDE di Arduino. Perciò si può scegliere se usare un'interfaccia che permetta di connetterlo a una presa USB del computer (come quello mostrato in figura), oppure di collegarlo a un Arduino di qualsiasi tipo per poter essere programmato attraverso di esso, seppure con qualche complessità in più. E' opportuno collegare un piccolo switch alla schedina, per permettere alla ESP01 di entrare in modalità di programmazione (verrà spiegato diffusamente più avanti come procedere). Il modulo ESP01 è estremamente economico: da Ali Express si trova a meno di 3 euro; a 5,5 euro per cinque pezzi e il programmatore alla stessa cifra, tutti comprensivi di spedizione. Se si spende più di 10 euro in totale, il costo scende ulteriormente. Da Amazon cinque pezzi costano circa 13,5 euro, ma si ha il vantaggio di una consegna molto rapida. |
Con
una spesa veramente irrisoria si può acquistare una scheda
come quella indicata nell'immagine, che permette di rilevare
a distanza la temperatura e l'umidità di un luogo. E'
sufficiente alimentarlo (a 3,3v!), caricare il
programma, connetterlo alla rete WiFi, e il gioco è fatto! L'unico problema di questa scheda è che il sensore di temperatura è alloggiato sotto la ESP01, quindi se essa si scaldasse leggermente, potrebbe falsare la lettura della temperatura. Per evitare il problema è sufficiente spostare di qualche centimetro il sensore. |
Questa
seconda scheda trasforma il nostro ESP01 in un attuatore,
collegandolo a un relè. In questo modo si può comandare
qualsiasi apparecchio che funzioni a una tensione e un
assorbimento che non è compatibile con il microprocessore.
E' possibile comandare una presa, una lampada, un
condizionatore, una caldaia, una stufa elettrica... N.b.: tutte le schedine illustrate in questa pagina possono essere acquistate dai soliti fornitori, quali Amazon, Bangood, Ali Express o altri. |
Piedinatura e programmazione di ESP01 |
In
questa immagine si vede la scheda dall'alto, in cui sono
indicati i suoi otto piedini e il loro utilizzo. Verifichiamoli nel dettaglio la fila più a sinistra: - GPI01 permette di trasmettere (TX) i dati durante la programmazione, per esempio controllando il funzionamento attraverso il monitor seriale - CH_PD/EN raramente utilizzato. A volte viene collegato anch'esso ai 3,3v. - RST esegue un reset hardware collegando questo piedino alla massa (GND) per un secondo circa. - 3,3 V il pin di alimentazione della scheda. Attenzione NON alimentare con 5v, pena il danneggiamento del processore. Ed ora la fila dei piedini posti a destra dell'immagine: - GND il collegamento alla massa - GPIO2 una delle porte di input/output. Nel protocollo I2C corrisponde a SCL/SCK (clock) - GPIO0 l'altra porta di input/output. Nel protocollo I2C corrisponde aSDA/SDI (data) - GPIO3 la porta che durante la programmazione riceve i dati dal computer. Abitualmente la ESP01 è in "operating mode", ovvero in modalità operativa. Per entrare in "programming mode" o "flashing mode", è necessario collegare il pin GPIO0 e GND, connettere la scheda al computer e mantenere il collegamento per qualche secondo, poi caricare il programma. Per tornare nella modalità operativa, disconnettere e riconnettere la scheda al computer (ovviamente senza collegare GPIO0 a GND). Se non si usa la basetta sperimentale, il metodo migliore è quello di saldare un pulsante sull'adattatore seriale. |
.. |
Piedinatura
di ESP01
Per entrarre in modalità di programmazione, connettere GPIO0 a GND, collegare al computer e dopo un paio di secondi sconnettere GPIO0 da GND. Il
pulsante saldato sull'adattatore seriale per poter
entrare in "programming mode". Guardando l'adattatore,
si deve saldare il pulsante rispettivamente alla fila di
sinistra dei connettori, rispettivamente il primo e il
terzo partendo dall'alto.
|
Ecco
il link a una pagina esterna al sito di EtichalDiy che
mostra un ottimo video che illustrai primi passi per
programmare il nostro ESP01, di cui ringrazio Emanuele
Frisoni: https://www.youtube.com/watch?v=_qDvhGHjTJ8 |
La basetta sperimentale per
ESP01
|
Per
semplificare i test dei programmi per ESP01, ho progettato
una semplice basetta che permette di collegare direttamente
un buon numero di moduli digitali, come sensori, relè,
ecc., e una serie di periferiche I2C, che rendono i
progetti decisamente vari e interessanti, portando alcuni
vantaggi non secondari nel trasferimento dei programmi e nei
test degli stessi, riducendone sensibilmente i tempi e i
passaggi necessari. Clicca qui per la pagina relativa alla basetta sperimentale |
La
basetta sperimentale in scala 1:1
|
|