Con
questo progetto si collega un ESP01 con un sensore di
umidità e temperatura DHT11 e con un relè (KY-019 o
similare), che si attiva/disattiva automaticamente al
raggiungimento di una temperatura limite. Sul browser apparirà, oltre alla temperatura e l'umidità, lo stato del relè. Questo programma può avere molte applicazioni: attivare una caldaia quando la temperatura si abbassa, o al contrario, accendere un condizionatore quando la temperatura e/o l'umidità raggiungono un certo valore. Personalmente ho usato questo progetto per un essiccatore di frutta e verdura: quando la temperatura supera un certo valore, accende una serie di ventole che riportano la temperatura a un valore accettabile, perché devo far seccare lentamente i miei vegetali e non cuocerli! |
Il progetto |
KY-019 |
Ecco
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). |
DHT11 |
La disposizione dei componenti. |
Ecco
l'immagine di come inserire i due moduli sulla 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 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 componenti sulla basetta sperimentale. |
I dettagli dello sketch. |
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" |