DHT17 temperatūros ir drėgmės jutiklis yra populiarus ir pigus jutiklis, kurį galima naudoti esant gana plačiam temperatūrų ir santykinės drėgmės diapazonui. Pažiūrėkime, kaip jį prijungti prie „Arduino“ir kaip iš jo nuskaityti duomenis.
Būtinas
- - Arduino;
- - DHT17 temperatūros ir drėgmės jutiklis.
Nurodymai
1 žingsnis
Taigi, DHT11 jutiklis turi šias charakteristikas:
- išmatuoto santykinio oro drėgnumo diapazonas - 20..90%, paklaida iki 5%, - išmatuotų temperatūrų diapazonas - 0..50 laipsnių Celsijaus su paklaida iki 2 laipsnių;
- reakcijos laikas į drėgmės pokyčius - iki 15 sekundžių, temperatūra - iki 30 sekundžių;
- minimalus balsavimo laikotarpis yra 1 sekundė.
Kaip matote, DHT11 jutiklis nėra labai tikslus, o temperatūros diapazonas neapima neigiamų verčių, o tai vargu ar tinka lauko matavimams šaltuoju metų laiku mūsų klimato sąlygomis. Tačiau maža kaina, mažas dydis ir paprastas naudojimas iš dalies kompensuoja šiuos trūkumus.
Paveikslėlyje parodyta jutiklio išvaizda ir jo matmenys milimetrais.
2 žingsnis
Apsvarstykite DHT11 temperatūros ir drėgmės jutiklio prijungimo prie mikrovaldiklio, ypač su „Arduino“, schemą. Ant paveikslėlio:
- MCU - mikrovaldiklis (pavyzdžiui, „Arduino“ar panašus) arba vieno borto kompiuteris („Raspberry Pi“ar panašus);
- DHT11 - temperatūros ir drėgmės jutiklis;
- DATA - duomenų magistralė; jei jungiamojo kabelio ilgis nuo jutiklio iki mikrovaldiklio neviršija 20 metrų, tuomet rekomenduojama šią magistralę prie maitinimo šaltinio traukti 5, 1 kOhm rezistoriumi; jei daugiau nei 20 metrų, tada kita tinkama vertė (mažesnė).
- VDD - jutiklio maitinimas; leistinos įtampos nuo ~ 3,0 iki ~ 5,5 voltų nuolatinės srovės; jei naudojamas maitinimas ~ 3,3 V, patartina naudoti ne ilgesnį kaip 20 cm maitinimo laidą.
Vienas iš jutiklio laidų - trečiasis - nėra prie nieko prijungtas.
DHT11 jutiklis dažnai parduodamas kaip visas komplektas su reikalingu vamzdynu - prisitraukimo rezistoriumi ir filtro kondensatoriumi.
3 žingsnis
Sudėkime svarstomą schemą. Taip pat prie grandinės prijungsiu loginį analizatorių, kad galėčiau ištirti ryšio su jutikliu laiko schemą.
4 žingsnis
Eikime paprastu keliu: atsisiųskite biblioteką DHT11 jutikliui (nuoroda skyriuje „Šaltiniai“), įdiekite standartiniu būdu (išpakuokite ją į „Arduino“kūrimo aplinkos katalogą / libraries).
Parašykime tokį paprastą eskizą. Įkelkime jį į „Arduino“. Šis eskizas kas 2 sekundes išduos RH ir temperatūros pranešimus, nuskaitytus iš DHT11 jutiklio į kompiuterio nuoseklųjį prievadą.
5 žingsnis
Dabar, naudodamiesi loginio analizatoriaus gauta laiko schema, išsiaiškinkime, kaip vyksta informacijos mainai.
DHT11 temperatūros ir drėgmės jutiklis naudoja vieno laido nuosekliąją sąsają, kad galėtų bendrauti su mikrovaldikliu. Vienas duomenų mainai trunka apie 40 ms ir apima: 1 užklausos bitą iš mikrovaldiklio, 1 bitą jutiklio atsako ir 40 duomenų bitų iš jutiklio. Duomenis sudaro: 16 bitų drėgmės informacijos, 26 bitų informacijos apie temperatūrą ir 8 tikrinimo bitai.
Pažvelkime atidžiau į „Arduino“ryšio su DHT11 jutikliu laiko schemą.
Iš paveikslo matyti, kad yra dviejų tipų impulsai: trumpi ir ilgi. Trumpi impulsai šiame mainų protokole žymi nulius, ilgi impulsai.
Taigi, pirmieji du impulsai yra „Arduino“prašymas DHT11 ir atitinkamai jutiklio atsakas. Toliau ateina 16 bitų drėgmės. Be to, jie yra suskirstyti į baitus, aukštus ir žemus, aukštus kairėje. Tai yra, mūsų paveiksle drėgmės duomenys yra tokie:
0001000000000000 = 00000000 00010000 = 0x10 = 16% RH.
Temperatūros duomenys panašūs į:
0001011100000000 = 00000000 00010111 = 0x17 = 23 laipsniai Celsijaus.
Patikrinimo bitai - kontrolinė suma yra tik 4 gautų duomenų baitų suma:
00000000 +
00010000 +
00000000 +
00010111 =
00100111 dvejetainiu skaičiumi arba 16 + 23 = 39 po kablelio.