DHT17 temperatūras un mitruma sensors ir populārs un lēts sensors, ko var izmantot diezgan plašā temperatūru un relatīvā mitruma diapazonā. Apskatīsim, kā to savienot ar Arduino un kā no tā nolasīt datus.
Nepieciešams
- - Arduino;
- - DHT17 temperatūras un mitruma sensors.
Instrukcijas
1. solis
Tātad, DHT11 sensoram ir šādas īpašības:
- izmērītā relatīvā mitruma diapazons - 20..90% ar kļūdu līdz 5%, - izmērīto temperatūru diapazons - 0..50 grādi pēc Celsija ar kļūdu līdz 2 grādiem;
- reakcijas laiks uz mitruma izmaiņām - līdz 15 sekundēm, temperatūra - līdz 30 sekundēm;
- minimālais vēlēšanu periods ir 1 sekunde.
Kā redzat, DHT11 sensors nav ļoti precīzs, un temperatūras diapazons neaptver negatīvās vērtības, kas mūsu klimatiskajos apstākļos diez vai ir piemērots āra mērījumiem aukstajā sezonā. Tomēr tā zemās izmaksas, mazais izmērs un lietošanas ērtums daļēji kompensēja šos trūkumus.
Attēlā parādīts sensora izskats un tā izmēri milimetros.
2. solis
Apsveriet DHT11 temperatūras un mitruma sensora savienojuma shēmu ar mikrokontrolleru, it īpaši ar Arduino. Uz attēla:
- MCU - mikrokontrolleris (piemēram, Arduino vai tamlīdzīgs) vai viena borta dators (Raspberry Pi vai tamlīdzīgs);
- DHT11 - temperatūras un mitruma sensors;
- DATA - datu kopne; ja savienojuma kabeļa garums no sensora līdz mikrokontrollerim nepārsniedz 20 metrus, tad ieteicams šo kopni pievilkt pie barošanas avota ar 5, 1 kOhm rezistoru; ja vairāk nekā 20 metri, tad vēl viena piemērota vērtība (mazāka).
- VDD - sensora barošana; pieļaujamie spriegumi no ~ 3,0 līdz ~ 5,5 voltiem līdzstrāvas; ja tiek izmantots barošanas avots ~ 3,3 V, tad ieteicams izmantot barošanas vadu, kas nav garāks par 20 cm.
Viens no sensora vadiem - trešais - nav savienots ar neko.
DHT11 sensoru bieži pārdod kā pilnīgu komplektu ar nepieciešamo cauruļvadu - pievilkšanas rezistoru un filtra kondensatoru.
3. solis
Saliksim kopā aplūkoto shēmu. Es arī pieslēgšu loģisko analizatoru ķēdei, lai es varētu izpētīt komunikācijas ar sensoru grafiku.
4. solis
Pārejam vienkāršā veidā: lejupielādējiet bibliotēku DHT11 sensoram (saite sadaļā "Avoti"), instalējiet to standarta veidā (izpakojiet to Arduino izstrādes vides direktorijā / libraries).
Uzrakstīsim tik vienkāršu skici. Ielādēsim to Arduino. Šī skice ik pēc 2 sekundēm no DHT11 sensora nolasītos RH un temperatūras ziņojumus izvadīs uz datora seriālo portu.
5. solis
Tagad, izmantojot laika grafiku, kas iegūts no loģiskā analizatora, izdomāsim, kā notiek informācijas apmaiņa.
DHT11 temperatūras un mitruma sensors saziņai ar mikrokontrolleru izmanto viena vada sērijveida saskarni. Viena datu apmaiņa aizņem apmēram 40 ms, un tajā ietilpst: 1 pieprasījuma bits no mikrokontrollera, 1 bits sensora atbildes un 40 datu biti no sensora. Dati ietver: 16 bitus mitruma informācijas, 26 bitus temperatūras informāciju un 8 pārbaudes bitus.
Apskatīsim tuvāk Arduino komunikācijas ar DHT11 sensoru grafiku.
No attēla var redzēt, ka ir divu veidu impulsi: īsi un ilgi. Īsi impulsi šajā apmaiņas protokolā apzīmē nulles, garie impulsi - vienus.
Pirmie divi impulsi ir Arduino pieprasījums DHT11 un attiecīgi sensora reakcija. Nākamais nāk 16 bitiem mitruma. Turklāt tie ir sadalīti baitos, augsti un zemi, augsti pa kreisi. Tas ir, mūsu attēlā mitruma dati ir šādi:
0001000000000000 = 00000000 00010000 = 0x10 = 16% RH.
Temperatūras dati ir līdzīgi:
0001011100000000 = 00000000 00010111 = 0x17 = 23 grādi pēc Celsija.
Pārbaudes biti - kontrolsumma ir tikai 4 saņemto datu baitu summēšana:
00000000 +
00010000 +
00000000 +
00010111 =
00100111 binārā vai 16 + 23 = 39 aiz komata.