Meteorologická stanice s ESP8266, aneb jak jsem se vrátil k Arduinu (2. část)

Minule jsem skončil tím, že můj první „smysluplný projekt“ meteostanice postavený pomocí stránek webu Xpabla se rozběhl a fungoval.

První dojem byl perfektní, ale chyběla mi například hodnota napětí stavu akumulátoru, kterou jsem si chtěl dodělat. To znamenalo pochopit funkci kódu a knihoven. A zde přišlo druhé a o to větší rozčarování z této platformy. Použité knihovny byly poměrně dost složité (to mnohdy známe i u Arduina), ale zde to bylo kvůli WIFI ještě o level výše.

Pro grafy na stránce pak byl použit HTML podpořený styly a skripty, který upravit také nebylo vůbec jednoduché (lépe řečeno bez pomoci autora téměř nemožné). Toto bylo asi moje největší zklamání.

Uvědomil jsem si tedy, že pokud chce někdo programovat  ESP a nepřejímat knihovny o nichž vůbec neví jak fungují, musí znát programování ve Wiringu či LUA, C++, HTML, styly a samozřejmě i Java skripty. Python by taky nebyl k zahození a taky musí být znalý protokolů TCPIP atd. Celkově tedy pro amatéra trochu moc velký oříšek, spíš ořech.

Dalším zklamáním byl proudový odběr. Modul s takto napsaným programem nebylo možné provozovat na akumulátor, protože by   ho bylo nutno každou chvíli dobíjet. Nicméně nechtěl jsem ještě tuto platformu, jen kvůli výše zmíněným negativům zavrhnout a tak jsem se vrhnul na projekty, které se upravovat moc nemusely, nebo je autor popsal tak, že jejich úpravy nevyžadovaly komplexní znalost kódu projektu a knihoven.

Po pravdě, takových projektů je ale poměrně málo a když jsou, tak zase ani zdaleka nevyužívají možnosti platformy ESP.

Po delším hledání jsem našel projekt na meteostanici (opět) hezky popsaný i s brožurou vydanou autorem Danielem Eichhornem a v podstatě totéž na Instructables.

U takto zpracovaného projektu jsem neočekával žádné problémy, stanice se mi líbila a tak jsem se pustil do stavby. No, stavby, vlastně jen propojení displeje s nodemcu (později i vlastního čidla). To, co je obvykle na jiných projektech to nejtěžší, bylo v tomto případě to nejjednodušší.

Dle návodu jsem se musel nejprve zaregistrovat na Weather Underground. Z této stránky si ESP bude co 10 min tahat informace o aktuálním počasí a předpovědi na tři dny dopředu. V naší republice máme poměrně velké množství měřících bodů. Registrace a odběr dat je do 500 přístupů za den zdarma a tak není třeba se obávat poplatků.

Formulář pro vyplnění  přihlášky byl odlišný od návodu a bylo třeba ho vyplnit správně.

Zde ukázka jak ho vyplnit:

Po vyplnění a schválení potvrzovacím tlačítkem vám přijde formulář s klíčem pro přístup a to je vše. Klíč si dobře uschovejte.

Nyní přišla ta horší část konstrukce.

Po stažení programu a doporučených knihoven pomocí IDE instalátoru mi to nešlo zkompilovat. Proč? No a jsme u další nepěkné vlastnosti ESP, respektive knihoven k němu poskytovaných. Nové knihovny na githubu totiž s programem nespolupracují (zřejmě proto, že jsou novější, než s jakými to autor psal). Navíc zadáte-li například knihovnu pro oled v instalátoru, dostanete na výběr hned několik verzí knihoven od různých autorů, ale se kterou pracoval autor při návrhu stanice už nezjistíte a pokud nevyberete tu správnou knihovnu, tak to zkrátka fungovat nebude. Postupnou selekcí jsem se prokousal k těm správným knihovnám a poskytuji je zde ke stažení. Rovněž zde poskytuji mnou upravený program od Daniela Eichhorna (od něhož mám k uveřejnění svolení), originál programu se nachází na stránkách  SQUIX.

Moje úprava původního návrhu spočívala v tom, že jsem doplnil systém o čidlo DHT 22 na místo informací, které autor u svého programu získával pomocí theamspeku. Dále jsem doplnil jednu zobrazovanou stránku na displeji s názvem odběrného místa.

Nyní několik poznámek k oživení pro ty, co se rozhodnou tuto stanici vyzkoušet.

Předně tedy: funkce byla ověřena na WIN10 a IDE 1.8.5 (klasické instalační). Nainstalujte si  pomocí instalátoru stažené knihovny. Potom si otevřete program Weather-Widget v5 a ještě před kompilaci si ho pozorně prohlédněte. Udělal jsem v češtině poznámky v místech, kde je třeba něco doplnit; například heslo vaší WIFI sítě a její název. Hlavní ale je správně vyplnit odběrné místo pro informace o počasí. Zde je prostor pro pokusy, protože ne vždy město v okolí má dobře komunikující server s Weather Underground. Zadáním názvu města bez diakritiky se změní odběrný balíček na serveru. Pokud v daném městě či vesnici odběrné místo není, informace se na displeji nezobrazí. Mám také zkušenost s tím, že město v mé blízkosti vracelo zcela odlišné informace oproti stavu počasí na obloze a tak jsem raději vybral menší vesnici (s meteostanicí) v okolí, kde informace seděly.

Pak ještě zbývá přepsat odběrné místo v druhé třetině programu (informační stránka displeje) a konfigurace je hotova.

Takto by to potom mělo vypadat:

Na závěr shrnutí a dokončení mé úvahy z prvního dílu:

… ale ve světě ESP není ani zdaleka vše tak perfektní, jak se na začátku zdálo. Jak už jsem zde zmínil, ESP nabízí vyšší rychlost, větší pamět a wifi, ale naproti tomu jen jeden ADC převodník, podstatně vyšší náročnost při programování (to zabere i více času), vyšší citlivost na použitou verzi knihoven, menší komunitu a podstatně vyšší odběr proudu oproti Arduinu nebo Picaxe. V současnosti mi vychází jako nejhorší parametr delší čas při sestavování programu a hledání vhodných knihoven. Možná se mnou mnozí nebudou souhlasit, čas je pro většinu z nás naprosto nejcennější komodita a právě ta se zde hojně odčerpává.

Odběr modulu rozhodně také není žádná hitparáda, v normálním režimu jsou zde špičky kolem 300 mA i výš. Existují sice hned tři módy, které odběr snižují, modem sleep, light sleep a deep sleep. Zatím co první odpojuje WiFi (odběr klesne zhruba na 15 mA) a zachovává výpočetní sílu (údajně měl umět i přijímat WiFi a na povel se vzbudit, ale z reakcí na fórech vyplývá, že se to moc nedaří), druhy light sleep (odběr kolem 0,4 mA) ale ten už zastavuje procesor a třetí deep sleep (odběr kolem 20 uA) procesor úplně vypne a program se vždy při probuzení resetuje (jediné, co zůstává běžet, je časovač na probuzení).

V hodnocení tak pro většinu mých projektů vítězí Arduino případně Picaxe, protože na dané úkoly stačí a mnohdy jsou tyto platformy i podstatně vhodnější. Ano budou projekty, kde bude třeba WIFI,  tak tam se ESP uplatní, proto tuto platformu rozhodně nezavrhuji, avšak už ji ani nijak neoslavuji.

Ke stažení: