Tech: Meteostanica – MeteoGeM_v1

…….článok je ešte v procese…….

Ako som postavil vlastnú batériovú meteostanicu s ESP8266 a MQTT

Už dlho ma lákala myšlienka mať prehľad o tom aká je teplota a vlhkosť nielen v byte ale aj vonku. Chcel som si to ale riešiť po svojom žiadne hotové IoT hračky ale vlastný projekt ktorý si sám zladím a prispôsobím. A tak sa zrodil nápad na dvojicu meteostaníc: jednu do bytu a druhú von s tým že obidve budú napájané z batérie a čo najviac úsporné.

Nápad a požiadavky

Moje požiadavky boli:

  1. Meranie teploty, vlhkosti a tlaku každých 15 minút.
  2. Odosielanie dát na NAS cez MQTT aby som ich mohol ďalej spracovávať.
  3. Zariadenia musia byť úplne autonómne a napájané z Li-Ion batérií.
  4. Medzi meraniami sa má celé zariadenie vypnúť aby batérie vydržali čo najdlhšie. (žiadny deep sleep mode)
  5. Sledovanie stavu batérie

Znie to jednoducho ale ako vždy… diabol je v detailoch.

Výber komponentov

Po chvíľke premýšľania som skončil pri týchto súčiastkach: ESP8266 – lacný WiFi mikrokontrolér. BME280 – senzor na teplotu, vlhkosť a tlak. Malý, presný a komunikuje cez I²C. TPL5110 – „super power timer“ od Texas Instruments ktorý dokáže úplne odpojiť napájanie a prebudiť zariadenie v zadanom intervale. Pololu U1V11F3 – DC/DC menič na stabilné 3,3V pre ESP. Regulátor zvyšuje napätie v rozsahu od 0,5 do 5,5 V na konštantnú hodnotu 3,3 V. 2× Li-Ion 18650 – zdroj energie.

Broadboard Broadboard

(….kompletný zoznam súčiastok a schéma budú doplnené…….)

Softvérová časť

Samozrejme s pomocou AI som napísal jednoduchý kód v Arduine (code MeteoGeM_v1). Funguje to takto:

  1. Po zapnutí sa ESP pripojí na WiFi.
  2. Inicializuje BME280 ak ho nenájde reštartuje sa.
  3. Získa aktuálny čas z NTP a prevedie ho na lokálny (vrátane letného/zimného času).
  4. Pripojí sa na MQTT broker (bežiaci na NAS).
  5. Zmeria teplotu, vlhkosť, tlak a napätie batérie.
  6. Všetko odošle na príslušné MQTT topicy.
  7. Vysiela DONE signál pre TPL5110 a čaká kým sa zariadenie úplne vypne.
  8. Ak sa čokoľvek pokazí (WiFi, MQTT, senzor), ESP sa jednoducho reštartuje a skúsi to znova.

TPL5110 – malý čip, veľká záchrana batérie Najväčšia výzva bola nastaviť TPL5110. Tento malý čip sa správa ako inteligentný „vypínač“ – drží ESP úplne vypnuté a prebúdza ho len v nastavených intervaloch. Nakonfigurovať ho na 15 minút bola celkom sranda. Po tom čo ESP odošle dáta musí ešte odoslať DONE signál. Tým dá TPL5110 najavo že môže zase odpojiť napájanie a čakať na ďalšie prebudenie.

Vďaka tomu mám istotu že ESP medzi meraniami nežerie batériu v deep sleep režime ale je naozaj úplne odpojené.

Testovanie a výsledky

Keď som to prvýkrát spustil, bol to krásny moment… nič nefungovalo. 🙂 ESP sa prebudilo, pripojilo na WiFi, poslalo dáta a… ostalo zapnuté…. (Popis problému v procese….)

Na NAS-e som si nastavil MQTT server a vizualizáciu dát. Teraz môžem sledovať históriu teplôt a vlhkosti a porovnávať byt vs. vonkajšie prostredie. (Popis nastavenia a testovanie v procese….)

esp mqtt

test mqtt

Testovanie a vyhodnotenie spotreby meteostanice

Po dokončení hardvéru bolo potrebné otestovať spotrebu a odhadnúť ako dlho dokáže meteostanica fungovať na batérie. Cieľ bol jasný – zistiť či 2× Li-Ion 18650 (2200 mAh, paralelne = 4400 mAh) vydržia aspoň niekoľko mesiacov pri intervale odosielania dát každých 15 minút.

Spotreba jednotlivých komponentov

Komponent Stav Prúd(mA)    Poznámka
WeMos D1 Mini    aktívny      ~150     WiFi + MQTT, cca 5 s
BME280    meranie      ~0.2     zanedbateľné oproti WeMos
TPL5110    standby      0.000035     len počas vypnutia, zanedbateľné
Pololu U1V11F3    prevádzka      –     efektivita cca 85–90 % (zohľadnené vo výpočtoch)

  Poznámka: Počas „spánku“ je WeMos fyzicky odpojený od napájania pomocou TPL5110 takže spotreba v neaktívnej fáze je prakticky nulová. Hlavnú časť dennej spotreby teda tvorí krátka aktívna fáza každých 15 minút.

Výpočet spotreby a odhad výdrže batérie

Predpoklady a hodnoty použité vo výpočtoch  

  • Prúd počas aktívnej fázy pri 3.3 V: WeMos + BME280
\[
I_{\text{active}} = 150.2\ \mathrm{mA}
\]
  • Dĺžka aktívnej fázy:
\[
t_{\text{active}} = 5\ \mathrm{s}
\]
  • Interval prebudenia: 15 min
\[
n_{\text{cyklov}} = 96\ \mathrm{cyklov/deň}
\]
  • DC/DC účinnosť:
\[
\eta_{\text{DC}} = 0.85 \ (\text{85 \%})
\]
  • Batéria: 2×18650 2200 mAh paralelne
\[
Q_{\text{bat}} = 4400\ \mathrm{mAh}
\]
  • Použiteľná frakcia kapacity (derating):
\[
f_{\text{usable}} = 0.90 \ (\text{90 \%})
\]
  • Samovybíjanie: približne 2 % mesačne
\[
r_{\text{sd,day}} \approx \frac{0.02}{30} \approx 0.00067\ \text{(zlomok/deň)}
\]

Výpočet

1) Spotreba počas jedného cyklu na 3.3 V strane

\[
t_{\text{active}} = \frac{5}{3600}\ \mathrm{h} \approx 0.001389\ \mathrm{h}
\]
\[
Q_{\text{cyklus,load}} = I_{\text{active}} \cdot t_{\text{active}}
\approx 150.2 \cdot 0.001389 \approx 0.208\ \mathrm{mAh}
\]

2) Prepočet na batériovú stranu (zohľadnenie DC/DC účinnosti)

\[
Q_{\text{cyklus,batt}} = \frac{Q_{\text{cyklus,load}}}{\eta_{\text{DC}}}
\approx \frac{0.208}{0.85} \approx 0.245\ \mathrm{mAh}
\]

3) Denná spotreba bez samovybíjania

\[
Q_{\text{den}} = n_{\text{cyklov}} \cdot Q_{\text{cyklus,batt}}
= 96 \cdot 0.245 \approx 23.52\ \mathrm{mAh/deň}
\]

4) Pripočítanie samovybíjania batérie (denný príspevok)

\[
Q_{\text{sd/day}} = Q_{\text{bat}} \cdot r_{\text{sd,day}}
= 4400 \cdot 0.00067 \approx 2.95\ \mathrm{mAh/deň}
\]

Celková denná spotreba:

\[
Q_{\text{den,eff}} = Q_{\text{den}} + Q_{\text{sd/day}} \approx 23.52 + 2.95 \approx 26.47\ \mathrm{mAh/deň}
\]

5) Použiteľná kapacita batérií (derating)

\[
Q_{\text{bat,usable}} = Q_{\text{bat}} \cdot f_{\text{usable}} = 4400 \cdot 0.9 = 3960\ \mathrm{mAh}
\]

6) Odhad výdrže

\[
t_{\text{vydrz}} = \frac{Q_{\text{bat,usable}}}{Q_{\text{den,eff}}}
= \frac{3960}{26.47} \approx 149.6\ \mathrm{dní} \approx 5.0\ \mathrm{mesiacov}
\]

Poznámky: Ak by DC/DC účinnosť bola lepšia (napr. 90 %), alebo samovybíjanie menšie, výdrž by rástla. V reálnom prostredí môže teplota výrazne ovplyvniť kapacitu batérie (nižšie teploty = nižšia použiteľná kapacita). Ak by sa aktívny čas predĺžil (napr. dlhšie WiFi pripojenie), Q_cycle sa zvýši proporcionálne.

Broadboard

Čo ďalej?

Plánujem:

Pridať webové rozhranie alebo integráciu do Home Assistanta. Vytlačiť elegantnú krabičku. Otestovat spotrebu v reálnych podmienkach.

Záver

Tento projekt mi ukázal že aj relatívne jednoduchá myšlienka (merať teplotu každých 15 minút) sa dá spraviť elegantne a efektívne ak si človek dá pozor na spotrebu energie. ESP8266, BME280 a TPL5110 sa ukázali ako ideálna kombinácia pre lacnú a úspornú meteostanicu ktorá dokáže fungovať na batériu veľmi dlho.

TheOldOne · Miroslav Gensor ·