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.
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.
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
Elektronické schéma
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.“).
Program lze stáhnout z:
http://
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 .
Krok 4: Po spuštění programu na modulu Arduino můžeme vidět na LCD displeji aktuální hodnotu teploty a vlhkosti vzduchu.