Archiv štítku: ESP8266

Měření výšky hladiny II – “Do it like a Pro…”

Tento článek navazuje na starší příspěvek pojednávající o měření výšky hladiny vody ve studni, který byl řešený formou zadrátování jednotlivých komponent a proto také byl označený “Ghetto style”. Mailem jsem obdržel spoustu žádostí o stavbu stejného zařízení a i po odfiltrování české klasiky – “Já si to koupím, když mi dáte 20% slevu z nákupních cen součástek…”, nebo “Dejte mi cenu na 5000 kusů a já si pak jeden za tuhle cenu koupím…” zbylo stále dost opravdu vážných zájemců. Jeden z nich byl natolik zajímavý, že jsme se nakonec dohodli – vyvinu novou elektroniku, která bude uveřejněna pod licencí Open source hardware a napíšu úplně nový firmware, který bude možné rozšiřovat ve smyslu pozdějšího připojení měření do internetu a komunikace s jinými automatizačními systémy. Elektronika bude mít možnost zobrazit hladiny až ze tří zdrojů na OLED displeji. Tohle byly základní dohodnuté parametry.

Pokračování textu Měření výšky hladiny II – “Do it like a Pro…”

Z notýsku vývojáře – Jak zachytit občasný pád aplikace v ESP8266

Dříve, nebo později se s tím setká každý, kdo tvoří aplikace na mikrokontroléry – skvělá, téměř hotová aplikace občas spadne. Ne tak často, aby se pád dal zachytit debuggerem (pokud se dá k hardware vůbec připojit), ale příliš často na to, aby bylo možné pády ignorovat. Stává se to i při programování ESP8266 a to častěji, než by se mohlo zdát (ti, kdo používají intenzívně komunikující sériový port pomocí knihovny SoftwareSerial o tom zcela nepochybně ví své). Ladění těchto situací bývá velmi obtížné a zdlouhavé, ale naštěstí pro nás existuje v případě ESP8266 cesta, jak si práci usnadnit. SDK, poskytované přímo od Espressif obsahuje možnost, jak při pádu aplikace zavolat uživatelskou funkci, která se jmenuje custom_crash_callback(…). Funkce je volaná z postmortem stavu přímo z jádra (weak alias je definovaný v core_esp8266_postmortem.c ). Její použití ale má nějaká úskalí – nesmí se použít dynamická alokace, blokovací funkce (serial, network, delay, …) a vykonání funkce nesmí trvat příliš dlouho, protože HW watchdog stále běží. Nápad tedy spočívá v tom, že se do EEPROM uloží informace o pádu, které se dají použít pro následnou analýzu. Tento nápad mělo přede mnou už více vývojářů, takže vznikla knihovna EspSaveCrash, která ale bohužel ignoruje zapovězení dynamické alokace, takže pokud vznikl pád aplikace z důvodu problému na heapu, EspSaveCrash nebude fungovat správně. Napsal jsem tedy vlastní variantu, která vychází z uvedené knihovny, ale netrpí tímto neduhem a kterou používám již řadu měsíců.

Pokračování textu Z notýsku vývojáře – Jak zachytit občasný pád aplikace v ESP8266

EasyTherm Connect+, náhled na firmware

Přesto, že firmware pro EasyTherm ještě zdaleka není dokončený, musím na základě četných žádostí trošku poodkrýt vzhled a filozofii. V prvním článku o ETCP jsem uveřejnil informace o tom, že aplikace je kompletně servírovaná ze souborového systému SPIFFS uvnitř ESP8266 – i přes značný nárůst velikosti kódu toto řešení zůstalo stále zachované. Nastavování a programování ETCP nevyžaduje připojení k internetu a celý systém dokáže pracovat v tzv. ostrovním režimu. Pokračování textu EasyTherm Connect+, náhled na firmware

Malá domácí automatizace s ESP8266, část I. – EasyTherm Connect+, HW

Počátek tohoto projektu se datuje těsně před Vánocemi roku 2016. V mailech, které dostávám se objevil jeden, který se dost vymykal normálu – čtenář Dalibor v něm vykreslil zařízení, které by potřeboval navrhnout. Naprosto jasně definoval požadované vstupy a výstupy, na rovinu napsal, k čemu to potřebuje a jaké jsou jeho záměry. Vyměnili jsme si několik mailů, ze kterých vyplynulo, že si udělal i předběžné rešerše co se týče mechanické konstrukce a použitých komponent, takže komunikace s ním byla opravdu velmi konstruktivní a rychle vedla k dohodě – Dalibor vytvořil zadání, na základě kterého jsem začátkem ledna navrhl hardware prvního dílu stavebnice…

Pokračování textu Malá domácí automatizace s ESP8266, část I. – EasyTherm Connect+, HW

