ESP8266 prakticky aneb jak jsem vynalézal kolo a vy už byste nemuseli

Rozhodl jsem se, že spotřebuji nějaké ESP8266-12, které jsem si poháněn skromností v dobré víře před delší dobou objednal a nakoupil, ale dosud nepoužil. Tehdejší cena byla výrazně nižší než u Arduino NANO, které zatím používám nejčastěji. Vždyť to přece jistě není nic těžkého, všechno je popsané a návodů je dostatečně. Stačí použít programátor, naprogramovat „poštovní známku“ ESP8266-12, pak ji připájet a hurá na další projekt.

Chyba lávky. Mořil jsem se s tím dva dny, až jsem musel využít znalostí mého kamaráda Vládi a společně jsme to překonali. Vám to napíšu v bodech – všechny jsou důležité a některé jsou dokonce vykoupené nechtěnou obětí ESPčka, doprovázenou únikem magického dýmu.

  • Napájení nesmí překročit 3,3 V (fakt NE, ani na chvíli, ani trochu, ani na signálech). Může to sice vydržet, ale většinou to dopadne špatně.
  • Proud na jedné „nožičce“ nesmí překročit 12 mA, což při 3,3 V vychází na bezpečný rezistor 330 Ohm (úplně přesně je to 275 Ohm), ale nehnal bych to tak do krajnosti. Maximální celkový (součet na všech „nožičkách“) bezpečný proud je prý 200 mA. I tak bych raději používal rozumný 1k Ohm rezistor a kdybych potřeboval víc výstupů, tak dám rezistory raději až kolem 5k Ohm.
  • Na programování a testování si pořiďte speciální destičku se zlatými pérky. Stačí na AliExpressu dát vyhledat „ESP8266 ESP32-WROVER Development Board Test Programmer“. Bude se vám hodit i na ESP32 a na ESP8266-01. Prodává to hodně firem a destička má USB-C konektor. Zde je příklad, jak ta destička vypadá:

Má to trochu nevýhodu, že zlatá pérka nepruží tak, jak bych čekal. Musel jsem podložit ESP dvěma vrstvami tužšího kartonu (z ruličky od toaletního papíru), aby nedosedlo přímo až na destičku, ale bylo asi o milimetr výš. To způsobí, že se dotýká kontaktů úplně spolehlivě. Nakonec se to pomocí toho kartonu lépe vycvakne ven.

  • Zde je popis jednotlivých pinů. Obrázek jsem sehnal na: https://www.instructables.com/NodeMCU-ESP8266-Details-and-Pinout/
  • Nemyslete si, že můžete použít všechny piny, jak jste zvyklí u Arduino NANO. Mně se povedly rozjet pouze GPIO0, GPIO02 a GPIO15. A to ještě na GPIO02 je připojená vestavěná modrá LEDka.
  • Rozhodně si nejdřív zkuste „zablikat“ na nějakém pinu a ověřit si logickou sondou, že to funguje.
  • I když dáte blikat na GPIO100 (nebo jiné nesmyslně vysoké číslo), tak program to lehce zkousne a nenapíše chybu. Pak můžete na GPIO10 hledat signál několik hodin.
  • Když už vám běží program na ESPčku, které je v programátoru, nemáte vyhráno. Jakmile ho vyndáte a připojíte napájení, blikne vestavěná modrá LEDka, ale dál se zdánlivě nic neděje. Rozhodně neběží program, který očekáváte. Musíte připojit 10k Ohm rezistory mezi GND a GPIO15, GPIO02, Enable a Reset. 4 nožičky, 4rezistory.
    • GND ----[ 10k ]---- GPIO015 - (pin číslo 16)
    • GND ----[ 10k ]---- GPIO02 -- (pin číslo 17)
    • GND ----[ 10k ]---- Enable -- (pin číslo 3)
    • GND ----[ 10k ]---- Reset --- (pin číslo 1)
  • 10k Ohm je doporučená hodnota, takže jsem se vztekal zbytečně, když mi to s 1k Ohm nechodilo. Nesnažte se ušetřit rezistory tak, že byste pro více „nožiček“ použili jeden rezistor a sdružením dosáhli menšího počtu. Nestojí to za ten ztracený čas.
  • Číslování a označování „nožiček“ – v tomto případě spíš kontaktních plošek – je v různých materiálech na webu různé – není jednoznačné. Buďte obezřetní. Nejlepší je ujistit se logickou sondou. Pak máte jistotu, že obsluhujete správnou „nožičku“.
  • ESP8266 je extrémně citlivé na statický náboj a vřele se doporučuje používat mikropájku namísto trafopájky. Tím jsem se řídil, přestože mne trochu rozčilovalo čekat, než se páječka rozehřeje.