Ethical DIY

Progetti hardware & software etici


Menu orizzontale con sottomenu CSS








 


Progetti hardware

Basetta sperimentale per ESP8266

Assemblare la basetta sperimentale

Download dei dati necessari per la realizzazione della basetta sperimentale



Informazioni di base:

- Come installare la IDE di Arduino
- Configurazione e piedinatura
- Caricamento dei programmi
- Come caricare le librerie necessarie



Programmi vari

DHT11/DHT21/DHT22 e RELE'
- Temp. e umidità con un DHT11/21/22
- Temp. e umidità con due DHT11/21/22
- Controllo du un relè con DHT11/21/22


ESP8266 e Bluetooth
- controllo di più led e relè via Bluetooth
- controllo di un led a tre colori
- controllo vocale di più led/relè

Web server e ora esatta
- creare  più web server (3)
- ricevere data e ora esatta (2)

Controllare dei relè via WiFi
- controllo di 1/2/4/5 relè via WiFi (3)

Stazione meteorologica/qualità dell'aria
- staz. meteorologica con BMP280 (3)
- staz. meteorologica con BME280
- staz. meteorol. con OpenWeatherMap
- qualità dell'aria con BME680
- qualità dell'aria con SGP30



Programmi con Telegram

Verificare l'apertura di uno o più porte

Controllo di uno o più relè



Programmi con ThingSpeak

Una stazione meteorologica con BMP680

Monitorare la qualità dell'aria con GSP30



Programmi con il DB Firebase

Gestire alcuni led/relè

Gestire led/relè con Mit App Inventor 2



Programmi con MQTT (Mosquitto)

Inviare /ricevere dati per mezzo di MQTT



Programmi con scheda Bluetooth

Controllo led/relè via terminale

Controllo led/relè con switch

Controllo cromatico di un led

Controllo a mezzo vocale



Programmi con LittleFS





Link utili

Visualizzazione di link utili per ESPxxx





 















ESP8266 - ESP12E
Programmi con DHT11 e relè

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:
gpio1

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
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.


rele
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"


ssiddht
Inserire SSID e password


dhtmon
L'indirizzo di ESP01 da inserire nel
browser per visualizzare i dati.



1dht

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.




1dht
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.
dhtx
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!


dht21DHT22

dht21
DHT21




1dhtbrw


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:
  • verificare di avere installato tutte le librerie necessarie;
  • inserire nello sketch la SSID della propria rete e la password;
  • prendere nota dell'indirizzo IP del proprio ESP01, da riportare sul browser per visualizzare le informazioni.

    Si ricorda che i programmi funzionano solo all'interno della propria rete WiFi.





2dht


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.



2dht
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"


2dhtbrw







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.




ky019
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).
dht11
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.



rel_dht

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".




rel_dht
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.
passw



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.

limit



Il programma funziona indifferentemente con i sensori DHT11, DHT21 o DHT22, però è necessario selezionare il sensore corretto nello sketch.
dhtx
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!


dht21DHT22

dht21
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.

varrele



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".


state



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


ip



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"


disp











Per contatti: info@ethicaldiy.org