In
questa pagina troveremo una serie di programmi scritti per
ESP01, che montando lo stesso processore di ESP8266, sono
perfettamente compatibili. Sono forzatamente programmi
semplici, perchè ESP01 ha solo due porte che possiamo
sfruttare, ovvero GPIO0 e GPIO2, come si può vedere il
questo programma: |
In
questa porzione di programma si vede la dichiarazione delle
porte usate per i relè, ovvero GPIO0 per RELAY1 e GPIO2 per
RELAY2. Queste porte funzionano perfettamente anche su
ESP8266, quindi non è necessario cambiare nulla nel
programma, anche se potremmo sempre scegliere altre porte
disponibili, e modificando gestire, per esempio, quattro
relè. |
Ecco
i programmi preenti in questa pagina:
|
Uno dei progetti più comuni sul WEB per ESP01 è quello che permette, insieme al popolare DHT11, di visualizzare sul proprio browser la temperatura e l'umidità di un locale, come anche progetti che permettono il controllo di uno o più relèil controllo di un relè per mezzo di un DHT11 .Altri, ancora, controllano uno o più relè per mezzo di alcuni switch virtuali presenti su una pagina del proprio browser collegata sulla stessa rete wifi dei relè stessi. |
DHT11
|
Il sensore di temperatura e umidità DHT11 (oppure DHT11 o DHT22) è conveniente ed utilizzato in una miriade di progetti. Nominalmente funziona a 5v, però si comporta egregiamente anche a 3,3v, quindi può essere utilizzato senza problemi anche con ESP8266, sebbene variando il ponticello su JP2 si possa anche alimentare a 5v. Naturalmente nulla vieta di utilizzarne un paio, per leggere per esempio la temperatura e umidità sia all'interno di casa che all'esterno. E' sufficiente aggiungere alcune righe al programma. |
Un tipico relè (KY-019) alimentato a 5 volt che si usa nei progetti cun Arduino su una breadboard o sulla nostra basetta sperimentate- I tre piedini vanno connessi a +5v, al segnale e al negativo. Un piccolo led presente sulla scheda si illumina quando il relè viene attivato. Si comporta come un deviatore: un contatto è normalmente aperto, l'altro normalmente chiuso. |
Un relè KY-019 |
Temperatura e umidità con UN DHT11/DHT21/DHT22 |
Lo
sketch utilizza un web server, che permette di visualizzare
su di un qualsiasi browser (da PC, smartphone o tablet) una
pagina che mostra, con una cadenza di alcuni secondi, la
temperatura e l'umidità registrata. Usando un adattatore, caricare il programma su ESP01. Clicca qui se hai bisogno di alcune info per caricare il programma. Verificare di aver caricato tutte le librerie necessarie. Nel caso fosse necessario, le puoi scaricare dalla IDE di Arduino, oppure scaricarle da questi link: ESP8266WiFi.h ESPAsyncTCP.h ESPAsyncWebServer.h Adafruit_Sensor.h DHT.h Inserire la SSID della propria rete e la password di accesso all'interno del programma. Dopo aver caricato il programma, aprire il monitor seriale, impostando la connessione a 115200 bps e scollegare e ricollegare ESP01 al PC. Se tutto ha funzionato correttamente, dopo pochi secondi si dovrebbe leggere l'indirizzo IP del proprio modulo WiFi. Non deve preoccupare il messaggio "Failed to read from DHT sensor!" è normale, in quanto non si è ancora collegato il DHT11. Clicca qui per visualizzare il programma Clicca qui per scaricare il programma in formato ".zip" |
Inserire SSID e password L'indirizzo di ESP01 da inserire nel browser per visualizzare i dati. |
|
|
Schema
del collegamento elettrico di un DHT11 e ESP8266. Usa
la porta GPIO0, che corrisponde allo zoccolo "DG1" della
basetta sperimentale. DHT11 può anche essere alimentato direttamente da ESP8266 a 3,3v, piuttosto che a 5v (sua tensione standard. Vedi cavo di alimentazione tratteggiato. |
|
Il sensore DHT11 posto sullo zoccolo DG1, che corrisponde alla porta GPIO0 di ESP8266. Il rendering della scheda è in formato 1:1. |
|
Il
programma funziona indifferentemente con i sensori DHT11,
DHT21 o DHT22, però è necessario selezionare il sensore
corretto nello sketch. E' necessario togliere le due barre "//" (che trasformano quello che segue in un semplice commento) per rendere attivo il sensore utilizzato e lasciarle sulle altre due righe: il sensore attivo il questo caso è quello nel quadrato verde (DHT11) . Se si usasse un DHT22, togliere le barrette alla seconda riga e porle davanti a DHT11; lo stesso per DHT21. Attenzione: mi è capitato di acquistare, sia su Amazon che su Ali Express, dei sensori venduti come DHT11, e apparentemente perfetti. Però quando li ho utilizzati, davano risultati strani, come la temperatura di -0,5° invece che 22°! Variando i parametri nel programma e utilizzando la definizione relativa a DHT22, tutto è andato a posto! |
DHT22 DHT21 |
Ed ecco, in tutto il suo splendore, la pagina che appare sul browser del proprio PC, smartphone o tablet. La visualizzazione è piacevole, perché oltre ai dati, appaiono anche due simpatiche icone. Purtroppo il collegamento è limitato all'interno della propria rete WiFi |
I
dettagli del progetto sono reperibili a questo indirizzo del
sito di "randomnerdtutorials", e quindi esterno al nostro, a
cui va tutta la nostra gratitudine: https://randomnerdtutorials.com/esp8266-dht11dht22-temperature-and-humidity-web-server-with-arduino-ide/ |
|
Temperatura e umidità con DUE DHT11/DHT21/DHT22 |
Il progetto con due DHT11 è del tutto simile a quello con un solo modulo; naturalmente sono state eseguite le modifiche affinché si riuscisse a gestire separatamente i due sensori, per misurare la temperatura e umidità di due locali, oppure all'interno e all'esterno della propria abitazione. Perciò valgono le stesse regole applicate al progetto precedente, ovvero:
|
Schema del collegamento elettrico di due DHT11 e ESP8266. Il primo usa la porta GPIO0, che corrisponde allo zoccolo "DG1; il secondo GPIO2, che corrisponde a "DG2"." della basetta sperimentale. DHT11 può anche essere alimentato direttamente da ESP8266 a 3,3v, piuttosto che a 5v (sua tensione standard. Vedi cavo di alimentazione tratteggiato. |
Rendering della basetta sperimentale in formato 1:1. I due DHT11 sono connessi rispettivamente su DG1 (GPIO0) e su DG2 (GPIO2). |
Ed ecco come appaiono i dati nel browser. Il modulo che si occupa di visualizzare la temperatura e l'umidità "Indoor", ovvero all'interno della casa è quello posto su "DG1", collegato alla porta "GPIO0",mentre quello che rileva i dati all'esterno (outdoor) è posto sul connettore "DG2", relativo alla porta "GPIO2". Attualmente l'aggiornamento è ogni 20 secondoi circa, ma nel caso il sistema sia alimentato a batteria, converrebbe utilizzare degli intervalli più lunghi, per aumentarne la durata. Clicca qui per visualizzare il programma Clicca qui per scaricare il programma in formato ".zip" |
|
DHT11/DHT21/DHT22 + un relè |
Attenzione: se l'uscita del relè viene collegata alla rete elettrica (110 - 230 volts), un intervento non corretto può provocare incidenti gravi e anche mortali. Se non si è esperti, fate effettuare i collegamenti da un professionista qualificato. |
KY-019 |
Ecco ancora una volta i due componenti che collegheremo al "nostro " ESP01. Entrambi hanno la stessa disposizione dei piedini, per cui fare attenzione a non invertirli quando si inseriscono, perché il primo è una periferica di imput (DHT11) mentre il secondo di output (il relè). In questo progetto, DHT11 va inserito su DG1 (porta GPIO2) e il relè su DG2 (porta GPIO0). | DHT1 |
Ecco l'immagine di come inserire i due moduli sul rendering della basetta sperimentale. Naturalmente essi andranno in verticale; nell'immagine appaiono in orizzontale per visualizzare i particolari con maggiore facilità. P.s.: i componenti non sono in scala tra di loro. |
In questa foto invece appare la reale disposizione dei componenti sulla reale basetta sperimentale. Il relè presenta nella parte superiore un connettore a tre posizioni. quello centrale è il comune, mentre i laterali corrispondono ad abitualmente aperto e l'altro abitualmente chiuso. |
I dettagli dello sketch. |
Lo
schema elettrico del collegamento con la scheda ESP8266. Il relè KY019 si collega su GPIO0, corrispon-dente allo zoccolo "DG1"; il DHT11 si connette a GPIO2, ovvero allo zoccolo "DG2". |
Render della basetta sperimentale in dimensione 1:1. Il relè KY-019 è inserito sullo zoccolo DG1, connesso a GPIO0, mentre il sensore DHT11 è inserito sullo zoccolo DG2, collegato a GPIO2 |
Come
prima cosa, è necessario verificare se si sono installate
tutte le librerie necessarie. Verificando o lanciando la
compilazione del programma, verranno visualizzate quelle
eventualmente mancanti. In questo caso, provare prima di
tutto a scaricarle attraverso la Ide di Arduino. Nel caso
non si trovassero tutte, scaricarle dalla finestra che
appare sulla destra. Nel caso di dubbio, controllare la pagina relativa alla gestione delle librerie. |
ESP8266WiFi.h ESPAsyncTCP.h ESPAsyncWebServer.h Adafruit_Sensor.h DHT.h |
Di seguito, inserire la SSID (il nome esatto) della propria rete WiFi e la password di rete. |
Nel programma ho inserito una variabile contenente la temperatura limite in cui si attiva/disattiva il relè. Per convenzione ho inserito 24 gradi, ma si può facilmente variare, in base alle proprie esigenze. |
Il
programma funziona indifferentemente con i sensori DHT11,
DHT21 o DHT22, però è necessario selezionare il sensore
corretto nello sketch. E' necessario togliere le due barre "//" (che trasformano quello che segue in un semplice commento) per rendere attivo il sensore utilizzato: il sensore attivo il questo caso è quello nel quadrato verde (DHT11) . Se si usasse un DHT22, togliere le barrette alla seconda riga e porle davanti a DHT11; lo stesso per DHT21. Attenzione: mi è capitato di acquistare, sia su Amazon che su Ali Express, dei sensori venduti come DHT11, e apparentemente perfetti. Però quando li ho utilizzati, davano risultati strani, come la temperatura di -0,5° invece che 22°! Variando i parametri nel programma e utilizzando la definizione relativa a DHT22, tutto è andato a posto! |
DHT22
DHT21 |
Successivamete ho inserito due stringhe di testo per avere le informazioni sullo stato del relè. La variabile "relayon" restituisce una scritta "Relè attivato", mentre "relayoff" corrisponde a "Relè disattivato". Naturalmente si possono variare le scritte, che appariranno anche sul Browser in base alle proprie esigenze. |
Alcuni
relè si attivano quando sono posti ad "HIGH"; altri se posti
a "LOW". Quindi non sempre le scelte impostate nel programma
daranno il risultato voluto. In caso di necessità, invertire
nel programma i valori evidenziati. In queta routine, se la temperetura è uguale o maggiore di quello impostato inizialmente (nel caso in oggetto 24°), il relè viene forzato ad "HIGH"; la variabile stringa "relay1" sarà uguale a "relayon", che corrisponde a "Relè attivato". Questa variabile verrà utilizzata per inserire il valore nel browser. "Serial.println" scriverà la stessa informazione nel serial monitor (impostato a 115200 bps). Se la temperatura è inferiore a 24 gradi, "relay1" sarà uguale a "relayoff", e sia sul browser che sul monitor seriale apparirà "Relè disattivato". |
Dopo
aver caricato il programma, disinserire e reinserire dopo
qualche secondo il programmatore sulla porta
USB del computer. Aprire il monitor seriale e prendersi nota
dell'indirizzo IP assunto dal ESP01 sulla rete. Non preoccuparsi del messaggio per non aver trovato il sensore DHT11. Questo è normalein quanto non è collegato |
A
questo punto, dopo aver riconnesso l'ESP01 programmato sulla
basetta, inserito nella posizione corretta il relè e il
DHT11 , alimentare la basetta e aprire un browser, inserendo
il codice IP , si aprirà una finestra simile a questa: In questo caso, la temperatura è inferiore a 24 gradi, quindi il relè sarà disattivato; se e quando la temperatura raggiungerà i 24 gradi (o la temperatura inserita nella variabile "Temp"), il relè verrà attivato, e quindi metterà in funzione qualche periferica. Clicca qui per visualizzare il programma Clicca qui per scaricare il programma in formato ".zip" |