I en tidligere artikkel introduserte vi deg for DHT11 , en annen av temperatur- og fuktighetssensorene som er tilgjengelige for deg. Men i denne nye artikkelen skal vi fortelle deg alt du trenger å vite om DHT22 . Generelt sett er den eneste forskjellen mellom DHT11 og DHT22 ved første øyekast at førstnevnte kommer i et blått kabinett og sistnevnte i et hvitt. Faktisk er de begge en del av samme sensorfamilie.
DHT11 er lillebroren , noe som betyr at den har noen begrensninger eller færre funksjoner sammenlignet med DHT22, og derfor en høyere pris. DHT11 kan brukes til prosjekter der du ikke trenger høypresisjonsmålinger, mens hvis du ønsker noe mer nøyaktig, bør du velge DHT22. DHT22 er heller ikke akkurat høypresisjonsdyktig, men den tilbyr mer enn akseptabel ytelse for de fleste gjør-det-selv-prosjekter.
Hva er DHT22?
DHT22 er en temperatur- og fuktighetssensor med ytelse som kan konkurrere med høypresisjonsmodeller . Den er lett tilgjengelig i spesialforretninger eller store forhandlere . Dette lar deg ha alt integrert i én enhet, og eliminerer behovet for separate temperatur- og fuktighetssensorer.
Du finner den løs eller i moduler spesielt utviklet for Arduino ; det vil si DHT22 montert på et PCB-kort klar til bruk, uten behov for å legge til pull-up-motstander osv. Frem til dette punktet er den ganske lik DHT11. Og du får også høy pålitelighet og stabilitet i målinger takket være det kalibrerte digitale signalet den bruker.
Pinout, funksjoner og datablad
På bildet ovenfor kan du se en pinout-sammenligning av DHT22 og DHT11 , og som du kan se, er de identiske når det gjelder pinner. Derfor vil monteringen være nøyaktig den samme, og det beste er at du kan erstatte DHT11 med en DHT22, og omvendt, i prosjektet ditt når som helst uten å gjøre for mange endringer.
Husk at det er tre pinner du må bruke: GND, Vcc og Data . Pinne nr. 3 er ubrukt og er deaktivert på modulene, noe som betyr at du bare vil se tre pinner. Hvis du vil ha mer informasjon om produktet du kjøpte, kan du slå opp databladene for den spesifikke modellen og produsenten for å få all informasjonen. Selv om de fleste verdiene kan virke like, kan det være noen små variasjoner. De viktigste tekniske egenskapene er:
- Strømforsyning fra 3,3 v til 6 v
- 2,5 mA strømforbruk
- Digital utgangssignal
- Temperaturområde fra -40 ° C til 125 ° C
- Nøyaktighet for å måle temperaturen ved 25 ° C ved 0.5 ° C variasjon
- Oppløsningen for å måle temperaturen er 8-bit, 0,1ºC
- Fuktighet kan måle fra 0% RF til 100% RF
- Nøyaktig fuktighet 2-5% RF for temperaturer mellom 0-50ºC
- Oppløsningen er 0,1% RF, du kan ikke hente varianter under det
- Samplingsfrekvens på 2 prøver per sekund: 2Hz
- Sparkfun-datablad
Hvis du har lest manualen vår for DHT11, vet du at den overfører digitalt via data-pinnen, noe som er en annen fordel med disse sensorene. Det er ikke nødvendig å skrive kode i Arduino IDE for å konvertere analoge signaler til menneskelig lesbare verdier; det digitale signalet kan behandles direkte for å konvertere det til grader eller relativ fuktighetsprosent.
Det er delvis derfor den er så presis, siden 40-bitsrammen den overfører gir høyere nøyaktighet. Den inkluderer til og med paritetsbiter for å oppdage signalfeil. Det har du ikke med et analogt signal, bortsett fra at analoge signaler er veldig følsomme for spenningsvariasjoner ...
Integrasjon med Arduino
Akkurat som med DHT11 er det ganske enkelt å installere DHT22 med Arduino . Husk at hvis du bruker den alene, uten at den er montert på en modul, og sensoren er langt unna (eller hvis du bruker en lavere spenning for å drive den), må du bruke en pull-up-motstand for å brokoble Vcc-pinnen og data-pinnen. Men hvis du bruker modulen, kan du hoppe over dette trinnet og koble den direkte som vist på bildet ovenfor. Husk også at den ubrukte NC-pinnen ikke vil være tilstede på modulen, noe som gjør det enda enklere å unngå forvirring.
Du trenger bare å koble GND og Vcc til de riktige tilkoblingene på Arduino-kortet ditt , det vil si til de som er merket GND og 5V i dette tilfellet. For Data-pinnen kan du koble den til hvilken som helst av Arduinos digitale innganger; i vårt tilfelle har vi brukt pinne 7. Hvis du bruker en annen pinne, husk å justere koden slik at den fungerer med dine spesifikke komponenttilkoblinger (det virker åpenbart, men det er en veldig vanlig feil når du kopierer og limer inn kode i Arduino IDE).
Kode i Arduino IDE
Nå som du har koblet den til, la oss se på et enkelt kodeeksempel for Arduino IDE . Husk at vi har en nybegynnerguide for Arduino i PDF-format som du kan laste ned gratis herfra , noe som kan være nyttig. Hvis du har lest artikkelen vår om DHT11, husker du også at det fantes et bibliotek for bruk av DHTxx-sensorene . Derfor kan det samme biblioteket som brukes for DHT11 brukes for DHT22.
Når du har installert biblioteket og alt er klart, er det på tide å legge inn koden for å programmere Arduino-mikrokontrolleren slik at prosjektet ditt fungerer. Et grunnleggende eksempel ville være:
#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 ");
}
Jeg håper guidene våre på DHTxx har vært nyttige , selv om prosjektene som vanligvis gjøres er noe mer komplekse, men disse kodene for å se hvordan sensoren fungerer er ganske veiledende for senere modifisering av koden og å legge til det du ønsker ...