Doma navržený Nest termostat? – No proč ne

Moje nejstarší dcera bydlí v bytě, který jsme rekonstruovali. Součástí rekonstrukce byla i výměna kotle za modernější, ale z důvodů ceny zůstal zachovaný původní termostat, který sice plní základní funkci termostatu, ale s nikterak velkým komfortem. Napadlo mě tedy, že by bylo zajímavé zkonstruovat termostat vlastní s možností propojení s případnou budoucí domácí automatizací. Další úvaha pak byla, že když už budu vyvíjet takové zařízení, tak by si zasloužilo i reprezentativní vzhled. No a protože můj syn a nejmladší dcera mají ve svých bytech kotle Baxi, zatímco nejstarší dcera má Junkers, napadlo mě, že by bylo príma, kdyby temostat dokázal komunikovat s oběma typy přes jejich nativní sběrnice… Pokračování textu Doma navržený Nest termostat? – No proč ne

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

KSGER STM32 pájecí stanice pod stromeček

Po více než 20-ti letech používání začala moje historická Weller WECP-20 zlobit. Není se čemu divit – opravdu už toho má za sebou hodně, ale jsem na ni zvyklý, takže jsem nejdříve začal hledat na internetu náhradní díly. Tahle stanice se už roky nevyrábí a tomu také odpovídají ceny příslušenství. Rozhodl jsem se tedy, že než platit za náhradní díly více, než je cena nové stanice, nebo kupovat staré, použité zboží v kdovíjakém stavu, že se raději poohlédnu po novém pájedle… Pokračování textu KSGER STM32 pájecí stanice pod stromeček

PCBA – Jak jsem vyráběl a osazoval malou sérii PCB v Číně

Po dobrých zkušenostech s výrobou PCB v Seeed studiu jsem se rozhodl vyzkoušet také možnost osazení desek, tedy službu PCBA. Ve skutečnosti jsem také chtěl vyzkoušet použití SMD součástek velikosti 0402, což je vysoko nad osazovací schopnosti mých rukou a očí, ale nakonec to dopadlo trošku jinak…

Pokračování textu PCBA – Jak jsem vyráběl a osazoval malou sérii PCB v Číně

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

TOLoRa – LoRa komunikace pro Turris Omnia

Tento projekt vznikl trošku netradičně – začátek tohoto roku jsem trávil upoutaný na lůžku, ale – asi to většina z vás zná – přes to, že je tělu mizerně, tak mozek se zastavit nedá. Obklopený články z internetu o long range bezdrátových komunikacích a neslavném konci projektu Turris Gadgets jsem dostal nápad, přispět také svojí troškou do mlýna. Stanovil jsem si následující cíle:

  1. NEdělat zařízení ve formě USB donglu – jednak to zabírá cenný USB port a druhak to na mě působí jako nouzové řešení, když jsou zde jiné možnosti připojení
  2. Naučit se (čti “pohrát si s”) nějaký zajímavý mikrokontrolér, se kterým jsem ještě nepracoval
  3. Rozšířit svoje znalosti o Embedded Linuxu

Jakmile se mi tedy udělalo natolik dobře, že jsem mohl zasednout k počítači, dal jsem dohromady zařízení, které vám předkládám…

Pokračování textu TOLoRa – LoRa komunikace pro Turris Omnia