Čidel teploty a vlhkosti je celá řada, některé jsou levnější, jiná dražší. Každý výrobce má svůj vzhled a svůj způsob připojení. Co když ale budeme chtít mít v každé místnosti čidlo teploty a vlhkosti a těch místností máme třeba 5? U některých výrobců se toto řešení může vyšplhat klidně i k hodnotě 7 tisíc korun.
Výroba vlastního řešení zde tedy má smysl, protože kompletní čidlo lze sehnat už do hodnoty 100kč. Bude to chtít ale trochu našeho úsilí a práce. Představíme si oblíbenou desku ESP8266 a připojíme si k ní čidlo DHT11.
Tyto dvě desky se dají koupit na spoustě českých webů za celkem vysoké ceny – komplet na jednom radši nejmenovaném webu vyjde na více než 250kč za oba kusy a k tomu ještě doprava. Nicméně na ebay/aliexpressu se dají sehnat obě pod hodnotu 100kč a s dopravou až z číny jsme okolo hodnoty 100kč. Pokud jich tedy zakoupíme více, včetně dopravy jsme pod hranicí 100kč/kus.
Budeme tedy předpokládat, že toto čidlo máte již doma na stole a pustíme se do jeho zapojení a flashování na firmware HAA Raven Systems/Tasmota – výběr je jen na vás. Budeme tedy potřebovat vždy .bin soubor pro flashování. Soubory pro flashování zde ale uvádět nebudu, jak u Tasmoty, tak u HAA jsou dostupné na Githubu v jejich posledních verzích.
V případě Tastmoty jde o soubor tasmota.bin, v případě HAA jde o soubor fullhaaboot.bin. K flashování budeme používat nástroj esptool.py – jak nainstalovat určitě někdy někde uvedu, nicméně na webu je návodu hodně. Dnes se tedy zaměříme pouze na zapojení a flashnutí.
Zapojíme desku ESP8266 přes Arduino Uno (ano, pro rejpálky, nepoužívám originální desku Arduino UNO ale desku Keyestudio UNO, která je téměř identická ale stojí desetinu) viz následující zapojení. Je důležité zapojit desku do 3v3 pinu Arduina, jinak desku EPS poškodíme. Zároveň ale není potřeba připojovat EN konektor. Flashnutí funguje i bez něj. Uvádím jen pro případ, že by jste neměli dostatek kablíku na propojení.
Zároveň nezapomeňte propojit GND a reset na arduinu a piny pro TX a RX se opravdu zapojují TX->TX a RX->RX. Arduino nám v tomto zapojení bude fungovat pouze a jen jako převodník. Stejnou službu udělá jakýkoliv 3v3 USB—>UART převodník.
Pokud tedy máme zapojeno, můžeme začít flashovat. Jako první provedeme příkaz:
Příkaz otestuje komunikaci. Pokud je něco špatně, vyhodí to následující okno:
Pokud vše proběhne v pořádku, vypíše se obdobné okno, kde nás zajímá hodnota paměti, kterou budeme používat v dalším příkazu. V našem případu jde o velikost 1MB.
Následujícím příkazem tedy již můžeme flashovat. První je pro HAA, druhý pro Tasmotu:
Během flashování budou vidět procenta jak proces probíhá.
Pokud vše dopadlo dobře, uvidíte následující obrazovku.
Nyní nastal čas odpojit ESP8266 od Arduina a připojit ho na desku DHT11 a přes tu spustit 3v3 napájení – opět klidně můžeme použít Arduino. Když se vše podaří, uvidíme při vyhledávání WiFi sítí novou WiFi s názvem: HAA-XXXXXX kde XXXXXX je posledních 6 znaků z MAC adresy ESPčka.
Připojíme se tedy k této WiFi síti – je bez hesla. Síť má DHCP v rozsahu 192.168.4.x. Do prohlížeče tedy zadáme adresu: http://192.168.4.1:4567 tímto otevřeme nastavení čidla.
Do MEPLHAA scriptu zkopírujeme následující kód.
Co jednotlivé části kódu znamenají jsem detailně rozepsal na konci článku. Pro DHT11 čidlo, resp pro tuto sestavu je ale kód tento.
Pro Tasmotu musíme jít do nastavení a v typu zvolit „Generic“, uložit a pak vložit šablonu, tam kód vypadá takto:
Pro Tasmotu je celé nastavení hodně odlišné – je potřeba k jejímu ovládání používat HA (HomeAssistant) nebo HB (HomeBridge). My ale primárně používáme Apple HomeKit, takže dál budu pokračovat už jen v HAA.
Pokud vše proběhne v pořádku, nové čidlo se připojí do naší WiFi sítě. Bude tedy vidět v DHCP rozsahu na routeru. Otevřeme tedy na iPhone aplikaci Domácnost a naskenujeme tento kód.
Případně se může stát, že příslušenství aplikace najde automaticky. V takovém případě na něj jen klikněte.
Potvrďte, že se jedná o necertifikované zařízení, které chcete přidat.
Zadejte tento kód a přidejte.
Může se stát, že na první pokus se zařízení nepovede přidat. Občas se to děje. Odpojte tedy od čidla napájení a znovu jej připojte a zahajte znovu proces párování.
Během chvilky, co se snaží připojit se čidlo začne zobrazovat. Vyberte umístění čidla, do které místnosti jste jej přidali.
Čidlo si nějak pojmenujte.
Nyní se zobrazí informace o novém čidlu.
Vše nyní už jen potvrďte.
Nyní už vidíte nové čidlo v místnosti, do které jste jej přidali.
V tuto chvíli je vše hotové a připravené k použití. Nyní ale ještě odpočim k MEPLHAA Scriptu. Aby jsme si vysvětlili jeho jednotlivé části.
Informace v MEPLHAA scriptu
Čídlo teploty a vlhkosti DHT11 jsme si přidali podle následujícího kódu, co se zadával:
Pojďme si ale jeho kusy rozvést. První část v poli „c“ se věnovat nebudeme, ta je více než jasná. Nás bude zajímat pole s označením „a“.
První hodnotou je „t“. Tato hodnota v případě čidla teploty a vlhkosti podle HAA Githubu může nabývat těchto tří hodnot:
Type | Service Type |
22 | Temperature Sensor |
23 | Humidity Sensor |
24 | Temperature & Humidity Sensors |
Pokud by jste tedy chtěli z čidla použít pouze senzor teploty či pouze senzor vlhkosti, místo 24 změníte typ na 22 či 23.
Označení „g“:2 nám udává, na kterém z pinů je DHT senzor připojen. V našem případě jde o pin s označením GPIO2. Když se podíváme na oficiální specifikaci desky, dozvíme se informace z následující tabulky:
GPIO # | Component |
GPIO00 | User |
GPIO01 | User |
GPIO02 | DHT11 |
GPIO03 | User |
GPIO04 | None |
GPIO05 | None |
GPIO09 | None |
GPIO10 | None |
GPIO12 | None |
GPIO13 | None |
GPIO14 | None |
GPIO15 | None |
GPIO16 | None |
FLAG | None |
Poslední hodnotou je pak „n“:1 – ta nám udává přesný typ, opět podle HAA Githubu, o jaký přesný typ čidla se jedná. Na desce máme umístěn senzor DHT11, pokud by jsme měli DHT22, použili bychom „n“:2 a tak podobně dále, opět viz následující tabulka:
Key | Type | Device Type Support | Description |
„n“ | 1 | 22, 23 & 24 | DHT11 Temperature and humidity sensor |
| 2 | 22, 23 & 24 | DHT22 Type 1 (default) Temperature & humidity sensor |
| 3 | 22 | DS18B20 Temperature sensor |
| 4 | 22, 23 & 24 | Si7021 1-Wire version Temperature and humidity sensor |
| 5 | 22 | ADC NTC Thermistor |
| 6 | 22 | ADC PTC Thermistor |
| 7 | 22 | Raw ADC NTC Thermistor |
| 8 | 22 | Raw ADC PTC Thermistor |
| 9 | 23 | Raw ADC Humidity Sensor |
| 10 | 23 | Raw ADC Humidity Sensor (Inverted logic) |