Doposud jsme se v našem seriálu pohybovali v bezpečných vodách hotových produktů. Koupili jsme krabičku, zapojili ji do zásuvky a fungovalo to. Pro většinu lidí to stačí. Ale pokud čtete tento seriál, pravděpodobně vám "většina" nestačí.
Tento díl je věnován všem kutilům, nadšencům a "hračičkám", které láká svět Arduina a vlastního hardwaru. Možná vás štve, že komerční senzor stojí pětistovku, přitom součástky uvnitř mají cenu padesáti korun. Možná potřebujete měřit něco specifického, na co se senzor neprodává. A nebo prostě jen chcete zažít ten pocit vítězství, když vlastnoručně vyrobená elektronika poprvé ožije.
Vítejte u ESPHome. Toto je nástroj, který boří bariéru mezi složitým programováním mikrokontrolérů a chytrou domácností. Umožní vám postavit si vlastní zařízení na míru, aniž byste museli být vystudovaní elektrotechnici.
V tomto a příštím díle si postavíme vlastní chytré zařízení. Nebojte, ještě nebudeme žhavit páječku ani leptat plošné spoje. Začneme s tím, co se pravděpodobně mnoha z vás válí v šuplíku – s vývojovou deskou (třeba z nějakého staršího pokusu s Arduinem). Naším cílem bude vytvořit zařízení s jednou LED diodou a jedním tlačítkem, které bude plně komunikovat s Home Assistantem.
Proč ESPHome (a proč ne C++)
Možná máte představu, že výroba elektroniky vyžaduje, abyste byli zdatní programátoři. Běžně se totiž mikrokontroléry programují v jazyce C nebo C++.
Pokud byste šli touto "klasickou" cestou (známou z prostředí Arduino IDE), čekalo by vás:
- Studování knihoven: Místo samotného tvoření byste trávili hodiny hledáním správných knihoven pro každou součástku a studováním jejich dokumentace. Jedna knihovna pro teploměr, druhá pro displej, třetí pro Wi-Fi... a pak byste řešili, proč si ty knihovny navzájem nerozumí.
- Složitý kód: Ruční psaní logiky pro připojení k Wi-Fi, ošetřování výpadků sítě, řešení asynchronní komunikace a správa paměti, aby se čip nezasekával.
- Dvojí práce: To nejhorší nakonec – museli byste programovat obě strany. Naprogramovat čip, aby posílal data (např. přes protokol MQTT), a poté ručně konfigurovat Home Assistant, aby tato data uměl přijmout a zobrazit. Jakákoliv změna by znamenala úpravu na dvou místech.
ESPHome na to jde jinak. Funguje jako chytrý generátor. Vy mu pomocí přehledné konfigurace (YAML) pouze nadefinujete parametry ("Tlačítko je na pinu 5, dioda na pinu 2"). ESPHome si tento "recept" přečte a všechnu tu špinavou práci v C++ udělá na pozadí za vás. Hlavní výhodou je centralizace. V jednom souboru definujete chování čipu i to, jak se má tvářit v Home Assistantovi. O zbytek se postará "Native API", díky kterému se zařízení spáruje a nastaví úplně samo.
A je tu ještě jedna revoluční vlastnost: OTA (Over-The-Air) aktualizace. Zatímco u klasického Arduina musíte pro každou změnu v kódu fyzicky dojít k zařízení a připojit ho kabelem k počítači, u ESPHome kabel použijete jen poprvé. Jakmile je zařízení k vašemu serveru Home Assistant, všechny další úpravy (třeba změnu citlivosti senzoru) posíláte pohodlně přes Wi-Fi i když je senzor zavřený v krabici na půdě.
Podporované rodiny čipů
Projekt ESPHome původně vznikl s jasným cílem – ovládnout čipy od společnosti Espressif. Právě legendární ESP8266 a jeho modernější a výkonnější nástupce ESP32 jsou dodnes absolutním základem většiny kutilských IoT projektů. Pokud doma otevřete chytrou zásuvku nebo žárovku, je velká šance, že uvnitř najdete právě jeden z těchto čipů.
Vývojáři však nezůstali jen u nich. Podpora se postupně rozšiřuje i na další rodiny mikrokontrolérů. Dnes tak můžete ESPHome nahrát třeba do populárního RP2040 (známého z Raspberry Pi Pico W) nebo do čipů od Nordic Semiconductor (nRF52), Realtek (RTL87xx) či Beken (BK72xx). Tyto "exotičtější" čipy často najdete v nejlevnějších zařízeních z čínských e-shopů, která se dříve nedala jednoduše integrovat.
Je ale dobré mít na paměti, že podpora pro žhavé novinky má vždy určité zpoždění. Než se nejnovější procesor objeví v seznamu podporovaných, chvíli to trvá. Kompletní a aktuální přehled všech podporovaných rodin najdete vždy přímo na úvodní stránce projektu esphome.io.
Co budeme používat my? I když je výběr široký, pro naše návody zůstaneme u osvědčené klasiky – desky s čipem ESP32.
Příprava prostředí: Instalace doplňku
Abychom mohli začít "vařit", musíme si připravit kuchyň. Nainstalujeme si do Home Assistanta doplněk, který nám umožní firmware vytvářet i nahrávat.
-
Otevřete Home Assistant.
-
Jděte do Nastavení -> Doplňky -> Obchod s doplňky.
-
Do vyhledávání napište
ESPHome. -
Klikněte na oficiální doplněk ESPHome a dejte Instalovat.
-
Tip: Po instalaci zapněte přepínač Zobrazit v postranním panelu, ať ho máte po ruce.
-
Zapněte také Spustit při startu a Strážní pes (Watchdog).
-
-
Klikněte na Spustit.
Nyní v levém menu uvidíte novou položku ESPHome. Když na ni kliknete, otevře se vám dashboard (nástěnka), který bude zatím prázdný.
Co nás čeká příště?
Máme hardware (desku ESP32), máme software (nainstalovaný doplněk) a máme teorii. V příštím díle přejdeme k praxi:
-
Vytvoříme konfiguraci pro naše první zařízení.
-
Naučíme se, jak bezpečně zadat Wi-Fi údaje (aby nebyly natvrdo v kódu).
-
Ukážeme si, jak využít tlačítko a LED diodu, které jsou přímo na vývojové desce, takže nebudete muset nic zapojovat.
Připravte si USB kabel, jdeme stavět!