Senzor teploty a vlhkosti DHT17 je populárny a lacný senzor, ktorý je možné použiť v pomerne širokom rozmedzí teplôt a relatívnej vlhkosti. Pozrime sa, ako ho pripojiť k Arduinu a ako z neho načítať údaje.
Nevyhnutné
- - Arduino;
- - snímač teploty a vlhkosti DHT17.
Inštrukcie
Krok 1
Senzor DHT11 má teda nasledujúce vlastnosti:
- rozsah nameranej relatívnej vlhkosti - 20..90% s chybou do 5%, - rozsah nameraných teplôt - 0..50 stupňov Celzia s chybou až 2 stupne;
- doba odozvy na zmeny vlhkosti - do 15 sekúnd, teplota - do 30 sekúnd;
- minimálna volebná doba je 1 sekunda.
Ako vidíte, snímač DHT11 nie je veľmi presný a teplotný rozsah nepokrýva záporné hodnoty, čo je v našej klíme pre vonkajšie merania v chladnom období sotva vhodné. Avšak jeho nízka cena, malá veľkosť a ľahké použitie tieto nevýhody čiastočne kompenzujú.
Obrázok zobrazuje vzhľad snímača a jeho rozmery v milimetroch.
Krok 2
Zvážte schému pripojenia snímača teploty a vlhkosti DHT11 k mikrokontroléru, najmä k Arduinu. Na obrázku:
- MCU - mikrokontrolér (napríklad Arduino alebo podobný) alebo jednodeskový počítač (Raspberry Pi alebo podobný);
- DHT11 - snímač teploty a vlhkosti;
- DATA - dátová zbernica; ak dĺžka spojovacieho kábla od snímača k mikrokontroléru nepresahuje 20 metrov, potom sa odporúča ťahať túto zbernicu na napájanie s odporom 5, 1 kOhm; ak je viac ako 20 metrov, potom iná vhodná hodnota (menšia).
- VDD - napájanie snímača; prípustné napätie od ~ 3,0 do ~ 5,5 voltov DC; ak sa použije napájanie ~ 3,3 V, odporúča sa použiť napájací vodič, ktorý nie je dlhší ako 20 cm.
Jeden z vodičov snímača - tretí - nie je k ničomu pripojený.
Senzor DHT11 sa často predáva ako kompletná zostava s potrebným potrubím - pull-up rezistorom a filtračným kondenzátorom.
Krok 3
Poďme dať dohromady uvažovanú schému. K obvodu pripojím aj logický analyzátor, aby som mohol študovať časový diagram komunikácie so snímačom.
Krok 4
Poďme na to jednoduchým spôsobom: stiahnite si knižnicu pre snímač DHT11 (odkaz v časti „Zdroje“), nainštalujte ho štandardným spôsobom (rozbalte ho do adresára / libraries / vývojového prostredia Arduino).
Poďme si napísať taký jednoduchý náčrt. Načítajme to do Arduina. Tento náčrt bude každé 2 sekundy vysielať správy RH a Teplota načítané zo snímača DHT11 do sériového portu počítača.
Krok 5
Teraz pomocou časovacieho diagramu získaného z logického analyzátora poďme zistiť, ako sa uskutočňuje výmena informácií.
Senzor teploty a vlhkosti DHT11 používa na komunikáciu s mikrokontrolérom jednovodičové sériové rozhranie. Jedna výmena dát trvá asi 40 ms a obsahuje: 1 bit požiadavky od mikrokontroléra, 1 bit odozvy senzora a 40 dátových bitov od senzora. Údaje zahŕňajú: 16 bitov informácií o vlhkosti, 26 bitov informácií o teplote a 8 kontrolných bitov.
Pozrime sa podrobnejšie na časový diagram komunikácie Arduina so snímačom DHT11.
Z obrázku je zrejmé, že existujú dva typy impulzov: krátky a dlhý. Krátke impulzy v tomto protokole výmeny znamenajú nuly, dlhé impulzy - jednotky.
Takže prvé dva impulzy sú požiadavkou Arduina na DHT11 a podľa toho aj reakciou snímača. Ďalej prichádza 16 bitov vlhkosti. Ďalej sú rozdelené na bajty, vysoké a nízke, vysoko vľavo. To znamená, že na našom obrázku sú údaje o vlhkosti nasledujúce:
0001000000000000 = 00000000 00010000 = 0x10 = 16% relatívna vlhkosť.
Údaje o teplote podobné:
0001011100000000 = 00000000 00010111 = 0x17 = 23 stupňov Celzia.
Kontrolné bity - kontrolný súčet je iba súčtom 4 prijatých dátových bajtov:
00000000 +
00010000 +
00000000 +
00010111 =
00100111 v binárnom formáte alebo 16 + 23 = 39 v desatinnom čísle.