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

Tento článek vznikl na základě nepříliš dlouhého nátlaku několika členů zdejšího fóra.

A dovolte abych začal malou úvahou, která vám snad lépe osvětlí jeho netypický nadpis.

Můj zájem o ESP8266 začal přednáškou na  arduino day 2016. Zde jsem poprvé slyšel o této platformě a úplně mne nadchla. Bylo to jako další level hardware, který logicky následuje po Arduinu a picaxe. S těmi již jsem malé zkušenosti měl (nejsem programátor a tedy se jednalo o zkušenosti nadšence amatéra). Na přednáškách jsem nabyl dojmu, že tyto dvě již zastaralé platformy zcela opustím a začnu se věnovat novému fenoménu ESP8266, které mi umožní konstruovat doposud nemyslitelné projekty a nahradím tím zastaralé Arduino. ESP bylo snad až 40x rychlejší, s podstatně větší  pamětí a vestavěnou WIFI, zkrátka super. Navíc  ho bylo možné programovat pomocí IDE, které jsem znal. Tedy nic než samé superlativy a svět se zdál najednou technologický bohatší a krásnější ale… (dokončení v druhém díle).

A  tak jsem pln nadšení  zakoupil ESP8266 v provedení  Nodemcu a E12, což bylo pro začátek na testování dostačující. Jakmile desky dorazily, pustil jsem se s velkou chutí do prvních pokusů a hned jsem narazil. Jak to vlastně zapojit? Deska Nodemcu byla připojitelná přímo přes USB, ale většina uživatelů ji v té době programovala v jazyce LUA, což pro mne byla velká neznámá a hojně se uvádělo, že pro wiring je třeba v nodemcu (verzi 3 LOLIN) přehrát firmware, do čehož se mi moc nechtělo. Až po pozdějších pokusech jsem zjistil, že to není třeba a s původním firmware mi programování přes IDE funguje dodnes.

Na E12 již některé aplikace ve wiringu byly, ale chyběl jednotný návod jak to vlastně zapojit (informace se lišili, někdo dával odpory jiný ne …). Tak že pro pokusy taky žádný ucelený návod. Dnes už je to jasné a kdo neví, pak doporučuji článek na Xpablo „Jak to vlastně zapojit“.

Po určité době váhání Nodemcu s převodníkem zvítězila a já začal experimentovat. Když jsem desku pořádně prostudoval, zjistil jsem že disponuje  pouze jedním pinem s ADC převodníkem, což bylo pro moje pokusy zoufale málo (u arduino nano co mi monitoruje a řídí solární systém mám obsazeno všech sedm převodníků a ještě bych čtyři potřeboval).

Nicméně pokračoval jsem ještě stále optimisticky naladěn v testech. Nejprve jsem zkoušel ty jednoduché programy co jsou přímo v knihovnách tedy blikání led atd., ale  záhy jsem zjistil, že pokud budu chtít využít potenciálu desky naplno, příklady v knihovně mi moc nepomohou. Proto jsem se začal poohlížet po dalších projektech programátorů a nadšenců. No před rokem bylo těch projektů na webu podstatně méně než dnes a hodně jich bylo v jazyce LUA tedy pro studium kódu, který bych si mohl vyzkoušet v IDE a případně upravit nevhodných. Při procházení webů jsem našel blog Xpablo, jehož majitel (vývojář) se občas podělil o nějaké moudro a hlavně dal na svůj web demo meteostanice a návod jak ji spustit na ESP. Navíc napsal skvělé knihovny pro ovládání wifi, za což mu patří můj velký dík.

I přes značnou složitost, která se začala rýsovat v projektech, jsem v té době stále ještě věřil, že si tuto platformu osvojím naprosto dokonale (jak jsem se jen mýlil).

Kdo by chtěl následovat moje pokusy, tak na této stránce autor webu připravil strohý návod a kód na meteostanici, která mne jako projekt nadchla a přesvědčila, že je třeba vytrvat.

Jen pár poznámek k zprovoznění meteostanice, program u Xpabla je stavěn pro IDE 1.6.9, což je docela zásadní poznámka a ještě ve verzi portable. Jde o to, že v balíčku programu jsou všechny funkční knihovny i program a tedy není třeba nic stahovat. Problém je, že musíte mít nainstalovanou portable verzi a před prvním spuštěním vložit do kořenové adresářové struktury adresář označený portable. Stažený a rozbalený balíček vložíte potom do tohoto adresáře a už by to mělo jít zkompilovat. Zásadní informací je, že to funguje v  IDE až po verzi 1.6.9 včetně. V další vývojové verzi včetně současné 1.8.5 to už nefunguje, protože vývojáři se rozhodli,že adresář librare ve sketchbook se přejmenuje na src a napojení knihoven se tedy ztratí. Možností je přepsat cesty z librare do src 🙂 .

Ještě ke konfiguraci, nikde se nezapisuje IP. Po nahrání programu do ESP se na vašem NB přepnete na scan WIFI v okolí a uvidíte tam novou sít ESPsetup. Otevřete ji a v setupu vyplníte  SSID, heslo své WIFI a název projektu (např ESP).

Dále můžete zatrhnout statickou IP, kdy se vám otevře další nabídka, kde vyplníte první tři čísla IP stejná jako používáte u vaší sítě a poslední zadáte něco mezi 10 – 255 (tato adresa pak slouží k  přihlášení na stanici, tedy např 192.168.1.50). Možnosti konfigurace jsou podstatně větší, například je možno si vytvořit AP bod, ale to už je na pokusech každého. (Pozor tato zadaná ip se zapíše do horní části paměti a už ji tam budete mít stále a konfigurace se již příště nespustí. Pro novou konfiguraci je třeba smazat prvních 512b paměti.)

Takovéto pěkné grafy generuje tato meteostanice.

Pokračování příště…