Sunteți pe pagina 1din 5

Senzor de Temperatura si Umiditate Arduino

DHT11

Introducere
DHT11 este un senzor digital de temperatură și
umiditate, care are incorporat un senzor de umiditate
capacitiv și un termistor, pentru a măsura aerul din jur
și dă un semnal digital pe pinul de date (nu necesită pini
de intrare analogici LCD).
Senzorul DHT11 oferă o calibrare extrem de
precisă a camerei de calibrare a umidității. Coeficienții
de calibrare sunt stocați în memoria programului OTP,
senzorii interni detectează semnalele în proces.
Sistemul de interfață serială cu un singur fir este integrat
pentru a fi rapid și ușor. Are dimensiuni reduse, cu o
putere redusă ce pot transmite semnalul de până la 20
de metri.
DHT11 măsoară umiditatea relativă analizând vaporii de apă prin măsurarea
rezistenței electrice dintre doi electrozi. Componenta de detectare a umidității este un
substrat de menținere a umidității cu electrozii aplicați pe suprafață. Când vaporii de apă
sunt absorbiți de substrat, ionii sunt eliberați de substrat, ceea ce mărește conductivitatea
dintre electrozi. Schimbarea rezistenței dintre cei doi electrozi este proporțională cu
umiditatea relativă. Umiditatea relativă mai mare scade rezistența dintre electrozi, în timp
ce umiditatea relativă mai mică crește rezistența dintre electrozii.
DHT11 măsoară temperatura cu un senzor de temperatură NTC montat pe
suprafață, integrat în unitate.

Ce este umiditatea relativă?


DHT11 măsoară umiditatea relativă. Umiditatea relativă este cantitatea de vapori
de apă din aer față de punctul de saturație al vaporilor de apă din aer. La punctul de
saturație, vaporii de apă încep să se condenseze și se acumulează pe suprafețele care
formează roua.
Punctul de saturație se modifică odată cu temperatura aerului. Aerul rece poate să
mențină mai puțin vapori de apă înainte ca acesta să devină saturat, iar aerul cald poate
menține mai mulți vapori de apă înainte ca acesta să se satureze.
Formula de calculare a umidității relative este:
Umiditatea relativă este exprimată ca procent. La 100% RH, are loc condensarea
și la 0% RH, aerul este complet uscat.

Power and Pin


Sursa de alimentare a lui DHT11 este de 3-5,5 Vcc. Atunci când alimentarea este
furnizată senzorului, nu trimiteți nici o instrucțiune senzorului în interval de o secundă
pentru a trece starea instabilă. Un condensator cu valoare de 100nF poate fi adăugat
între VDD și GND pentru filtrarea puterii.

Proces de comunicare: Serial Interface (Single-Wire Two-Way)


Formatul de date single-bus este utilizat pentru comunicare și sincronizare între
MCU(arduino) și senzorul DHT11. Un proces de comunicare este de aproximativ 4 ms.
Datele sunt compuse din părți zecimale și integrale. O transmisie completă de date este
de 40 de biți, iar senzorul trimite primul bit mai mare de date.
Formatul datelor: date integrate RH pe 8 biți + date zecimale RH pe 8 biți + date
integrate T 8 biti + date zecimale T 8 biți + suma de verificare 8 biți. În cazul în care
transmiterea datelor este corectă, suma de verificare ar trebui să fie ultimul 8bit "8bit
integrat de date RH + 8bit date zecimale RH + 8bit integrate T date + 8bit date T
zecimale".
Când MCU trimite un semnal de pornire, DHT11 se modifică de la modul de
consum redus de energie la modul de funcționare, așteptând ca MCU(arduino) să
completeze semnalul de pornire. Odată terminată, DHT11 trimite un semnal de răspuns
de date pe 40 de biți care include informațiile MCU privind umiditatea relativă și
temperatura. Utilizatorii pot alege să colecteze (citească) unele date. Fără semnalul de
pornire de la MCU, DHT11 nu va da semnalul de răspuns la MCU. Odată ce datele sunt
colectate, DHT11 se va schimba în modul consum redus de putere până când va primi
din nou un semnal de pornire de la MCU.
Utilizarea senzorului DHT11
Connectarea senzorului la arduino se face astfel:

DHT11 -> Arduino


Vcc -> 5V
GND -> GND
Data Pin -> 3RD PIN(sau alt pin la alegere)

Pentru a folosi senzorului trebuie să instalăm librăria DHTLib


Exemplu cod pentru a utiliza senzorul DHT11:

#include "dht.h"

#define dht_apin A0 // Pin analg pentru conectarea senzorului

#define MaxTEMP 28

dht DHT;

int pin1 = 6;

int pin2 = 7;
void setup(){

pinMode(pin1, OUTPUT);

pinMode(pin2, OUTPUT);

Serial.begin(9600);

delay(500);//Delay pentru a boot-a sistemul

Serial.println("DHT11 Senzor de Umiditate & Temperatura \n\n");

delay(1000);//Asteptre inainte de accesarea senzorului

}//end "setup()"

void loop(){

DHT.read11(dht_apin);

Serial.print("Umiditatea curenta din ambient = ");

Serial.print(DHT.humidity);

Serial.print("% ");

Serial.print("Temperatura = ");

Serial.print(DHT.temperature);

Serial.println("C ");

//delay(2000);//Asteptre inainte de accesarea senzorului din nou

if(DHT.temperature < MaxTEMP)

digitalWrite(pin1,HIGH);

digitalWrite(pin2,LOW);
delay(1000);

else

digitalWrite(pin1,LOW);

digitalWrite(pin2,HIGH);

delay(1000);

}// end loop()

S-ar putea să vă placă și