Hardware (overview)
Jednoduché schéma toku dat – od senzorů až po finální web.
Struktura meteostanice
1) Meteostanice (kombinovaná profi stanice)
Kompletní kombinovaná venkovní meteo stanice, která komunikuje po RS485 přes Modbus protokol. Stanice nemá žádné pohyblivé prvky, takže nehrozí poškození ledem a sněhem v zimním období. Je montovaná na kulatou tyč a vše je v ose. Připojena je pomocí dodaného 4-žilového kabelu.
Rozměry: průměr 9cm, výška 20.5cm
Měřené veličiny:
- teplota [°C), vlhkost [%], absolutní tlak [hPa]
- rychlost větru [m/s] (UZ sensor, průměrná rychlost + v nárazech), směr [°]
- sensor osvětlení [lx], UV sensor [-]
- kumulativní srážky [mm]
2) USB převodník (USB ↔ RS485)
Převodník zajišťuje fyzickou vrstvu mezi serverem a meteostanicí. Zároveň poskytuje i potřebné napájení, takže není nutný externí zdroj. Na serveru se typicky objeví jako klasické /dev/ttyUSB* sériové zařízení.
3) Webkamera (vizuální kontrola počasí)
Webkamera dodává aktuální snímek (např. každou minutu), který se ukládá na server a je použit pro vizualizaci i pro automatickou AI analýzu (oblačnost, mlha, déšť, tma…).
4) Server & propojení
Vše je připojeno k serveru, který řeší sběr dat, ukládání historie, tvorbu “lastdata” souborů pro web a orchestraci AI analýzy webkamery.
Software
Co běží na serveru – od komunikace až po finální prezentaci.
5) Python skript: komunikace s meteostanicí
Skript pravidelně čte data z RS485 linky, dekóduje rámce, validuje CRC a ukládá hodnoty
do “aktuálního” souboru a do historie (pro grafy a statistiky). Ve výstupním souboru je pak kolekce naměřených veličin + historie je ukládána jako CSV soubor. Tyto data jsou pak používána ve výsledné web stránce.
Není tedy nutno, aby web server a komunikace s meteostanicí běžela na stejném stroji.
Příklad výstupu:
lastdata.txt: Light: 6820.0 lux (jasno) UV index: 0.0 Temperature: 0.3 °C Humidity: 92% Wind Speed: 2.0 m/s Gust Speed: 2.6 m/s Wind Dir: 161° Rain_summ: 9.8 mm ABS Pressure: 922.7 hPa
Čtení dat z meteostanice
options:
-h, --help show this help message and exit
--port PORT Sériový port (např. /dev/ttyUSB0)
--output OUTPUT Výstupní soubor (např. vystup.txt)
--interval INTERVAL Opakování každých N sekund (v nekonečné smyčce)
6) OpenAI API modul: analýza webkamery
Modul zpracuje aktuální snímek z webkamery a vrátí strukturovaný popis (např. tma/den,
oblačnost, mlha, srážky, dohlednost). Výstup se uloží a použije na webu jako “AI komentář”.
OpenAI analýza je též použita pro lepší detekci oblohy, pro jejíž analýzu čistě jen světelný sensor z meteostanice nestačí.
Vzhledem k tomu, že OpenAI API je placená služba, modul si sám řeší i čatnost dotazů a kontroluje periodu dotazování. Pokud není stránka aktuálně využívána, není ani dotazováno OpenAI. Web stránka meteostanice pak pouze volá tento modul a zobrazuje odpověď.
7) PHP část: finální stránka (overview)
PHP skládá finální UI: webkameru, aktuální hodnoty, historii (grafy), stavové ikony, a doplňkově i AI popis.
Tahle stránka je “poslední mile” – prezentace dat uživateli.
Webkamera je pravidelně aktualizovaná + možnost prohlédnutí historie 24h zpět (snapshoty jsou generované externě přes cron),
jednotlivé karty s meteo údaji jsou pravidelně aktualizované přes Javascript,
propojení na OpenAI API je sprostředkováno externím modulem, který se stará o vše potřebné (pokud není aktuální analýza dostupná, zobrazí se text "Přemýšlím...." a odpověď se zobrazí, jakmile je dostupná.