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.
Upute
Korak 1
Dakle, DHT11 senzor ima sljedeće karakteristike:
- raspon izmjerene relativne vlažnosti zraka - 20..90% s pogreškom do 5%, - raspon izmjerenih temperatura - 0..50 Celzijevih stupnjeva s pogreškom do 2 stupnja;
- vrijeme odziva na promjene vlažnosti - do 15 sekundi, temperature - do 30 sekundi;
- minimalno razdoblje glasanja je 1 sekunda.
Kao što vidite, senzor DHT11 nije vrlo precizan, a temperaturni raspon 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 korištenja 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čunalo s jednom pločom (Raspberry Pi ili slično);
- DHT11 - senzor temperature i vlage;
- DATA - sabirnica podataka; ako duljina spojnog kabela od senzora do mikrokontrolera ne prelazi 20 metara, tada se preporuča povući ovu sabirnicu na napajanje otpornikom od 5, 1 kOhm; ako je više od 20 metara, onda druga prikladna vrijednost (manja).
- VDD - napajanje senzora; dopušteni naponi od ~ 3,0 do ~ 5,5 volti istosmjerne struje; ako se koristi napajanje ~ 3,3 V, tada je poželjno koristiti žicu za napajanje koja nije duža od 20 cm.
Jedan od vodiča senzora - treći - nije povezan ni s čim.
DHT11 senzor često se prodaje kao cjeloviti sklop s potrebnim otpornikom za izvlačenje i kondenzatorom filtra.
3. korak
Sastavimo razmatranu shemu. Također ću spojiti logički analizator na sklop kako bih mogao proučavati vremenski dijagram komunikacije sa senzorom.
4. korak
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 dobiven 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.
Razmotrimo detaljnije 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, sukladno tome, odgovor senzora. Slijedi 16 bitova vlage. Štoviše, podijeljeni su u bajtove, visoke i niske, visoko slijeva. To jest, 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 Celzijeva stupnja.
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.