Ingegneria InformaticaTech

Stazione meteo: ESP8266 e DHT22

Dopo aver visto nello scorso articolo come collegare la nostra ESP8266 al WiFi, oggi vediamo un progetto più interattivo. Come creare una mini stazione meteo con ESP8266 e DHT22.

Innanzitutto è necessario evidenziare una differenza notevole tra i vari moduli ESP8266. Sono infatti presenti sul mercato, sia moduli come quelli visti in precedenza, sia i così detti standalone. I primi hanno bisogno di essere programmati e controllati tramite Arduino. I secondi invece, come suggerisce il nome, sono board WiFi basate su ESP8266, indipendenti. Esempi molto comuni sono: Wemos d1 mini e NodeMcu v3.

 

 

Componenti necessari

Per questo primo progetto, realizzeremo una mini stazione basata sul modulo WiFi e su un sensore di umidità e temperatura. Sarà possibile utilizzare sia un DHT11 che un DHT22. In assenza di uno dei due, non disperate! Vedremo infatti anche come controllare un led via telegram. Sarà necessario quindi avere anche a disposizione un modulo ESP8266, che sia o meno standalone.

Bot Telegram

Per poter visualizzare i dati raccolti dal nostro sensore comodamente sul nostro smartphone, sarà possibile usare un bot Telegram, noto social di instant messaging. Per fare ciò basterà recarsi su Telegram, cercare BotFather, e seguire le istruzioni per la creazione del nostro bot personale. Sarà necessario copiare e conservare il Token API.

DHT22/DHT11 sensore di umidità e temperatura

Prima di procedere col codice, un breve accenno sulle differenze di questi due sensori. Ecco uno schema riassuntivo dei due, chiaramente dipende dall’utilizzo che ne si deve fare. Il DHT22, come si può evincere, è certamente più accurato e per questo un po’ più costoso. Tuttavia essendo entrambi i sensori molto economici, la scelta sta a voi. Sono disponibili ulteriori sensori di temperatura e/o umidità che vedremo più avanti. Adesso che è tutto pronto, possiamo dedicarci alla comprensione del codice.

 

 

 

Il codice: le librerie

La prima parte di codice è destinata alle librerie. Com’è facilmente intuibile, CTBot è la libreria che ci permette di ricevere i dati dei sensori sul bot Telegram (download). La seconda, DHT, serve invece per il corretto funzionamento del sensore di umidità e temperatura (download).

 

 

Il codice: le variabili

La seconda parte è dedicata alle variabili. Le prime due, come evidenziato dal commento in grigio, rappresentano le credenziali della vostra rete WiFi. La terza è il token precedentemente copiato da Telegram. Infine troviamo una variabile per il led già presente sulla scheda. Gli ultimi due #define, servono ad indicare rispettivamente in pin a cui colleghiamo il sensore ed il modello del nostro sensore. Nel mio caso si tratta di un DHT22, ma se doveste avere un DHT11, basterà cambiare nome.

 

 

Il codice: avvio del sensore e bot

In questa breve parte viene assegnato al sensore DHT il pin a cui è collegato ed il tipo di sensore utilizzato (se DHT11 o DHT22). Viene inoltre creato l’oggetto myBot che servirà per comunicare con Telegram.

 

 

Il codice: setup

Quarta parte, questa è la porzione di codice che viene eseguito al primo avvio. Viene avviata la porta seriale a 115200 baudrate. Sul monitor seriale, che va aperto e impostato su 115200, ci verrà scritto che il bot si sta avviando e se la connessione è andata a buon fine o meno. Infine, viene indicato il led come output e viene, teoricamente, acceso. Tuttavia il led presente sulla board funziona per logica inversa, quindi in tal modo, viene spento.

 

 

Il codice: loop

La quinta ed ultima parte è quella del loop. Questa porzione di codice viene eseguita senza ciclicamente. Se il messaggio che l’utente invia corrisponde ad uno di quelli che il codice “riconosce”, allora verrà eseguita la porzione di codice corrispondente. Es. se l’utente scrive “accendi il led”, allora la ESP8266, accenderà il led e risponderà all’utente “Il led è acceso”. Se l’utente dovesse invece scrivere qualcosa non “riconosciuto” dal bot, questo gli invierà un messaggio preimpostato. Questo è contenuto nell’else, e spiega cosa può fare il bot.

 

Cristina Genduso
Mi appassiona il progresso scientifico-tecnologico in tutti i suoi campi e mi piace studiare le novità introdotte nel campo della tecnologia che possono migliorarci la vita.

    You may also like

    Leave a reply

    Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *