DHT11: totul despre senzorul pentru măsurarea temperaturii și umidității

DHT11

Măsurarea temperaturii și a umidității este foarte frecventă în multe proiecte de producători de electronice. În bricolaj este obișnuit să trebuiască să măsurați acești parametri pentru a controla anumite sisteme. De exemplu, pentru a putea crea un sistem frigorific, de îngrijire a plantelor sau de aer condiționat care pornește dacă temperatura sau umiditatea ating o anumită valoare. Dar pentru ca acest lucru să fie posibil, aveți nevoie de un senzor precum DHT11.

În piață există mulți senzori intervale de temperatură foarte diferite, cu intervale de temperatură suportate sau precizii diferite. Un exemplu în acest sens este LM35, unul dintre cele mai populare și utilizate în electronică. Există, de asemenea, alți senzori de umiditate care acționează prin variație de conductivitate, cum ar fi AD22103KTZ de la Analog Devices. Dar dacă doriți să măsurați ambii parametri, poate că dispozitivul despre care discutăm astăzi este de mult mai interesant ...

Ce este DHT11?

El DHT11 este un senzor simplu care măsoară temperatura și umiditatea, toate intr-unul. A) Da nu va trebui să cumperi doi senzori separat. Prețul său este de aproximativ 2 €, deci este destul de ieftin, deși îl puteți găsi și montat pe un modul (montat pe un PCB pentru ușurință în utilizare) așa cum este obișnuit în acest tip de componente electronice pentru Arduino. În cazul plăcii, acesta include un rezistor de tracțiune de 5 kg ohm și un LED care ne avertizează cu privire la funcționare.

DHT11 are fiabilitate și stabilitate ridicate datorită semnalului digital calibrat. De asemenea, dacă vă uitați la foaia sa tehnică, veți vedea că are caracteristici interesante, așa cum veți vedea în secțiunile viitoare.

Produse similare

DHT22

Există un produs similar cu DHT11 care vă poate interesa. Este DHT22. Este, de asemenea, un senzor de temperatură și umiditate integrat, dar în acest caz prețul său este puțin mai mare, aproximativ 4 EUR. Precizia de măsurare a temperaturii variază cu 5%, la fel ca DHT11, dar spre deosebire de aceasta, măsoară dincolo de intervalul de umiditate cuprins între 20 și 80%. Prin urmare, este posibil să fiți interesat de DHT22 pentru proiectele în care trebuie să măsurați umiditatea de la 0 la 100%.

La frecvența colectării datelor este, de asemenea, de două ori mai mare decât DHT11, în DHT22 se iau 2 probe pe secundă în loc de 1 probă pe secundă de DHT11. În ceea ce privește temperatura, poate măsura de la -40 ° C la + 125 ° C cu mai multă precizie, deoarece poate măsura fracțiuni de grade, în special poate aprecia variații de plus / minus 0,5 ° C.

Pinout, caracteristici și foaie de date

Pinout DHT11

Puteți găsi destul de puține informații tehnice despre DHT11 în fișele tehnice. Fiecare producător al acestui dispozitiv poate oferi unele valori care pot varia, așa că vă recomand întotdeauna să citiți PDF-ul producătorului specific al dispozitivului pe care l-ați achiziționat. Deși majoritatea valorilor ar putea părea la fel pentru dvs., ar putea exista o ușoară variație de la una la alta. Cele mai importante caracteristici tehnice ale acestuia sunt:

  • Alimentare de la 3,5v la 5v
  • 2,5mA consum curent
  • Semnal de ieșire digitală
  • Intervalul de temperatură de la 0ºC la 50ºC
  • Precizia de măsurare a temperaturii la 25 ° C cu o variație de aproximativ 2 ° C
  • Rezoluția pentru măsurarea temperaturii este de 8 biți, 1ºC
  • Umiditatea poate măsura de la 20% RH la 90% RH
  • Umiditate precisă 5% RH pentru temperaturi cuprinse între 0-50ºC
  • Rezoluția este de 1% RH, nu poate ridica variații sub aceasta
  • Foaie de date Mouser

În ceea ce privește datele, difuzat în format digital. Prin urmare, nu este necesar să treceți de la analog la digital ca la alți senzori. Asta a complicat codul pentru a scrie în IDE-ul Arduino, dar în acest caz nu este necesar și este mult mai ușor. Deși senzorul în sine este analog, dar include un sistem pentru a efectua conversia și poate fi conectat direct la o intrare digitală a Arduino.

Semnalul analogic, care este o variație a tensiunii, de la senzor este convertit în format digital pentru a fi trimis la microcontrolerul Arduino. Se transmite în un cadru de 40 de biți care corespund informațiilor privind umiditatea și temperatura captate de DHT11. Primele două grupuri de 8 biți sunt pentru umiditate, adică cei mai semnificativi 16 biți ai acestui cadru. Apoi, celelalte 2 grupuri rămase de 8 biți pentru temperatură. Adică are doi octeți pentru umiditate și doi octeți pentru temperatură. De exemplu:

0011 0101 0000 0010 0001 1000 0000 0000 0011 1001

În acest caz, 0011 0101 0000 0010 este valoarea umidității, iar 0001 1000 0000 0000 este temperatura. O primă parte este pentru partea întreagă și a doua parte este pentru zecimale. În ceea ce privește 0011 1001, adică ultimii 8 biți sunt paritate pentru a evita greșelile. În acest fel puteți verifica dacă totul este corect în timpul transmisiilor. Corespunde la suma biților anteriori, prin urmare, dacă suma este egală cu paritatea, va fi corectă. În exemplul pe care l-am pus, nu ar fi, pentru că, după cum puteți vedea, nu corespunde ... Asta ar indica un eșec.

Odată ce acest lucru este cunoscut, următorul nivel tehnic al DHT11 care ar trebui menționat este pinii. contacte sau identificare a acestui dispozitiv este simplu, deoarece are doar 4 dintre ele. Unul dintre pini este pentru alimentare sau Vcc, celălalt pentru I / O pentru a transmite date, un pin NC care nu se conectează și GND pentru conexiunea la sol.

Integrare cu Arduino

Conectarea DHT11 cu Arduino

Odată ce știți pinout-ul DHT11 și, de asemenea placa Arduino, conexiunea este foarte simplă. Amintiți-vă că, dacă ați ales un modul DHT11 integrat într-un PCB, pinii vor fi trei, deoarece NC este eliminat pentru a ușura lucrurile. Tot ce trebuie să faceți este să conectați pinul de masă la una dintre conexiunile GND ale Arduino așa cum apare în diagrama din imaginea anterioară.

Pe de altă parte, pinul de alimentare ar trebui să fie conectat la conexiunea 5v de la Arduino, astfel senzorul va fi complet alimentat cu GND și Vcc, dar acum datele lipsesc. Pentru a transmite datele de la senzorul DHT11 către placa Arduino, puteți utiliza oricare dintre intrările digitale, cum ar fi 7 care apare în imagine ... Acum aveți totul gata să-l utilizați după ce ați creat codul necesar în IDE Arduino ...

Dacă senzorul este departe de proiect și veți folosi un cablu mai lung de 20 de metri, atunci utilizați un rezistor de tracțiune de 5 k, pentru cabluri mai mari ar trebui să fie proporțional mai mare. Rețineți că, dacă utilizați o putere de 3,5v în loc de 5v, atunci cablul nu trebuie să depășească 20cm din cauza căderilor de tensiune.

Amintiți-vă că ceea ce recomandă ei este faceți măsurători la fiecare 5 secunde, deși frecvența de eșantionare la care DHT11 poate funcționa este mai mare, dar dacă se face mai frecvent, este posibil să nu fie la fel de precisă.

Cod în IDE Arduino

Mergând direct la cod, spuneți asta în Arduino IDE puteți utiliza o serie de biblioteci existente cu funcții care vă vor ușura viața cu DHT11. De exemplu, unul dintre ei este cel care oferă Adafruit. Amintiți-vă că avem un ghid pentru începători care începe cu Arduino în PDF pe care îl puteți descărcați gratuit de aici și te poate ajuta.

După ce ați instalat biblioteca corespunzătoare, puteți comenta la Introduceti codul pentru a controla senzorul de temperatură și umiditate DHT11 pentru proiectul dvs. cu Arduino. De exemplu:

#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 ");
}


Fii primul care comenteaza

Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.