Il sensore digitale digitale DHT11 consente di rilevare la temperatura e l’umidità relativa dell’ambiente. E’ un sensore economico molto utilizzato a livello didattico, viene impiegato con diversi tipi di microcontrollori e su questo sito trovate informazioni di utilizzo con Arduino. In questo post vedremo un primo utilizzo del sensore con BBC micro:bit e durante le lezioni del mio prossimo corso sui laboratori Green, ne approfondiremo l’utilizzo implementando specifiche funzioni: lettura remota della temperatura e dell’umidità da parte di un secondo micro:bit, avviare una ventola di raffreddamento in funzione della temperatura e umidità presente in una serra e molto altro.
Cos’è l’umidità relativa
Il DHT11 misura l’umidità relativa. L’umidità relativa è la quantità di vapore acqueo nell’aria rispetto al punto di saturazione del vapore acqueo nell’aria.
Il punto di saturazione si ha quando il vapore acqueo inizia a condensare e ad accumularsi sulle superfici formando rugiada.
Il punto di saturazione cambia con la temperatura dell’aria. L’aria fredda trattiene meno vapore acqueo prima che diventi saturato e l’aria calda trattiene più vapore acqueo prima che si saturi.
La formula per calcolare l’umidità relativa è:
L’umidità relativa è espressa in percentuale, al 100% di umidità relativa si ha condensa e allo 0% di umidità relativa l’aria è completamente secca.
Per la realizzazione di questa esperienza abbiamo necessità di:
- micro:bit (V1 o V2)
- cavo micro USB
- una Edge Breakout Board da utilizzare per connettere il micro:bit alla breadboard
- breadboard
- jumper di collegamento
- sensore DHT11
Caratteristiche del sensore
- Intervallo di temperatura: da 0 a 50 ºC +/-2 ºC
- Intervallo di umidità: da 20 a 90% +/-5%
- Risoluzione:
Umidità: 1%
Temperatura: 1ºC - Tensione di alimentazione: 3 – 5.5 V DC
- Corrente assorbita: 0.5 – 2.5 mA
- Periodo di campionamento: 1 sec
Il dispositivo, come dettagliato nella mia lezione: Arduino: utilizzo del sensore di umidità e temperatura DHT11, viene venduto in due configurazioni, noi utilizzeremo la versione a tre pin, dove il sensore è montato su breakout board a 3 pin: Vcc, GND, Out (dati)
Quando desideriamo leggere temperatura ed umidità il microcontrollore, nel nostro caso micro:bit, invia un segnale di start al sensore e questo restituisce al microcontrollore una stringa di 40 bit, di cui 32 bit sono dedicato all’invio della temperatura e dell’umidità:
- 8 bit per la parte intera della temperatura e 8 bit per la parte decimale della temperatura
- 8 bit per la parte intera dell’umidità e 8 bit per la parte decimale dell’umidità
Collegamenti
Programmazione
Per poter rilevare utilizzare il DHT 11 abbiamo bisogno di installare all’interno del Makecode Editor una specifica estensione. Noterete che esistono più estensioni che possono essere utilizzate, vi consiglio di installare la iot-environment-kit che fornisce anche il supporto a molti altri sensori.
Fate clic su “Extensions”
Scrivete nel campo di ricerca DHT11, selezionate successivamente: iot-environment-kit
La lista delle istruzioni sarà la seguente:
L’istruzione per l’utilizzo del DHT11 si trova all’interno di: Octopus > more
value of dht11 [temperature(‘C)] at pin P15
- dal primo menù di selezione del primo parametro si potrà selezionare la grandezza fisica: temperatura o pressione.
- dal secondo menù di selezione del secondo parametro si potrà impostare il piedino a cui connettere l’uscita del sensore
In allegato il programma di esempio per la lettura di temperatura e pressione:
All’interno del blocco on start è stato inserita una sequenza di avvio costituita da una faccina che fa l’occhiolino, ovviamente questa parte potete modificarla, serve a me per avere percezione che il sistema è in funzione.
Al termine della sequenza di avvio verranno visualizzati in modo continuo sul display temperatura ed umidità.
Durante il corso vedremo come visualizzare su richiesta dell’utente i valori, come leggere remotamente i valori rilevati dal sensore da parte di uno o più micro:bit e molto altro.
Buon Making Green a tutti 🙂