DHT22 - il sensore di temperatura e umidità di precisione

Sensore DHT22

In un precedente articolo vi abbiamo presentato il DHT11 , un altro dei sensori di temperatura e umidità a vostra disposizione. In questo nuovo articolo, invece, vi spiegheremo tutto ciò che c'è da sapere sul DHT22 . A prima vista, l'unica differenza tra il DHT11 e il DHT22 è che il primo ha un involucro blu, mentre il secondo ha uno bianco. In realtà, entrambi appartengono alla stessa famiglia di sensori.

Il DHT11 è il fratello minore , il che significa che presenta alcune limitazioni o meno funzionalità rispetto al DHT22, e di conseguenza un prezzo più elevato. Il DHT11 può essere utilizzato per progetti in cui non sono richieste misurazioni di alta precisione, mentre se si desidera qualcosa di più accurato, è consigliabile scegliere il DHT22. Anche il DHT22 non è esattamente un sensore di alta precisione, ma offre prestazioni più che accettabili per la maggior parte dei progetti fai-da-te.

Cos'è DHT22?

Modulo DHT22

Il DHT22 è un sensore di temperatura e umidità con prestazioni paragonabili a quelle dei modelli ad alta precisione . È facilmente reperibile nei negozi specializzati o presso i grandi rivenditori . Questo permette di avere tutto integrato in un unico dispositivo, eliminando la necessità di sensori di temperatura e umidità separati.

È possibile trovarlo sfuso o in moduli specificamente progettati per Arduino ; ovvero, il DHT22 montato su una scheda PCB pronto all'uso, senza bisogno di aggiungere resistori di pull-up, ecc. Fin qui, è abbastanza simile al DHT11. E otterrete anche un'elevata affidabilità e stabilità nelle misurazioni grazie al segnale digitale calibrato che utilizza.

Pinout, caratteristiche e datasheet

Pinout DHT11

Nell'immagine qui sopra, potete vedere un confronto della piedinatura del DHT22 e del DHT11 e, come potete notare, sono identici in termini di pin. Pertanto, il loro assemblaggio sarebbe esattamente lo stesso e, soprattutto, potreste sostituire il DHT11 con un DHT22, e viceversa, nel vostro progetto in qualsiasi momento senza apportare troppe modifiche.

Ricorda che ci sono 3 pin che devi utilizzare: GND, Vcc e Data . Il pin n. 3 non viene utilizzato ed è disabilitato sui moduli, il che significa che vedrai solo tre pin. Se desideri maggiori dettagli sul prodotto che hai acquistato, puoi consultare le schede tecniche del modello e del produttore specifici per ottenere tutte le informazioni. Sebbene la maggior parte dei valori possa sembrare uguale, potrebbero esserci delle lievi variazioni. Le sue caratteristiche tecniche più importanti sono:

  • Alimentatore da 3,3 V a 6 V.
  • Consumo di corrente 2,5 mA
  • Segnale di uscita digitale
  • Intervallo di temperatura da -40ºC a 125ºC
  • Precisione per misurare la temperatura a 25ºC con una variazione di 0.5ºC
  • La risoluzione per misurare la temperatura è di 8 bit, 0,1ºC
  • L'umidità può misurare dallo 0% di umidità relativa al 100% di umidità relativa
  • Accuratamente umidità 2-5% RH per temperature comprese tra 0-50ºC
  • La risoluzione è dello 0,1% di umidità relativa, non può rilevare variazioni al di sotto di quella
  • Frequenza di campionamento di 2 campioni al secondo: 2Hz
  • Scheda tecnica Sparkfun

Se avete letto il nostro manuale sul DHT11, saprete che trasmette in digitale tramite il suo pin Data, il che rappresenta un ulteriore vantaggio per questi sensori. Non è necessario scrivere codice nell'IDE di Arduino per convertire i segnali analogici in valori leggibili dall'uomo; il segnale digitale può essere elaborato direttamente per convertirlo in gradi o in percentuale di umidità relativa.

Questo è in parte il motivo della sua elevata precisione, poiché il frame a 40 bit che trasmette consente una maggiore accuratezza. Include persino bit di parità per rilevare gli errori di segnale. Una funzionalità assente nei segnali analogici, oltre al fatto che questi ultimi sono molto sensibili alle variazioni di tensione…

Integrazione con Arduino

DHT22 collegato alla scheda Arduino UNO

Come per il DHT11, installare il DHT22 su Arduino è piuttosto semplice . Ricorda che se lo usi da solo, senza montarlo su un modulo, e il sensore è distante (o se lo alimenti con una tensione inferiore), dovrai usare una resistenza di pull-up per collegare il pin Vcc al pin Data. Se invece utilizzi il modulo, puoi saltare questo passaggio e collegarlo direttamente come mostrato nell'immagine sopra. Ricorda inoltre che il pin NC non utilizzato non sarà presente sul modulo, il che semplifica ulteriormente l'installazione ed evita confusioni.

È sufficiente collegare GND e Vcc ai rispettivi pin sulla scheda Arduino , ovvero a quelli contrassegnati come GND e 5V in questo caso. Per il pin Data, è possibile collegarlo a uno qualsiasi degli ingressi digitali di Arduino; nel nostro caso, abbiamo utilizzato il pin 7. Se si utilizza un pin diverso, ricordarsi di adattare il codice ai collegamenti specifici del componente (sembra ovvio, ma è un errore molto comune quando si copia e incolla il codice nell'IDE di Arduino).

Codice in Arduino IDE

Ora che lo hai collegato, vediamo un semplice esempio di codice per l'IDE di Arduino . Ricorda che abbiamo una guida per principianti di Arduino in formato PDF che puoi scaricare gratuitamente da qui , e che potrebbe esserti utile. Inoltre, se hai letto il nostro articolo sul DHT11, ricorderai che esisteva una libreria per utilizzare i sensori DHTxx ; pertanto, la stessa libreria utilizzata per il DHT11 può essere utilizzata anche per il DHT22.

Una volta installata la libreria e predisposto tutto, è il momento di inserire il codice per programmare il microcontrollore Arduino e far funzionare il progetto. Un esempio di base potrebbe essere:

#include "DHT.h"
 
// Ejemplo sencillo de uso para el DHT22
 
const int DHTPin = 7;     
 
DHT dht(DHTPin, DHTTYPE);
 
void setup() {
   Serial.begin(9600);
   Serial.println("Test DHT22");
 
   dht.begin();
}
 
void loop() {
   // Tiempo de espera entre tomas de mediciones de 2 segundos.
   delay(2000);
 
   // Lee temperatura y humedad durante unos 250ms
   float h = dht.readHumidity();
   float t = dht.readTemperature();
 
   if (isnan(h) || isnan(t)) {
      Serial.println("Fallo en la lectura");
      return;
   }
 
 
   Serial.print("Humedad relativa: ");
   Serial.print(h);
   Serial.print(" %\t");
   Serial.print("Temperatura: ");
   Serial.print(t);
   Serial.print(" *C ");
}

Spero che le nostre guide su DHTxx vi siano state utili , anche se i progetti che solitamente vengono realizzati sono un po' più complessi, ma questi codici per capire come funziona il sensore sono piuttosto indicativi per successive modifiche al codice e per aggiungere qualsiasi cosa desideriate...


Aggiungi come fonte preferita in Google