ESP8266 – poznámky

Programování mikrokontroléru ESP8266 – rozcestník na zdroje a poznámky. Můj interní Google Doc překlopený do formy blog postu. Třeba vám pomůže. Ekvivalentní post k ESP32.

Základní odkazy:

  • Dokumentace k ESP8266 core pro Arduino. Popis všech základních komponent.
  • Nástroj pro ladění problémů: ESP exception decoder. Nainstalujte si do Arduino IDE, objeví se v menu Tools. Pokud v aplikaci dojde k exception, nakopírujte ji ze serial monitoru do tohoto nástroje a ukáže vám stacktrace, kde k chybě došlo.
  • ESP-NOW – jednoduchý bezdrátový protokol pro rychlé a energeticky levné předávání zpráv mezi ESP8266 a ESP-32. Není to wifi. Jiná dema.

Poznámky k hardware:

  • ADC pin má 10bit rozlišení (0-1023).
    • Rozsah napětí u ADC u bare modulu (ESP-07, ESP-12, …) je 0 – 1 V.
    • Ale u development boardů (NodeMCU atd.) to bývá 0 – 3.3 V.

Deep sleep / low power režim:

  • Popis, jak to funguje a jak to zapojit.
  • Maximální doba deep sleep se dá zjistit z ESP.deepSleepMax() , není to konstanta (!),  jde o něco přes 3 hodiny.
  • Aby se ESP8266 probudilo z deep sleep po uplynutí timeru, je třeba spojit D0 (GPIO16) s RST.
    • Nicméně pokud to je spojené, nefunguje programování přes USB. Je tedy potřeba si na spojku dát jumper a pro programování ho rozpojit.
    • Pokud se používá „staré“ NodeMCU (LED na 16/D0), pak nelze souběžně používat LED!
  • Naměřené hodnoty s běžným „NodeMCU“ development modulem při napájení 5 V přes pin VIN:
    • nejvyšší špičky spotřeby: 310 mA (trvají řádově 10-30 ms)
    • běžný provoz s WiFi: průměrně 70-80 mA
    • běžný provoz, WiFi vypnuto: 20 mA
    • deep sleep: 1.7-2.2 mA podle typu desky (tedy s běžným 2000 mAh akumulátorem a většinou času v deep sleep mode by mělo zařízení fungovat až cca 40 dní)
    • při kombinovaném provozu, kdy se modul každých 15 minut probudí, změří teplotu ze dvou DS18B20, pošle data na internet (což vše dohromady trvá cca 9 sekund) a zase se uspí – průměrná spotřeba (přes celou hodinu) 2.8 mA.
      • Tedy spotřebuje 2.8 mAh každou hodinu, z 2000 mAh baterie (při předpokladu, že z ní kvůli proudovým špičkám využijeme jen cca 80 %) by tak měl žít cca 23 dní.
      • Při napájení čtyřmi alkalickými bateriemi AA (nejlevnější z Lidlu) vydrželo zařízení fungovat 40 dní.
  • Jak zajistit, aby aplikace neztratila data po dobu deep sleep? To je nutné třeba u počítadla impulzů z měřidla rychlosti větru, srážkového čidla, plynoměru, aby nebylo potřeba posílat po každém kliknutí data na server. ESP8266 má „RTC Memory“ (popis) – 128 slotů x 4 byte (v aplikaci použitelné jako 512 byte v kuse). Jde o SRAM, jejíž obsah přežije deep sleep a reset (ale ne výpadek napájení). Ukázka použití celého bloku s detekcí konzistence pomocí CRC.
  • Po dobu deep sleep neběží žádné hodiny.

Zapojení:

  • Nejstarší „žluté“ NodeMCU má builtin LED na 16 = D0; novější „zelené“ má LED na 2 = D4.

Důležité knihovny:

  • tzapu WiFiManager – Nepište jméno wifi sítě a její heslo do zdrojáku, ale zadejte je do aplikace z mobilky přes webový browser. Odkaz na development verzi, která podporuje i ESP-32.
  • joysfera Tasker – Periodické či odložené spouštění úkolů. Strašně jednoduché a dobře funkční. Článek od autora (Petr Stehlík).

1 komentář

Filed under Mikrokontroléry - Arduino, ESP8266, Picaxe, ...

One response to “ESP8266 – poznámky

  1. Pingback: ESP-32 – poznámky | pebrou

Zanechat odpověď

Vyplňte detaily níže nebo klikněte na ikonu pro přihlášení:

Logo WordPress.com

Komentujete pomocí vašeho WordPress.com účtu. Odhlásit /  Změnit )

Google photo

Komentujete pomocí vašeho Google účtu. Odhlásit /  Změnit )

Twitter picture

Komentujete pomocí vašeho Twitter účtu. Odhlásit /  Změnit )

Facebook photo

Komentujete pomocí vašeho Facebook účtu. Odhlásit /  Změnit )

Připojování k %s