dht11I sensori di temperatura ed umidità  DHT11 sono dei sensori muniti di un piccolo involucro disponibili montati su basetta (3 pin) oppure nudi (4 pin)

 

Per utilizzare con arduino questi sensori occorre però di caricare nel programma, non solo all'interno dello sketch, la libreria.

Appena finito di scaricare il file non facciamo altro che aprire il file compresso ed a scaricarne il contenuto in "C:\Program Files (x86)\Arduino\libraries" (ovviamente l'indirizza varia a seconda di come avete installato arduino.

 

Per connettere il sensore ad Arduino bisogna eseguire questo cablaggio

  • occorre utilizzare una resistenza da 10Kohm

 dht22

 

 Esempio del codice

 

// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain

#include "DHT.h"

#define DHTPIN 2 // pin di arduino a cui connetto il sensore

// decommentare a seconda del sensore utilizzato!
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)

// Connettere il pin 1 (a sinistra) del sensore a +5V
// Connettere il pin 2 è il pin dei dati e va connesso con la resistenza ed al pin di arduino
// Connettere il pin 4 (a destra) del sensore a massa GROUND
// Connettere una resistenza da 10K tra il pin 2 (data) ed il pin 1 (power) del sensore

DHT dht(DHTPIN, DHTTYPE);

void setup() {
Serial.begin(9600); // inizializzo la comunicazione seriale
Serial.println("Test Sensore DHTxx!");
Serial.println(""); // vado a capo grazie all'aggiunta di ln dopo Serial.prin

dht.begin(); // inizializzo la comunicazione del sensore
}

void loop() {
// La lettura di temperatura e umidità richiede circa 250 millisecondi!
// Con sensori vecchi puo capitare di richiedere tempi fino a 2 secondi
float h = dht.readHumidity(); // attribuisco alla variabile h l'umidita'
float t = dht.readTemperature(); // attribuisco alla variabile t la temperatura

// controllo l'avvenuta comunicazione, ed avvio la scrittuta dei dati sulla seriale, ed in caso negativo scrito che è fallita
if (isnan(t) || isnan(h)) {
Serial.println("Errore lettura sensore DHT FALLITA");
} else {
Serial.print("Umidita': "); // Scrivo Umidita':
Serial.print(h); // scrivo il valore di umidità
Serial.print(" %\t"); // scrivo la % e faccio in modo, tramite \t, che il prossimo valore sia scritto più staccato a dx
Serial.print("Temperatura: "); // scrivo Temperatura:
Serial.print(t); // scivo il valore di temperatura
Serial.println(" *C"); // scrivo l'unita' di misura
}

Serial.println(""); // vado a capo grazie all'aggiunta di ln dopo Serial.prin

delay(2000); // ricomincio il ciclo dopo 2 secondi
}

Il funzionamento del sensore posso vederlo anche tramite il monitor seriale!!