Chytrý měřič spotřeby s ESP32 a modulem INA219 – připojení na internet

Pokračování článku o měřiči spotřeby s INA219. V něm je popsán hardware a to, jak funguje samostatně. No a co když k tomu přidáme připojení na internet?


Mít zařízení s ESP32 a nepřipojit ho na internet by byla škoda, ne? Tak co to umí?

Software v aktuální verzi generuje CSV soubor, do kterého zapíše novou řádku:

  • každou minutu,
  • pokaždé, když zařízení přejde z režimu nízké spotřeby na vysokou či opačně (kde práh mezi vysokou a nízkou spotřebou lze nastavit v menu); zapisování řádků v tomto případě lze vypnout

Při skončení měření nebo v situaci, kdy už se CSV soubor nevejde do paměti (a nebo na stisk tlačítka, pokud vás zajímají průběžné hodnoty) odešle soubor na server.

Co je v souboru?

  • Relativní čas měření (počet sekund od začátku)
  • Napětí, proud a příkon/výkon v daném okamžiku
  • Celková dodaná kapacita mAh od začátku měření
  • Minimální a maximální napětí v uplynulé minutě
  • Maximální proud v uplynulé minutě
  • Minimální a maximální napětí od začátku měření
  • Maximální proud od začátku měření
  • Informace o režimu vysoké spotřeby:
    • Počet cyklů vysoké spotřeby
    • Celkový čas vysoké spotřeby (sec)
    • Celková spotřeba v mAh a mWh
    • Délka posledního cyklu vysoké spotřeby
    • Průměrná a maximální délka cyklu vysoké spotřeby
    • Maximální proud v posledním cyklu vysoké spotřeby
  • Informace o režimu nízké spotřeby:
    • Celkový čas nízké spotřeby (sec)
    • Celková spotřeba v mAh a mWh
    • Maximální proud v posledním cyklu nízké spotřeby

Jak to vypadá? Na následující ukázce je vidět zařízení, které se každých 15 minut probudí, změří a odvysílá data a opět se uspí.

Bílé řádky jsou periodické záznamy (každou minut), žlutě podbarvené jsou záznamy událostí. Události jsou identifikované v druhém sloupci. „HP“ = přechod do vysoké spotřeby, „LP“ = přechod do nízké spotřeby.

Je tu krásně vidět, že kvůli proudovým špičkám poklesne v okamžiku vysílání napětí měkké baterie – a do dost podstatně.

V průběhu špičky (tj. mezi 27 752,69 a 27 761,42 sec) byl špičkový odběr až 302 mA a napětí baterie pokleslo z původních 5,15 V až na 4.08 V.

Není divu, že po dalším vybití baterie se zařízení v průběhu vysílání začalo vypínat – nestačilo napětí na provoz. Nicméně měřič spotřeby umožnil zjistit problém, a doplnění velkého kondenzátoru situaci výrazně vylepšilo. Jak je vidět na dalším obrázku…

… špičkový odběr ze zdroje klesl na 196 mA a napětí pokleslo na 4,38 V – tedy pokles byl o 0,3 V menší. To prodloužilo dobu běhu zařízení na baterie o další kus.

Hurá, tedy k něčemu to je.


Tuto verzi software najdete zde.

Oproti verzi „bez internetu“ je navíc potřeba jedna knihovna:

  • ArduinoJSON 5.13.5  (pozor, ne poslední verze!)

V konfiguraci desky v Arduino IDE musí být nastaveno takové rozdělení flash, aby tam byl alespoň kus pro filesystém SPIFFS (třeba Partition scheme: Default 4 MB with SPIFFS).


Hlavní menu je rozšířené o volbu, jaká data se mají ukládat – žádná / jen záznamy jednou za minutu / vše = i přechody zařízení mezi nízkou a vysokou spotřebou.

Po spuštění měření je nově přidaná funkce tlačítka „vpravo“ – odešle průběžná data ze stávajícího záznamu, ale pokračuje v záznamu nadále. Tj. umožňuje nahlédnout do rozpracovaných dat.

Tlačítkem „vlevo“ se měření ukončí a data se odešlou na server.


Jak se konfiguruje připojení k Wi-Fi?

V kódu aplikace konfiguraci WiFi nenajdete. Používám WiFi manager, konfigurace se tak dělá přes webový prohlížeč.

Při prvním spuštění zařízení se zobrazí informační obrazovka:

Připojte se z telefonu na uvedené jméno WiFi sítě (RA_nnnnnnnn – číslo se bude lišit, je unikátní pro konkrétní ESP32). Heslo k připojení je aaaaaaaa .

Pak v prohlížeči zobrazte adresu 10.0.1.1. Měla by se objevit stránka s modrým menu:

Na první obrazovce klikněte na „Configure WiFi“.

Na druhé obrazovce nejprve v horní části klikněte na jméno WiFi sítě, kterou chcete používat, a doplňte k němu připojovací heslo.

V druhé půlce stránky je konfigurace připojení na server.

Pak stiskněte Save. Zařízení se zrestartuje (pokud ne, stiskněte reset) a mělo by se připojit k WiFi i na server.

Konfigurační portál se od toho okamžiku již nebude zobrazovat. Pokud ho chcete vyvolat, držte tlačítko „nahoru“ a stiskněte reset (či zapojte napájení).


Kam se data odesílají a jaká „konfigurace serveru“ je myšlena?

Vzhledem k tomu, že mám k dispozici hotové řešení pro příjem dat z malých zařízení, posílá se to do něj. Pokud to chcete změnit, najděte v ina219_app_wifi_g2.ino řádky s voláním ra->sendBlob() a nahraďte je POSTem dat na nějaký váš server.

No a nebo si to můžete vyzkoušet s mým řešením.

Zaregistrujte si uživatelský účet na této adrese. V menu Zařízení založte zařízení a pak ho rozklikněte v seznamu. Objeví se konfigurační hodnoty pro výše uvedenou konfigurační obrazovku zařízení:

Pak můžete měřit. Po každém odeslání se na serveru objeví soubor. Nahrané soubory najdete v detailu zařízení – odkaz je dole.

Výpis souborů vypadá takto:

Datum (kliknutím na něj soubor stáhnete) je čas začátku záznamu. Jméno souboru obsahuje následující části:

  • load nebo source – měřil se spotřebič nebo zdroj?
  • 16V-400mA – nastavený rozsah měření
  • 100mA – nastavená hodnota hranice mezi nízkou a vysokou spotřebou
  • Y – zaznamenávaly se události (přechody mezi nízkou/vysokou spotřebou)
  • Koncovka rozlišuje typ souboru:
    • bez koncovky – začátek záznamu. Končí buď ukončením měření, nebo tím, že došla paměť v zařízení a bylo potřeba ho odeslat na server.
    • cont – pokračování k předešlému záznamu, tj. poté, co došla paměť a záznam byl odeslán na server. Čas v souboru pokračuje od začátku měření.
    • temp – jedná se o „ručně“ (stisknutím šipky doprava) odeslaná rozpracovaná data. Záznam na zařízení pokračuje dále a bude odeslán včetně dat zahrnutých v souboru „temp“.

Serverovou stranu časem také vypublikuji, umí toho trochu víc než jen příjem souborů.

1 komentář

Filed under Mikrokontroléry - Arduino, ESP8266, Picaxe, ..., Počítače, vývoj HW a SW

One response to “Chytrý měřič spotřeby s ESP32 a modulem INA219 – připojení na internet

  1. Pingback: Stavíme chytrý měřič spotřeby s ESP32 a modulem INA219 | 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