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.