DHT17 senzor temperature i vlažnosti popularan je i jeftin senzor koji se može koristiti u prilično širokom rasponu temperatura i relativne vlažnosti. Pogledajmo kako ga povezati s Arduinom i kako čitati podatke s njega.
Potrebno
- - Arduino;
- - DHT17 senzor temperature i vlažnosti.
Instrukcije
Korak 1
Dakle, DHT11 senzor ima sljedeće karakteristike:
- opseg izmjerene relativne vlažnosti - 20..90% s greškom do 5%, - raspon izmjerenih temperatura - 0..50 stepeni Celzijusa sa greškom do 2 stepena;
- vrijeme odziva na promjene vlažnosti - do 15 sekundi, temperature - do 30 sekundi;
- minimalni period glasanja je 1 sekunda.
Kao što vidite, DHT11 senzor nije baš precizan, a temperaturni opseg ne pokriva negativne vrijednosti, što je teško pogodno za vanjska mjerenja u hladnoj sezoni u našoj klimi. Međutim, njegova niska cijena, mala veličina i jednostavnost upotrebe djelomično nadoknađuju ove nedostatke.
Slika prikazuje izgled senzora i njegove dimenzije u milimetrima.
Korak 2
Razmotrite dijagram povezivanja senzora temperature i vlažnosti DHT11 s mikrokontrolerom, posebno s Arduinom. Na slici:
- MCU - mikrokontroler (na primjer, Arduino ili slično) ili računar s jednom pločom (Raspberry Pi ili slično);
- DHT11 - senzor temperature i vlažnosti;
- DATA - sabirnica podataka; ako dužina priključnog kabla od senzora do mikrokontrolera ne prelazi 20 metara, tada se preporučuje da ovu sabirnicu povučete na napajanje otpornikom od 5, 1 kOhm; ako je više od 20 metara, onda druga prikladna vrijednost (manja).
- VDD - napajanje senzora; dozvoljeni napon od ~ 3,0 do ~ 5,5 volti jednosmerne struje; ako se koristi napajanje ~ 3,3 V, poželjno je koristiti žicu za napajanje ne dužu od 20 cm.
Jedan od vodiča senzora - treći - nije povezan ni sa čim.
DHT11 senzor se često prodaje kao kompletan sklop s potrebnim cjevovodima - povlačenjem otpora i kondenzatorom filtra.
Korak 3
Sastavimo razmatranu šemu. Također ću spojiti logički analizator na sklop kako bih mogao proučavati vremenski dijagram komunikacije sa senzorom.
Korak 4
Idemo na jednostavan način: preuzmite biblioteku za senzor DHT11 (veza u odjeljku "Izvori"), instalirajte je na standardni način (raspakirajte je u direktorij / libraries / razvojnog okruženja Arduino).
Napišimo tako jednostavnu skicu. Učitajmo ga u Arduino. Ova skica će prikazati RH i temperaturne poruke pročitane s DHT11 senzora na serijski priključak računala svake 2 sekunde.
Korak 5
Sada, koristeći vremenski dijagram dobijen iz logičkog analizatora, shvatimo kako se vrši razmjena informacija.
DHT11 senzor temperature i vlažnosti koristi jednožično serijsko sučelje za komunikaciju s mikrokontrolerom. Jedna razmjena podataka traje oko 40 ms i sadrži: 1 bit bita od mikrokontrolera, 1 bit odziva senzora i 40 bitova podataka od senzora. Podaci uključuju: 16 bita podataka o vlažnosti, 26 bita podataka o temperaturi i 8 bitova za provjeru.
Pogledajmo bliže vremenski dijagram Arduino komunikacije s DHT11 senzorom.
Sa slike se vidi da postoje dvije vrste impulsa: kratki i dugi. Kratki impulsi u ovom protokolu razmjene označavaju nule, a dugi impulsi - jedinice.
Dakle, prva dva impulsa su Arduinov zahtjev za DHT11 i, shodno tome, odgovor senzora. Slijedi 16 bita vlage. Štoviše, podijeljeni su u bajtove, visoke i niske, visoko s lijeve strane. Odnosno, na našoj slici podaci o vlažnosti su sljedeći:
0001000000000000 = 00000000 00010000 = 0x10 = 16% relativne vlažnosti.
Podaci o temperaturi slični:
0001011100000000 = 00000000 00010111 = 0x17 = 23 stepena Celzijusa.
Kontrolni bitovi - kontrolna suma je samo zbroj 4 primljena bajta podataka:
00000000 +
00010000 +
00000000 +
00010111 =
00100111 u binarnom obliku ili 16 + 23 = 39 u decimalnom.