Lekce 29
Senzor teploty a vlhkosti vzduchu DHT11

Úvod

Když se nám podařilo postavit skutečné hodiny, co takhle zkusit jednoduchou domácí meteorologickou stanici? Experimentální sada Arduino MAXI Starter kit obsahuje mimo jiného digitální čidlo teploty a vlhkosti DHT11. Tento senzor, který měří teplotu a relativní vlhkost, zapisuje obě tyto hodnoty v digitální podobě na svůj digitální výstup. Údaje jsou na výstupu sice zakódovány do zvoleného protokolu, ale o jeho načtení se opět postarají programové bloky rozšíření MAXI Starter kit. Takže se s tímto čidlem bude pracovat stejně jednoduše jako kupříkladu s předchozím modulem reálného času.

modul DHT11

Použité komponenty

  • modul Arduino
  • USB kabel
  • modul senzoru DHT11
  • LCD displej s I²C převodníkem
  • nepájivé pole
  • vodiče pro nepájivé pole + vodiče typu „samec-samice“

Princip

Digitální čidlo teploty a vlhkosti DHT11 obsahuje odporové čidlo vlhkosti a polovodičový teplotní senzor. Obě čidla jsou doplněna osmibitovým analogově-digitálním převodníkem. Na destičce čidla DHT11 je kromě samotného čidla ještě i pomocný pull-up rezistor. Pokud používáme čidlo v podobě modulu (na destičce) jsou pro připojení k dispozici tři piny: VCC, GND, a S (DATA nebo Signal). Komunikační proces začíná posláním startovního signálu do čidla DHT11, jakmile čidlo změří potřebné údaje, čidlo vrací odpověď, což je 40bitová sekvence dat (16 bitů hodnoty vlhkosti + 16 bitů hodnoty teploty + 8 bitů kontrolního součtu). Čidlo DHT11 lze zakoupit i v „holé“ verzi, kdy má samotné čidlo vývody čtyři. Následující obrázek ukazuje nejen zapojení jednotlivých vývodů (NC – znamená „nezapojeno“) samotného čidla DHT11, ale především i připojení pull-up rezistoru pro jeho provoz.

cidlo DHT11


Postup experimentu

Krok 1: Sestavíme si obvod podle následujícího obrázku nebo schématu. I²C LCD displej připojíme stejně, jako v předešlých lekcích. Čidlo DHT11 a LCD displej připojíme dle níže uvedených tabulek.

Blokové schéma

Blokove schema

Elektronické schéma

Elektronicke schema
DHT11 modul Arduino
S 4
+ 5V
GND GND

I²C LCD1602 modul Arduino
UNO Mega
SDA A4 20
SCL A5 21
UCC 5V 5V
GND GND GND

Krok 2: V prostředí mBlock vytvoříme následující program. Při tvorbě programu je třeba znát adresu použitého I²C LCD displeje, neboť u každého příkazů pro LCD je třeba nastavit aktuální adresu. (viz rozbalovací pole „adr.“).


ikona vysvetleni Vysvětlení kódu

První část programu nastavuje údaje pro ovládání LCD displeje, též deklaruje typ použitého senzoru teploty a vlhkosti a komunikační pin, které kterému je na modulu Arduino čidlo připojeno. V hlavní nekonečné smyčce „opakuj stále“ je postupně z čidla načítána hodnota teploty a vlhkosti a zapisována na LCD displej. Díky poměrně značné pomalosti DHT čidla (doba převodu asi 1 s) program ani nepotřebuje čekací příkaz pro zpomalení. Díky tomu, že hodnota vlhkosti a teploty budou zpravidla dvouciferné hodnoty, není v tomto programu řešeno mazání předchozích hodnot, které jsou na displeji prostě jen přepisovány.


Krok 3: Zkompilujeme kód a nahrajeme do modulu Arduino tlačítkem tlacitko nahrat.

Krok 4: Po spuštění programu na modulu Arduino můžeme vidět na LCD displeji aktuální hodnotu teploty a vlhkosti vzduchu.

Pohled na experiment