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

Arduino Uno
Cavi Dupont
DHT22

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.