In questa guida vedremo come utilizzare il sensore di temperatura e umidità DHT22 con Arduino UNO. Utilizzare questo sensore ci permetterà di realizzare progetti che interagiscono con temperatura o umidità, come ad esempio un termostato. Il sensore digitale DHT22 rileva temperature che vanno da -40°C a 80°C con una precisione di 0.5°C. La lettura di temperatura ed umidità viene campionata ogni 2 secondi. Può lavorare sia ad una tensione di 3V che di 5V e il picco massimo di assorbimento è di 2.5mA (durante la lettura dei dati).
Materiale hardware
Materiale Software
- Arduino IDE
- Libreria DHT sensor (by Adafruit) versione 1.2.3
Procedura
Per prima cosa effettuiamo i collegamenti.
- Colleghiamo il pin GND con la massa dell’Arduino UNO (GND);
- il pin VCC con il pin 5V dell’Arduino;
- infine il pin DAT ad uno dei pin digitali dell’Arduino, in questo caso utilizzeremo il pin 8.
Ora passiamo al software. Iniziamo con l’aprire l’arduino IDE e installare la libreria DHT sensor versione 1.2.3 realizzata da Adafruit. Per farlo ci basterà andare su “sketch -> #include liberia -> gestione librerie“. Cercare “DHT sensor” cliccare sulla libreria “DHT sensor library“, selezionare la versione 1.2.3 e cliccare installa.
Installata la libreria, ci basta incollare il seguente codice:
#include <DHT.h>
//Costanti
#define DHTPIN 8 //Pin a cui è connesso il sensore
#define DHTTYPE DHT22 //Tipo di sensore che stiamo utilizzando (DHT22)
DHT dht(DHTPIN, DHTTYPE); //Inizializza oggetto chiamato "dht", parametri: pin a cui è connesso il sensore, tipo di dht 11/22
//Variabili
int chk;
float hum; //Variabile in cui verrà inserita la % di umidità
float temp; //Variabile in cui verrà inserita la temperatura
void setup()
{
Serial.begin(9600);
dht.begin();
}
void loop()
{
delay(2000); //Ritardo di 2 secondi. (E' possibile leggere dal sensore massimo una volta ogni 2 secondi)
//Leggi i dati e salvali nelle variabili hum e temp
hum = dht.readHumidity();
temp= dht.readTemperature();
//Stampa umidità e temperatura tramite monitor seriale
Serial.print("Umidità: ");
Serial.print(hum);
Serial.print(" %, Temp: ");
Serial.print(temp);
Serial.println(" Celsius");
}
Conclusione
Carichiamo il codice sull’Arduino e apriamo il monitor seriale, dove la temperatura e l’umidità saranno visualizzati ogni 2 secondi.




