Stavíme chytrý měřič spotřeby s ESP32 a modulem INA219

Měřič spotřeby do 32 V a 2 A s rozlišením až 0.1 mA se dá postavit jen ze dvou modulů – ESP32 s integrovaným OLED displejem, a breakout destičkou s INA219.

Má ale cenu si ho stavět, když se dá koupit za pár dolarů hotový? Myslím, že ano. Například proto, že se nechci omezovat jen na napájení přes USB. Nebo proto, že nechci, aby se měřící obvod napájel z měřeného okruhu (což se ale dá také koupit hotové). Nebo proto, že chci měřit low-power zařízení, která většinu času nedělají nic a jen jednou za dlouhou dobu chvíli vysílají – a zde většina zařízení dostupných za rozumnou cenu již nepomůže. A připojení na internet, to už jsem zmiňoval?


Co to umí?

Začnu od konce – co hotové zařízení umí?

  • Měřit napětí/proud/spotřebu do 32 V / 2 A. Pro menší rozsah 16 V / 400 mA pracuje s rozlišením 0.1 mA.
  • U low-power zařízení dokáže odděleně měřit dobu/spotřebu strávenou v režimu malé spotřeby (sleep) a v aktivním režimu.
  • Měřit buď parametry zdroje nebo spotřebiče (před nebo za měřicím rezistorem).

Možná ještě o kus zpět k „uživatelskému pohledu“: co je vidět na displeji?

Hlavní obrazovka:

V levém sloupci:

  • Aktuální proud.
  • Aktuální napětí.
  • Aktuální příkon zátěže / výkon zdroje (podle toho, co se měří).
  • Průměrný příkon zátěže / výkon zdroje (podle toho, co se měří).

Pravý sloupec:

  • Doba měření.
  • Maximální proud v této minutě.
  • Maximální proud za celou dobu měření.
  • Celková kapacita/spotřeba v mAh.

Napětí:

Levý sloupec:

  • Aktuální napětí.
  • Minimální napětí v této minutě.
  • Maximální napětí v této minutě.
  • Před jakou dobou bylo naměřeno nejmenší napětí.

Pravý sloupec:

  • Doba měření.
  • Minimální napětí za celou dobu měření.
  • Maximální napětí za celou dobu měření.
  • Před jakou dobou bylo naměřeno největší napětí.

Proud:

Levý sloupec:

  • Aktuální proud.
  • Maximální proud v této minutě.

Pravý sloupec:

  • Doba měření.
  • Maximální proud za celou dobu měření.
  • Před jakou dobou byl naměřen maximální proud.

Informace o low-power zařízení 1/2:

Levý sloupec:

  • Aktuální proud. Žlutě = pod limitem nastaveným pro „low power“, červeně nad limitem.
  • Celkový čas strávený v low power režimu.
  • Celková kapacita mAh odebraná v low power režimu.
  • Celkový příkon odebraný v low power režimu.

Pravý sloupec:

  • Doba měření.
  • Celkový čas strávený v high power režimu.
  • Celková kapacita mAh odebraná v high power režimu.
  • Celkový příkon odebraný v high power režimu.

Informace o low-power zařízení 2/2:

Levý sloupec:

  • Aktuální proud.
  • Počet ukončených cyklů high power režimu.
  • Celkový čas strávený v high power režimu.
  • Délka posledního cyklu high power.

Pravý sloupec:

  • Doba měření.
  • Před jakou dobou začal poslední ukončený cyklus high power?
  • Průměrná délka high power režimu.
  • Maximální délka high power režimu.

Na posledních dvou ukázaných obrazovkách tedy vidíme data zařízení, které se každých 15 minut na průměrně 8.66 sekundy zapne a komunikuje. Poslední komunikační cyklus začal před 195 sekundami.

Tak co, stojí to za stavbu?


Stavba zařízení

Jako mikrokontrolér používám svůj oblíbený modul LilyGO TTGO T-Display – za 7 USD je ESP32 i s integrovaným OLED displejem 1.14″ 135×240. Pinout. Celkové schema.

Vlastní měření zajistí breakout destička se senzorem INA219 a měřicím rezistorem. Datasheet k INA219.

Vstup a napájení jde přes samici mikroUSB konektoru na breakout destičce. Paralelně je připojena reproduktorová svorka pro snadné připojení vodičů bez konektoru.

Výstup je USB-A samice na breakout destičce. Paralelně je připojena reproduktorová svorka pro snadné připojení vodičů bez konektoru.

To, že vstupy a výstupy jsou paralelně ve dvou formátech umožňuje i kombinace – napájet USB kabelem, ale odebírat jen kusem drátu, či opačně.

Pak už stačí čtyři libovolná tlačítka. A to je vše.

Schema je triviální.

Všimněte si propojení i datových pinů USB konektorů. To umožňuje, aby zařízení připojené po USB komunikovalo se zdrojem – a typicky pak funguje QuickCharge.

Dále si všimněte, že mikrokontrolér a INA219 jsou napájené ze samostatného mikroUSB konektoru. Nepočítám s napájením z měřeného obvodu.

Schema jako PNG ke stažení.

Mechanická konstrukce? Ať si každý udělá, jak chce. Já zvolil nejjednodušší otevřenou konstrukci na kostře z plexiskla. Reprosvorky jsou přišroubované na kovových úhelnících. Vše spojeno šrouby.


Aplikace

Aplikace je zde na githubu.

Pro kompilaci používám Arduino IDE 1.8.12 s ESP32 core 1.0.4.

Jsou potřeba následující knihovny nainstalované v library manageru:

Pokud by vám aplikace nefungovala, že INA219 nevidí, zkuste IIC scanner, zda nemá jinou adresu než defaultních 0x40.


Ovládání aplikace

Menu

Po spuštění se objeví menu. Šipkami nahoru a dolu se volí položka, šipkou doprava se potvrzuje, šipka doleva je „zpět“.

Šipka vlevo v hlavním menu spouští měření (stejně jako potvrzovací šipka vpravo na položce „Spustit mereni“).

V obrazovce pro nastavení limitu proudu pro low/high power se šipkami nahoru a dolů mění číslo, šipkami doprava a doleva se posunuje kurzor. Šipka doleva na první číslici = zpět bez uložení. Šipka doprava na poslední číslici = uložit hodnotu.

Poslední položka v menu, „Vymazat pocitadla“, smaže všechny sumární (celkové) údaje a hodnoty „za poslední minutu“.

Měření

Šipkami nahoru a dolů se přechází mezi obrazovkami.

Šipka vlevo („zpět“) přechází zpět do hlavního menu.

Po dobu, co jste v menu, se neměří. Nicméně když následně znovu spustíte měření, pokračuje se v načítání hodnot dál (tj. čas pokračuje). Pokud chcete začít nové měření, zvolte nejprve v menu „Vymazat pocitadla“.


Připojení na internet?

Je popsáno v druhém dílu.

Advertisement

1 thought on “Stavíme chytrý měřič spotřeby s ESP32 a modulem INA219

  1. Pingback: NodeMCU jako low-power zařízení? | 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 )

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