Il sensore DHT11 è in grado di rilevare la temperatura e umidità relativa, ideale per costruire una piccola stazione meteo entry-level. Al suo interno monta un chip digitale, in grado di garantire misurazioni più precise ed accurate rispetto a un chip analogico.
In che modo rileva l’umidità relativa e la temperatura? Il DHT11 è in grado di rilevare il valore percentuale dell’umidità relativa misurando la resistenza elettrica tra i due elettrodi. La conduttività tra gli elettrodi aumenta all’aumentare dell’umidità relativa. Mentre per quanto concerne la temperatura il DHT11 utilizza un sensore NTC.
Le specifiche tecniche sono le seguenti:
- Modello: DHT11
- Alimentazione: 3-5.5V DC
- Segnale di uscita: digitale del segnale tramite single-bus
- Dimensioni: 12 * 15,5 * 5,5 millimetri
- Tempo di rilevazione: 2 secondi
- Prezzo: 5.33 euro
- Range di temperatura: -20 – 60℃
- Range di Umidità: 5-95%RH
- Accuratezza della Umidità/temperatura: ±5% / ±2℃
Il collegamento del DHT11 al proprio Arduino è piuttosto semplice (nota bene che le connessioni possono differire da sensore a sensore, in quanto vi sono varie versioni di DHT11). Per quanto concerne la versione DHT11 sprovvista di breadboard a 4 pin, lo schema da seguire è il seguente:
Da come ben si può evincere dallo schema il DHT11 utilizza un solo pin per l’invio e la ricezione dei dati all’Arduino ed è necessario utilizzare resistore di pull-up da 10 K Ohm tra la linea del segnale e la linea 5 V,
Per visualizzare i dati in output sul display vi è la necessità di realizzare un programma, ma compilare l’eseguibile per il rilevamento di temperatura e umidità è abbastanza complesso, e per tale motivo si utilizzano delle librerie ideate proprio per questo scopo come: dht-sensor-library-master, libreria per la gestione del modulo LCD, Libreria SoftwareSerial
Ecco qui uno esempio dello sketch da utilizzare:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
// 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.print 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 scrivo 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 } |
In conclusione DHT11 è uno dei sensori più popolari disponibili sul mercato, in quanto vi è il connubio perfetto tra prestazioni e stabilità, con un alto rapporto qualità-prezzo. Consigliato per tutti i tipi di utenti intenzionati a creare piccole stazioni meteo entry-level.
Link utili: