Monitoring solárního panelu nejen pro MeshCore

Pro svůj parapetový solární systém, který primárně napájí MeshCore repeater, jsem si postavil jednoduchý monitoring. Nejde o žádné laboratorní měření ani profesionální řešení, ale o praktický způsob, jak mít přehled o tom, co se v napájení skutečně děje. Chtěl jsem vidět, kolik energie panel během dne dodává, jak se mění napětí baterie a jestli má celé řešení dostatečnou rezervu i ve dnech, kdy slunce zrovna moc nesvítí. Právě taková data jsou u solárně napájeného zařízení hodně užitečná, protože podle nich se dá poznat, jestli je návrh opravdu použitelný pro dlouhodobý provoz.

Seznam použitých dílů

Pro monitoring jsem použil jen několik běžně dostupných modulů. Celé řešení je postavené jednoduše tak, aby šlo snadno poskládat, připojit k solárnímu systému a posílat naměřená data dál.

ESP8266 Lua NodeMCU V3
Řídicí jednotka celého monitoringu. Čte hodnoty z měřicích modulů, zpracuje je a následně je odesílá dál ke zobrazení a uložení.

INA219
Modul pro měření proudu a napětí. V mém případě měří proud dodávaný solárním panelem, takže díky němu vidím, jaký výkon panel aktuálně dodává.

MAX17043
Modul pro sledování akumulátoru. Měří napětí baterie a zároveň dopočítává její stav nabití v procentech. Díky tomu mám přehled, jestli se baterie během dne dobíjí a jak moc se vybíjí přes noc.

DC/DC měnič
Měnič napětí, který převádí napětí z akumulátoru na stabilních 5 V pro napájení ESP8266. Díky němu může řídicí část běžet nezávisle na aktuálním napětí baterie.

zapojení stylem vrabčí hnízdo

Program pro ESP

Řídicím prvkem celého monitoringu je ESP8266 Lua NodeMCU V3. Program má na starosti načítání hodnot z měřicích modulů, jejich základní zpracování a následné odeslání na web, kde se data ukládají a zobrazují.

Po spuštění se nejdříve inicializuje sériová linka, I2C sběrnice a oba měřicí moduly. Komunikace s moduly probíhá přes I2C, kde jsou u NodeMCU použité piny D1 jako SCL a D2 jako SDA. Program se pokusí najít modul INA219 pro měření proudu a napětí ze solárního panelu a také MAX17043 pro měření napětí a odhadu stavu akumulátoru v procentech. Pokud některý z modulů není dostupný, program s tím počítá a místo pádu jen zapíše, že daný modul není nalezený.

Samotné měření probíhá v pravidelném cyklu po pěti minutách. Nejdříve se přečtou hodnoty z MAX17043, tedy napětí baterie a odhad její kapacity v procentech. Potom se přečtou hodnoty z INA219, konkrétně napětí na sběrnici, napětí na bočníku, proud a dopočítaný výkon. Výkon se počítá jednoduše z naměřeného napětí a proudu.

Po změření hodnot ESP zapne Wi-Fi, připojí se k domácí síti a odešle data na web pomocí HTTP GET požadavku. Do adresy se přidá tajný klíč, napětí baterie, procenta baterie, napětí ze soláru, proud, výkon, stav systému a také síla Wi-Fi signálu RSSI. Na straně webu pak tyto hodnoty zpracuje PHP skript.

Důležité je, že Wi-Fi neběží pořád. Po odeslání dat ji program zase vypne a další měření proběhne až po uplynutí nastaveného intervalu. Tím se trochu sníží spotřeba oproti stavu, kdy by ESP bylo trvale připojené k Wi-Fi. Nejde ale o skutečný deep sleep režim, protože ESP během čekání stále běží. Pro monitoring napájený ze stejného solárního systému to ale zatím stačí a hlavně je celé řešení jednoduché a dobře čitelné.

Celý program je tedy postavený poměrně jednoduše: změřit hodnoty, vyhodnotit základní stav, připojit se k Wi-Fi, odeslat data na web a zase Wi-Fi vypnout. Díky tomu získávám pravidelný přehled o tom, jak se solární panel a akumulátor během dne chovají.

PHP skripty pro web

Webová část je rozdělená do několika PHP skriptů. Každý z nich má na starosti jednu konkrétní část zpracování dat. Skript pridej.php přijímá data odeslaná z ESP a ukládá je do souboru solar.csv. Skript stahni_chmi.php stahuje každých 10 minut aktuální data o počasí z webu ČHMÚ ve formátu JSON. Na něj navazuje chmi_update.php, který stažená data zpracuje a uloží je do souboru chmi_zamberk.csv. Poslední částí je prehled_dat.php, který naměřená a stažená data zobrazí na webové stránce.

Jak je vidět z popisu skriptů, k monitoringu jsem přidal také načítání a zobrazení aktuálních meteorologických dat z oficiální meteostanice. Díky tomu můžu porovnávat výrobu solárního panelu s aktuálním počasím a lépe vidět, jak se na výkonu podepisuje slunce, oblačnost nebo déšť.

Zobrazení dat na webu

Data se ukládají do CSV souborů a následně se zobrazují na jednoduché webové stránce. Díky tomu mám přehled o aktuálním napětí baterie, výkonu solárního panelu, stavu nabíjení a zároveň i o počasí z meteostanice ČHMÚ. V grafech je pak dobře vidět, jak se výroba panelu mění během dne a jak na ni má vliv aktuální počasí.

Závěr

Celý monitoring vznikl hlavně z praktické potřeby zjistit, jak se můj parapetový solární systém chová v reálném provozu. Samotný solární panel a akumulátor sice můžou na první pohled fungovat dobře, ale bez měření člověk vlastně jen odhaduje, jestli má systém dostatečnou rezervu i při horším počasí.

Díky kombinaci ESP8266, INA219, MAX17043 a jednoduchého webového přehledu teď vidím aktuální napětí baterie, stav nabití, výkon solárního panelu i průběh hodnot v čase. Přidání dat z meteostanice ČHMÚ se ukázalo jako užitečný bonus, protože výrobu panelu můžu rovnou porovnávat s aktuálním počasím.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *