Archiv rubriky: Arduino

Články, týkající se desek, nebo procesorů AVR se zavaděčem Arduino.

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…”

ESP32 – jak opravit chybu v návrhu rozhraní na SD kartu (a troška nářků na ESP32)

Jak mi postupně roste velikost kódu pro EasyTherm do ESP8266, tak jsem usoudil, že je na čase se poohlédnout po lepší variantě. Protože jsem chtěl udržet kódovou základnu EasyThermu pokud možno stejnou pro všechny platformy z důvodu snadnějšího vývoje, padla volba na ESP32, se kterým jsem už jednu konstrukci navrhoval… Pokračování textu ESP32 – jak opravit chybu v návrhu rozhraní na SD kartu (a troška nářků na ESP32)

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

Měření výšky hladiny ve studni – “ghetto style”

Jeden z dlouholetých kolegů v práci za mnou před prázdninami přišel s prosbou o konstrukci měřiče výšky hladiny ve studni pro jeho švagra, přičemž byl velký tlak na cenu a poměrně jasná představa o měřícím principu. Původně jednoduchá konstrukce, která měla být hotová přes víkend a nainstalovaná během prázdnin se nakonec zvrtla v mnohem sofistikovanější systém (ovšem se stále zachovaným tlakem na cenu 🙂 )…

Pokračování textu Měření výšky hladiny ve studni – “ghetto style”

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)

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