Čidlo teploty a vlhkosti DHT17 je populární a levné čidlo, které lze použít v poměrně širokém rozsahu teplot a relativní vlhkosti. Podívejme se, jak jej připojit k Arduinu a jak z něj číst data.
Nezbytné
- - Arduino;
- - Snímač teploty a vlhkosti DHT17.
Instrukce
Krok 1
Čidlo DHT11 má tedy následující vlastnosti:
- rozsah měřené relativní vlhkosti - 20..90% s chybou až 5%, - rozsah měřených teplot - 0..50 stupňů Celsia s chybou až 2 stupně;
- doba odezvy na změny vlhkosti - do 15 sekund, teplota - do 30 sekund;
- minimální volební období je 1 sekunda.
Jak vidíte, senzor DHT11 není příliš přesný a teplotní rozsah nepokrývá záporné hodnoty, což je v našem podnebí stěží vhodné pro venkovní měření v chladném období. Nízké náklady, malá velikost a snadné použití však tyto nevýhody částečně kompenzovaly.
Obrázek ukazuje vzhled snímače a jeho rozměry v milimetrech.
Krok 2
Zvažte schéma připojení snímače teploty a vlhkosti DHT11 k mikrokontroléru, zejména k Arduinu. Na obrázku:
- MCU - mikrokontrolér (například Arduino nebo podobný) nebo jednodeskový počítač (Raspberry Pi nebo podobný);
- DHT11 - snímač teploty a vlhkosti;
- DATA - datová sběrnice; pokud délka propojovacího kabelu od senzoru k mikrokontroléru nepřesahuje 20 metrů, doporučuje se tahat tuto sběrnici k napájení pomocí rezistoru 5, 1 kOhm; pokud je větší než 20 metrů, pak další vhodná hodnota (menší).
- VDD - napájení snímače; přípustná napětí od ~ 3,0 do ~ 5,5 voltů DC; pokud je použito napájení ~ 3,3 V, pak je vhodné použít napájecí kabel, který není delší než 20 cm.
Jeden z vodičů snímače - třetí - není k ničemu připojen.
Senzor DHT11 se často prodává jako kompletní sestava s potřebným potrubím - pull-up rezistorem a filtračním kondenzátorem.
Krok 3
Spojme uvažované schéma. K obvodu také připojím logický analyzátor, abych mohl studovat časový diagram komunikace se senzorem.
Krok 4
Pojďme jednoduše: stáhněte si knihovnu pro senzor DHT11 (odkaz v sekci „Zdroje“), nainstalujte ji standardním způsobem (rozbalte ji do adresáře / libraries / vývojového prostředí Arduino).
Pojďme napsat takový jednoduchý náčrt. Načtěte to do Arduina. Tato skica bude každé 2 sekundy odesílat zprávy RH a Teplota načtené ze snímače DHT11 do sériového portu počítače.
Krok 5
Nyní pomocí diagramu časování získaného z logického analyzátoru pojďme zjistit, jak probíhá výměna informací.
Čidlo teploty a vlhkosti DHT11 používá pro komunikaci s mikrokontrolérem jednovodičové sériové rozhraní. Jedna výměna dat trvá přibližně 40 ms a obsahuje: 1 bit požadavku od mikrokontroléru, 1 bit odezvy senzoru a 40 datových bitů od senzoru. Data zahrnují: 16 bitů informací o vlhkosti, 26 bitů informací o teplotě a 8 kontrolních bitů.
Podívejme se blíže na časový diagram komunikace Arduino se senzorem DHT11.
Z obrázku je patrné, že existují dva typy impulzů: krátký a dlouhý. Krátké impulsy v tomto výměnném protokolu označují nuly, dlouhé pulsy - jednotky.
První dva impulsy jsou tedy požadavkem Arduina na DHT11 a podle toho také reakcí snímače. Dále přichází 16 bitů vlhkosti. Navíc jsou rozděleny na bajty, vysoké a nízké, vysoké vlevo. To znamená, že na našem obrázku jsou údaje o vlhkosti následující:
0001000000000000 = 00000000 00010000 = 0x10 = 16% RH.
Údaje o teplotě podobné:
0001011100000000 = 00000000 00010111 = 0x17 = 23 stupňů Celsia.
Kontrolní bity - kontrolní součet je pouze součtem 4 přijatých datových bytů:
00000000 +
00010000 +
00000000 +
00010111 =
00100111 v binárním formátu nebo 16 + 23 = 39 v desítkovém formátu.