Vývojové platformy s WiFi konektivitou jsou v bastlířské komunitě čím dál tím více populární a rozšířené. Díky poptávce se samozřejmě rozšiřuje i paleta vývojových desek, které se různě liší např. tvarem, velikostí nebo nějakou přidanou funkcí. Z vlastní zkušenosti musím podotknout, že je mezi bastlíři velmi populární malá destička, která je označována jako ESP-01. Každý asi chápe, proč je tato deska tolik atraktivní. Jedná se o nejvíce miniaturizovanou programovatelnou desku, jež je založena na čipu ESP8266, který nabízí zajímavý výkon, power management a především WiFi konektivitu. Modul je tedy zjevně ideální pro realizaci IoT projektů, ale není pro začátečníky.
Na první pohled je zřejmé, že deska nedisponuje USB rozhraním. To znamená, že budeme potřebovat převodník pro USB komunikaci. ESP-01 také neoplývá vysokým počtem vstupně výstupních pinů. Pro aplikace s větším počtem snímačů, čidel nebo spínacích prvků tedy deska vhodná není.
Nejčastější problém, který se s ESP-01 pojí, je situace, kdy zákazník očekává, že je po zakoupení v nitru desky již nahraný nějaký program. Díky tomu si zákazník desku koupí a očekává, že ji bude moci ihned používat (zadáváním AT příkazů), aniž by musel něco programovat. To může, ale také nemusí být pravda. Různých druhů a kombinací desek ESP-01 je na trhu přehršel. Nějaké desky se nám dostanou do ruky s funkčním firmwarem nahraným z výroby, tudíž je lze ovládat pouze přes UART rozhraní třeba i pomocí Arduina. Jiné desky se ale zase prodávají úplně prázdné, tudíž si my bastlíři musíme umět poradit sami. Buď si nějaký firmware podporující AT příkazy do desky nahrajeme vlastnoručně (pokud máme vhodný firmware) nebo si vytvoříme program vlastní. Nahrávání programu do desky ESP-01 ovšem není nikterak pohodlné, a proto se na daný problém zaměříme v dalších řádcích.
Jak desku naprogramovat?
Jak jsem již naznačil výše, deska nemá zabudovaný USB port. To ještě nemusí znamenat nic složitého. Stačí nám přeci klasický USB TTL převodník a do ESP-01 můžeme sypat jeden program za druhým. Svým způsobem je to pravda. Je ale třeba dát si pozor na dvě úskalí, která tato deska přináší.
Enable signál
Tato záležitost se týká i bastlířů, kteří mají to štěstí a vlastní desku s firmwarem podporující AT příkazy. ESP-01 totiž nestačí připojit k napájení a začít s ní pracovat. Deska je němá do doby, než provedeme propojení enable pinu (aktivačního pinu) CH_PD s napájecím napětím VCC. Až v tento moment se deska probudí k životu a nabootuje firmware, který má uložený v paměti. Jak propojku zrealizovat je popsáno na obrázku níže.
Naštěstí pro platformu ESP existují speciální adaptéry (např. 1464644250), které zahrnují i USB TTL obvod. Adaptéry většinou řeší enable signál za nás, což nám může značně ušetřit práci, a především si nemusíme desku hyzdit nějakými propojkami. Navíc poté můžeme ESP-01 pohodlně zasunout do USB portu počítače.
Programovací režim
Když už máme vyřešený enable signál, zdálo by se, že již můžeme desku i programovat. Bohužel tomu tak není a pro naprogramování desky budeme muset udělat ještě jeden krok, a to vytvořit další propojku. Naneštěstí ani některé adaptéry pro ESP-01 (jako právě 1464644250) již programovací režim neřeší. To znamená, že ani v tomto případě se bez propojky neobejdeme.
Programovací režim, při kterém se aktivuje zavaděč desky, vyvoláme tak, že spojíme piny GPIO 0 a GND. Musíme tak ovšem učinit ještě před tím, než přivedeme napájení do desky. Pokud spoj provedeme při aktivním napájení, deska přesto nabootuje program, který je nahraný v paměti a na programování nebude reagovat. Jak na propojku je opět ilustrováno na obrázku níže.
Jak připojit USB TTL převodník?
Když odmyslíme všechny ty propojky, USB TTL převodník se k desce připojuje naprosto standardním způsobem. Pro přenos dat je využito sériové rozhraní UART. To znamená, že musíme provést křížené zapojení vysílacího (TX) a přijímacího (RX) kanálu. Vysílací pin nalezneme na ESP-01 pod označením GPIO 1. Přijímací pin pod označením GPIO 3. Mějme na paměti, že s deskou ESP-01 můžeme použít pouze takové převodníky, které dokáží pracovat s 3,3 VDC napěťovou logikou na datových pinech. Napěťová logika 5 VDC na datových pinech by modul zaručeně poškodila.
Jak nastavit Arduino IDE?
Aby bylo vůbec možné desky s čipy ESP8266 programovat v Arduino IDE, je nezbytné pro danou platformu nainstalovat do vývojového prostředí podporu. Tímto se v tomto článku zabývat nebudeme, jelikož o tomto tématu jsme již psali zde.
Pokud tedy pomineme instalaci podpory pro desky s ESP8266 čipy, stačí nám pouze vybrat vhodnou desku v nástrojích Arduino IDE. Je to velmi jednoduché. Vybereme univerzální možnost Generic ESP8266 Module. Jiné parametry není třeba měnit. Po tomto úkonu je již možné desku naprogramovat i z prostředí pro vývoj softwaru pro Arduino.
Jak nahrát firmware s AT příkazy?
Sám výrobce čipu ESP8266 (Espressif) na svých webových stránkách nabízí volně ke stažení poslední verzi firmwaru, který podporuje AT příkazy. Najít vhodný firmware tedy není problém. Jak jej ale nahrát do ESP-01? I na to výrobce myslel a nabízí volně stažitelný nástroj ESP Flash Download Tool. Díky této utilitě je nahrání programu (nezapomeňme dodržet postup zmíněný výše) do ESP-01 hračka. Stačí se držet následujících bodů:
- stáhněte firmware (v mém případě jsem použil verzi 1.6.2) a nástroj ESP Flash Download Tool (nejaktuálnější verzi naleznete na webu výrobce nebo je možné stáhnout soubory z přílohy článku)
- spusťte ESP Flash Download Tool jako správce (pokud používáte Windows)
- vstupte do vývojářského režimu (developer) a spusťte nástroj pro verzi čipu ESP8266
- následně vyberte cesty binárních souborů podle obrázku – sekvenci a hexadecimální parametry je nutné dodržet (binární soubory naleznete ve složce firmwaru)
- ostatní konfiguraci nastavte rovněž podle obrázku – pouze COM port se bude lišit (nezapomeňte, ESP-01 musí být v programovacím režimu)
- následně stiskněte START a vyčkejte, než se dokončí nahrávání firmwaru (potvrzení hláškou FINISH)
- po dokončení nahrávání zavřete ESP Flash Download Tool, odpojte ESP-01 z USB portu a zrušte propojku pro programovací režim
- po následném opětovném připojení se nabootuje nahraný firmware a ESP-01 je možné konfigurovat prostřednictvím AT příkazů přes sériovou linku (dokument k sadě AT příkazů naleznete v příloze článku)
Tímto bych tento článek uzavřel, jelikož již padly všechny podstatné informace, které jsou nezbytné pro zprovoznění desky ESP-01. Věřím, že nyní bude práce s touto malou destičkou příjemnější.