DHT11: allt om sensorn för mätning av temperatur och luftfuktighet

DHT11

Mätning av temperatur och luftfuktighet är mycket vanligt i många elektroniska tillverkarprojekt. I DIY är det vanligt att man måste mäta dessa parametrar för att styra vissa system. Till exempel för att kunna skapa ett kyl-, anläggningsvård eller luftkonditioneringssystem som startar om temperaturen eller luftfuktigheten når ett visst värde. Men för att det ska vara möjligt behöver du en sensor som DHT11.

I marknaden det finns många sensorer mycket olika temperaturintervall, med stödda temperaturintervall eller olika precisioner. Ett exempel på detta är LM35, en av de mest populära och används inom elektronik. Det finns också andra luftfuktighetssensorer som verkar genom variation av konduktivitet, såsom AD22103KTZ från Analog Devices. Men om du vill mäta båda parametrarna kanske enheten som vi diskuterar idag i den här artikeln är mycket mer intressant ...

Vad är DHT11?

El DHT11 är en enkel sensor som mäter temperatur och fuktighet, allt i ett. A) Ja du behöver inte köpa två sensorer separat. Priset är ungefär € 2, så det är ganska billigt, även om du också kan hitta det monterat på en modul (monterad på ett kretskort för enkel användning) som vanligt i denna typ av elektroniska komponenter för Arduino. När det gäller kortet innehåller det ett 5 kilo ohm uppdragsmotstånd och en lysdiod som varnar oss för operationen.

DHT11 har hög tillförlitlighet och stabilitet tack vare sin kalibrerade digitala signal. Om du tittar på databladet kommer du också att se att det har intressanta funktioner, som du kommer att se i framtida avsnitt.

Liknande produkter

DHT22

Det finns en produkt som liknar DHT11 som du kanske är intresserad av. Det är DHT22. Det är också en integrerad temperatur- och luftfuktighetssensor, men i detta fall är priset lite högre, cirka 4 €. Noggrannheten för att mäta temperaturen är 5% variation också som DHT11, men till skillnad från den mäter den utanför luftfuktighetsområdet mellan 20 och 80%. Därför kan du vara intresserad av DHT22 för projekt där du behöver mäta luftfuktighet från 0 till 100%.

La frekvens för datainsamling det är också dubbelt så stort som för DHT11, i DHT22 tas 2 prover per sekund istället för 1 prov per sekund av DHT11. När det gäller temperaturen kan den mäta från -40 ° C till + 125 ° C med mer precision, eftersom den kan mäta fraktioner av grader, speciellt kan den uppskatta variationer på plus / minus 0,5 ° C.

Pinout, funktioner och datablad

DHT11 stift ut

Du kan hitta en hel del teknisk information om DHT11 i dina datablad. Varje tillverkare av den här enheten kan tillhandahålla vissa värden som kan variera, så jag rekommenderar alltid att du läser PDF-filen för den specifika tillverkaren av enheten du har köpt. Även om de flesta värden kan se likadana ut för dig, kan det finnas en viss variation från det ena till det andra. Dess viktigaste tekniska egenskaper är:

  • Strömförsörjning från 3,5v till 5v
  • 2,5 mA strömförbrukning
  • Digital utsignal
  • Temperaturområde från 0 ° C till 50 ° C
  • Noggrannhet för att mäta temperaturen vid 25 ° C av cirka 2 ° C variation
  • Upplösningen för att mäta temperaturen är 8-bitars, 1ºC
  • Luftfuktigheten kan mäta från 20% RH till 90% RH
  • Noggrant för luftfuktighet på 5% RH för temperaturer mellan 0-50ºC
  • Upplösningen är 1% RH, du kan inte plocka upp variationer under det
  • Mouser-datablad

När det gäller uppgifterna sänds i digital. Därför är det inte nödvändigt att gå från analog till digital som i andra sensorer. Det komplicerade koden att skriva i Arduino IDE, men i det här fallet behövs det inte och det är mycket lättare. Även om sensorn själv är analog, men den innehåller ett system för att utföra omvandlingen och kan anslutas direkt till en digital ingång på Arduino.