LowPowerLab – Laboratoř nízkého odběru

Tento projekt vznikl na podzim roku 2016. Jeho úkolem bylo umožnit mi ověření a pokusy s bateriovým napájením (a tudíž velmi malou spotřebou) modulu ESP8266. Také měl sloužit jako základ pro konstrukci nové elektroniky meteostanice, nahrazující starý projekt LyMet. Vzhledem k povaze čidel meteostanice (nutnost stálého odečtu například srážkoměru), požadavku na bateriové napájení a nutnosti solárního dobíjení nakonec vzniklo experimentální zařízení, které bych zde rád představil… Pokračování textu LowPowerLab – Laboratoř nízkého odběru

Šťastné a veselé… (s ESP8266)

Pro jeden z projektů potřebuji vyřešit dekódování a zobrazení JPEG obrázku/streamu pomocí ESP8266. Rozhodl jsem se tedy, že demonstrační projekt využiji zároveň jako přání k vánocům. Abych demonstroval rychlost dekódování a vykreslování, tak jsem také natočil krátké video, které je dále v článku. No a pro ty, co nechtějí číst dál – hezké a klidné vánoce Vám všem a děkuji za přízeň 🙂

Pokračování textu Šťastné a veselé… (s ESP8266)

Jak jsem vrazil do věže, aneb trampoty s Turris Omnia (a drobná zmínka o ESP8266)…

20161106_113419_webZ důvodů, o kterých se zde nechci rozepisovat vyvstala potřeba pořídit nový router. I svolal jsem tedy rodinnou radu a bylo rozhodnuto, i přes hodně vysokou cenu, pořídit (dle internetu) “nejbezpečnější router“, “dělo“, … Turris Omnia od CZ.NIC. Router dorazil na prodejnu již ve čtvrtek, ale na jeho zprovoznění jsem si vyhradil až část víkendu (a dobře jsem udělal)…

Pokračování textu Jak jsem vrazil do věže, aneb trampoty s Turris Omnia (a drobná zmínka o ESP8266)…

Virtuální sériový port pomocí ESP8266

20161010_200000_webMožná si některý z čtenářů vzpomene na článek o přídavné WiFi destičce k RAMPS1.4 a tiskárně Rebel II, který jsem zde před časem uveřejnil. Zmiňoval jsem v něm program Stupido, který jsem napsal pro ověření funkčnosti “virtuálního WiFi drátu”. Program zatím nebylo možné uveřejnit, protože z ESP Core pro Arduino byla ve stabilní verzi vypuštěna podpora většího bufferu přijatých znaků a přenos tudíž občas znaky vynechával. V nové verzi (která je na githubu) už je podpora velkého přijímacího bufferu sice opět zavedena, ale vývojáři jsou zcela saturováni prací na Arduinu pro ESP32, takže se nového jádra v brzké době nejspíše nedočkáme. Je tomu asi měsíc, co jsem se po cca 20-ti letech opět potkal s člověkem, kterého si velmi vážím a který potřeboval shodou okolností “WiFi drát”, takže jsem se pustil do exhumace a vylepšování a výsledek předkládám veřejnosti…

Pokračování textu Virtuální sériový port pomocí ESP8266

ESP8266 pro začátečníka – Šablona projektu

thinkespProtože dost často dostávám dotazy (a nebo přímo prosby) na vytvoření aplikační kostry pro projekty, na kterých byste rádi pracovali, rozhodl jsem se vytvořit šablonu, která co nejvíce zjednoduší vytvoření základu, do kterého pak můžete vepsat vlastní aplikaci. Jedním z vás je i Patrik, který je v Arduinu začátečník a navíc má, na naše poměry poněkud exotickou konfiguraci HW (pracuje na Macu), se kterým jsem se domluvil na tom, že mi bude dělat testera a oponenta. Výsledkem by tedy měla být šablona, která půjde využít v Arduinu napříč platformami Windows, Linux a Macintosh. V závěrečné fázi se ještě přidal Štěpán, který šablonu také ověřil, opravil některé nejasnosti v popisu, kterých jsem se dopustil a přispěl připomínkami ke srozumitelnosti textu.

Pokračování textu ESP8266 pro začátečníka – Šablona projektu

ESP8266 pro začátečníka – jak to vlastně zapojit

esphowto_webV posledních dnech jsem se několikrát setkal s problémem, že někteří čtenáři by chtěli použít samostatný modul ESP8266 (většinou ESP-12), ale netuší, jak ho zapojit, aby správně a hlavně spolehlivě pracoval. Rozhodl jsem se tedy, že napíšu článek, ve kterém se pokusím shrnout moje zkušenosti a popsat zapojení, které používám a se kterým jsem spokojený.

Pokračování textu ESP8266 pro začátečníka – jak to vlastně zapojit