Generalità
Il DHT11 è un sensore di umidità e lettura digitale con uscita compensata su tutto il range di temperatura. Nella fase di produzione il sensore viene sottoposto ad una procedura di calibrazione mediante con cui si ricava un coefficiente di calibrazione che viene memorizzato indelebilmente in una memoria OTP (One Time Programmable) intera.
Package e collegamenti
Il sensore viene proposto in un case con 4 piedini ma è molto comune anche la versione già installata su basetta che integra la resistenza di pull-up e presenta solo tre piedini:
Qualunque versione si possegga il sensore deve essere collegato all’alimentazione ed al microcontrollore per la lettura dei dati utilizzando il seguente schema:
Mediante questo collegamento, ed utilizzando una resistenza di pull-up da 5k, la distanza tra sensore e microcontrollore non deve eccedere i 20m.
Il sensore può rilevare un ampio range di umidità e temperatura:
Lettura valori misurati
Il principale vantaggio di utilizzare un sensore digitale è quello di leggere le grandezze misurate direttamente in formato numerico senza necessità di ricorrere ad un convertitore analogico-digitale.
Il sensore DHT11 dispone di un pin DATA su cui è implementato un bus 1-wire Aosong, differente dal più conosciuto 1-wire Dallas.
Su questo pin l’umidità e temperatura rilevate vengono codificate mediante una sequenza di 40 bits:
8 bits UMIDITA’ interi – 8 bits UMIDITA’ decimali – 8 bits TEMPERATURA interi – 8 bits TEMPERATURA decimali – 8 bits PARITY BITS
esempio: supponiamo di aver ricevuto la seguente sequenza binaria:
0011 0101 – 0000 0000 – 0001 1000 – 0000 0000 – 0100 1101
decodifichiamo tale sequenza:
UMIDITA’ intero | 0011 0101 | 53 |
UMIDITA’ decimale | 0000 0000 | 0 |
TEMPERATURA intero | 0001 1000 | 24 |
TEMPERATURA decimale | 0000 0000 | 0 |
PARITY BITS (somma binaria dei primi 4 byte) | 0100 1101 | corretto |
La lettura della sequenza, dopo aver accertato che il byte di parità corrisponde alla somma binaria dei primi 4 byte, ci permette di lettere i seguenti valori rilevati:
- Umidità = 53.0%RH
- Temperatura = 24.0°C
Riferimenti
DHT11_Aosong
DHT11-Technical-Data-Sheet-Translated-Version-1143054
Progetti che utilizzano il sensore su Arduino:
https://create.arduino.cc/projecthub/pibots555/how-to-connect-dht11-sensor-with-arduino-uno-f4d239