Den analoga signalen, som är en variation av spänningen, från sensorn omvandlas till digitalt format för att skickas till Arduino mikrokontroller. Det överförs i en 40-bitars ram som motsvarar informationen om fukt och temperatur som fångas av DHT11. De första två 8-bitarsgrupperna är för fuktighet, det vill säga de viktigaste 16 bitarna i denna ram. Sedan de andra 2 återstående 8-bitars grupperna för temperatur. Det vill säga den har två byte för fuktighet och två byte för temperatur. Till exempel:

0011 0101 0000 0010 0001 1000 0000 0000 0011 1001

I detta fall är 0011 0101 0000 0010 luftfuktighetsvärdet och 0001 1000 0000 0000 är temperaturen. En första del är för heltalet och den andra delen är för decimaler. När det gäller 0011 1001, det vill säga senaste 8-bitarna är paritet för att undvika misstag. På så sätt kan du kontrollera att allt är korrekt under överföringar. Det motsvarar summan av de tidigare bitarna, så om summan är lika med paritet kommer den att vara korrekt. I det exempel som jag har gett skulle det inte vara, för som ni ser motsvarar det inte ... Det skulle indikera ett misslyckande.

När detta väl är känt, är nästa sak på teknisk nivå av DHT11 som bör noteras stiften. De kontakter eller pinout av denna enhet är enkel, eftersom den bara har fyra av dem. En av stiften är för ström eller Vcc, den andra för I / O för överföring av data, en NC-stift som inte ansluts och GND för jordanslutningen.

Integration med Arduino

Ansluter DHT11 med Arduino

När du väl känner till DHT11 och också Arduino-kortet är anslutningen väldigt enkel. Kom ihåg att om du har valt en DHT11-modul integrerad i ett kretskort kommer stiften att vara tre, eftersom NC är borttaget för att göra det enklare. Allt du behöver göra är att ansluta jordstiftet till en av Arduinos GND-anslutningar som den visas i diagrammet i föregående bild.

Å andra sidan ska nätstiftet anslutas till 5v-anslutningen från Arduino, sålunda kommer sensorn att drivas helt med GND och Vcc, men nu saknas data. För att överföra data från DHT11-sensorn till Arduino-kortet kan du använda vilken som helst av de digitala ingångarna, till exempel de 7 som visas i bilden ... Nu har du allt redo att använda det när du har skapat den nödvändiga Arduino IDE kod ...

Om sensorn är långt borta i ditt projekt och du ska använda en kabel som är längre än 20 meter, använd sedan ett 5 k uppdragningsmotstånd, för större kablar ska det vara proportionellt större. Observera att om du använder 3,5V ström istället för 5V, bör kabeln inte vara längre än 20 cm på grund av spänningsfall.

Kom ihåg att det de rekommenderar är gör mätningar var 5: e sekund, även om samplingsfrekvensen vid vilken DHT11 kan fungera är högre, men om det görs oftare kanske det inte är lika exakt.

Kod i Arduino IDE

Gå direkt till koden, säg det i Arduino IDE Du kan använda ett antal befintliga bibliotek med funktioner som gör ditt liv enklare med DHT11. Till exempel är en av dem den som tillhandahåller Adafruit. Kom ihåg att vi har en nybörjarguide som börjar med Arduino i PDF som du kan ladda ner gratis härifrån och det kan hjälpa dig.

När du har installerat motsvarande bibliotek kan du kommentera till Skriv in koden för att kontrollera DHT11 temperatur- och luftfuktighetssensorn för ditt projekt med Arduino. Till exempel:

#include "DHT.h"

const int DHTPin = 7;     
 
DHT dht(DHTPin, DHTTYPE);
 
void setup() {
   Serial.begin(9600);
   Serial.println("Midiendo...");
 
   dht.begin();
}
 
void loop() {
   delay(2000);
 
   float h = dht.readHumidity();
   float t = dht.readTemperature();
 
   if (isnan(h) || isnan(t)) {
      Serial.println("Fallo en la lectura del sensor DHT11");
      return;
   }
 
 
   Serial.print("Humedad relativa: ");
   Serial.print(h);
   Serial.print(" %\t");
   Serial.print("Temperatura: ");
   Serial.print(t);
   Serial.print(" ºC ");
}


Bli först att kommentera

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.