Ja en un article previ et presentem el DHT11, Un altre dels sensors de temperatura i humitat que tens al teu abast. Però en aquest nou article t'explicarem tot el que necessites saber sobre el DHT22. En general, a simple vista l'única diferència entre el DHT11 i el DHT22 és que el primer ve en una carcassa blau i el segon és blanc. De fet, tots dos són germans d'una mateixa família de sensors.
El DHT11 és el germà petit, És a dir, té algunes mancances o prestacions de menys respecte a l'DHT22, i per tant un preu superior. El DHT11 es pot usar per a projectes on no requereixis una alta precisió en els mesuraments, mentre que si vols alguna cosa més precís hauries triar el DHT22. Realment el 22 tampoc és d'alta precisió, però sí que té unes prestacions més que acceptables per a la majoria de projectes DIY de makers.
Què és el DHT22?

El DHT22 és un sensor de temperatura i humitat amb unes prestacions que l'apropen molt als d'alta precisió. El pots trobar fàcilment en botigues especialitzades o grans superfícies, on No s'ha trobat cap producte.. Això et permet no haver de dependre d'un sensor de temperatura i un altre d'humitat per separat, sinó tenir-ho tot integrat en un mateix dispositiu.
El pots trobar solt o en mòduls especialment dissenyats per a Arduino, És a dir, el DHT22 muntat sobre una placa PCB ja a punt per utilitzar, sense haver de afegir resistències pull-up, etc. Fins aquí tot s'assembla bastant el DHT11. I també tindràs una alta fiabilitat i estabilitat en els mesuraments a causa de la senyal digital calibrada que fa servir.
Pinout, característiques i datasheet

A la imatge anterior pots veure una comparació de l' pinout de l'DHT22 i DHT11, I com pots apreciar són idèntics pel que fa a patilles. Per això, el seu muntatge seria exactament igual, i potser, podries substituir en qualsevol moment el DHT11 per un DHT22, i viceversa, en el teu projecte sense fer massa canvis.
Recorda que tenen 3 pins que has de fer servir: GND, Vcc i Dades. El pin # 3 no fa servir i en els mòduls ve anul·lat, és a dir, només veuràs tres pins. Si vols veure més detalls sobre el producte que has adquirit, pots buscar els datasheets de el model i fabricant concret per obtenir tota la informació completa. Encara que la major part de valors pugui semblar igual, podria haver alguna petita variació d'un a un altre. Les seves característiques tècniques més importants són:
- Alimentació de 3,3V a 6v
- Consum de corrent de 2,5mA
- Senyal de sortida digital
- Rang de temperatura de -40ºC a 125ºC
- Precisió per mesurar temperatura a 25ºC de 0.5ºC de variació
- La resolució per mesurar temperatura és de 8 bits, 0,1ºC
- La humitat pot mesurar des 0% RH fins als 100% RH
- Amb precisió per la humitat de l'2-5% RH per a temperatures que es trobin entre 0-50ºC
- La resolució és de 0,1% RH, no pot captar variacions per sota d'aquesta
- Freqüència de mostreig de 2 mostres per segon: 2Hz
- Datasheet d'Sparkfun
Si has llegit el nostre manual sobre el DHT11 sabràs que transmet en digital per la seva pin Data, per tant, un altre avantatge per a aquests sensors. No caldrà generar codi en Arduino IDE per passar d'analògic a valors comprensibles per a l'humà, sinó que es pot tractar directament el senyal digital per passar-la a graus o percentatge d'humitat relativa.
En part, per això també és tan precís, ja que amb la trama de 40 bits que transmet, la precisió és més elevada. Fins i tot inclou uns bits de paritat per detectar fallades en el senyal. Això amb un senyal analògic no el tens, a part que l'analògica és molt sensible a les variacions de voltatge ...
Integració amb Arduino

A l'igual que amb el DHT11, la instal·lació de l'DHT22 amb Arduino és bastant fàcil. Recorda que si ho fas servir sol, sense que vingui muntat en un mòdul i el sensor està allunyat (o si fas servir una tensió inferior per alimentar), hauràs de fer servir una resistència pull-up que faci un pont entre el pin Vcc i el pin Data. Però si fas servir el mòdul, te la pots estalviar i connectar directament com apareix a la imatge superior ... A més, recorda que en el mòdul el pin NC que no s'usa no estarà present, de manera que et serà encara més fàcil per no confondre't.
Només has de connectar GND i Vcc a les connexions adequades de la teva placa Arduino, És a dir, a les marcades com GND i 5v en aquest cas. I per el pin Data, el pots connectar a qualsevol de les entrades digitals d'Arduino, en el nostre cas ho hem fet a la 7. Si fas servir una altra recorda rectificar el codi perquè funcioni amb la teva forma de connectar els components (sembla obvi però és un error molt comú a l'copiar i enganxar els codis en Arduino IDE).
Codi en Arduino IDE
Ara que ja ho tens connectat, veurem un exemple senzill de codi per Arduino IDE. . Recorda que tenim una guia per a principiants que comencin amb Arduino en PDF que pots descarregar gratis des d'aquí i et pot ajudar. A més, si has llegit el nostre article sobre DHT11, recorda que hi havia una biblioteca per usar els sensors DHTxx, Per tant, la mateixa que es feia servir per al DHT11 es pot usar per al DHT22.
Un cop hagis instal·lat la biblioteca i estigui tot preparat, ara és quan has d'introduir el codi per programar el microcontrolador d'Arduino perquè funcioni el teu projecte. Un exemple bàsic seria:
#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 ");
}
Espero que les nostres guies sobre els DHTxx t'hagin servit d'orientació, Encara que en general els projectes que se solen fer són una mica més complexos, però aquests codis per veure com funciona el sensor són bastant orientatius per després modificar el codi i afegir el que vulguis ...