Skip to content

About

Meteoradar od ČHMÚ a sledování letadel na 2.1" a 2.8" displeji

Resources

Stars

42 stars

Watchers

4 watching

Forks

Latest commit

 

History

77 Commits

Folders and files

Repository files navigation

MeteoPlaneRadar

Hodiny, radar letadel, srážkový meteoradar, předpověď počasí a ceny elektřiny na kulatém dotykovém displeji. Běží na deskách Waveshare ESP32-S3-Touch-LCD-2.1 a ESP32-S3-Touch-LCD-2.8C a nastavuje se z prohlížeče.

Vyvíjí chiptron.cz a Claude AI. English version: README_EN.md

Líbí se ti tenhle projekt? Jdeš do něj? Je totiž kompletně zdarma. Podpořit mě ale můžeš, pokud chceš, tím, že mi koupíš kafe na https://buymeacoffee.com/chiptroncz


Obrazovky

Co to umí

Obrazovka Co ukazuje Zdroj
Hodiny čas, datum, počasí, vteřinový prstenec Open-Meteo
Letadla letadla v okolí s ikonou podle typu, detail letu včetně trasy adsb.fi, adsb.lol
Meteoradar animovaná srážková situace ČHMÚ, ČHMÚ masked nebo RainViewer
Předpověď nyní, +3 h, +6 h, dnes, zítra, pozítří a další dny, ovzduší a pyl Open-Meteo
Cena elektřiny spotová cena na 24hodinovém ciferníku, dnes i zítra OTE přes spotovaelektrina.cz
Výroba ČR z čeho se právě vyrábí, podíl OZE, spotřeba, vývoz ENTSO-E přes energy-charts
Nastavení jas, orientace mapy, jednotky, jazyk —

Prvních šest jde vypnout, Nastavení je dostupné vždy. Rozhraní je česky nebo anglicky. Písmo pro celý displej se volí na webu: vyhlazené Inter, Poppins, Inter tenké (s diakritikou), nebo původní pixelové.

Obě energetické obrazovky jsou po aktualizaci vypnuté (zapnou se ve webovém nastavení) a dokud jsou vypnuté, zařízení si o jejich data vůbec neřekne. Zobrazená cena je burzovní, ne to, co platíte — vlastní přirážku a DPH si lze doplnit na záložce Energie, viz CHANGELOG.

Hardware

Waveshare ESP32-S3-Touch-LCD-2.1 nebo ESP32-S3-Touch-LCD-2.8C — ESP32-S3R8 (8 MB PSRAM, 16 MB flash), kulatý displej 480×480 s řadičem S T7701, expandér TCA9554. Dotyk je CST820 (2.1), respektive GT911 (2.8C). Stačí deska a USB-C kabel, nic se nepájí.

Obě desky jsou pinově totožné a jedna binárka běží na obou — firmware se při startu zeptá dotykového řadiče, kdo je, a podle toho zvolí inicializaci panelu i časování. Na kterou desku se rozhodl, ukazuje sériový výpis při startu a stavová tabulka na webu. Kdyby to na vaší desce určilo špatně (typicky vadný dotykový řadič), dá se to napevno vnutit přes BOARD_FORCE v Config.h.


První zapnutí

  1. Nahrajte firmware (viz níže) a zapněte desku.
  2. Připojte se k otevřené síti MeteoPlaneRadar — na displeji je QR kód.
  3. Otevřete http://192.168.4.1/, vyberte svou WiFi a uložte.

Přístupový bod zůstane aktivní, dokud síť nezadáte. Potom najdete nastavení na http://meteoplaneradar.local/ nebo na IP adrese, která je vypsaná na obrazovce Nastavení.

Nastavení v prohlížeči

Web běží trvale. Nastavíte v něm polohu (i vyhledáním města), které obrazovky zobrazovat a jestli se mají střídat, zdroj meteoradaru, jazyk, denní a noční jas, vzhled hodin, filtry letadel a upozornění na nouzové squawky. Je tam i dálkové ovládání (přepínání obrazovek a rozsahu bez dotyku displeje), stavová stránka, export a import nastavení a aktualizace firmwaru.

Většina položek se ukládá hned po změně. Tlačítko Uložit zůstává jen pro polohu, výběr obrazovek a zdroj meteoradaru — ty vyžadují restart zařízení.

Heslo

Heslo je nepovinné a ve výchozím stavu žádné není — aktualizace firmwaru, import nastavení i tovární reset jsou hned po nahrání přístupné komukoli, kdo se dostane na adresu zařízení. Nastavíte ho v záložce Systém: pole Současné heslo necháte poprvé prázdné a vyplníte jen Nové heslo. Jedna mezera v Novém hesle ochranu zase zruší. Uživatelské jméno na stránce /update je admin.

Heslo se ukládá v čitelné podobě. Aktualizační stránka používá HTTP Basic a knihovně se musí předat skutečné heslo, takže otisk tam použít nelze — hashovat kopii v NVS, když vedle leží totéž otevřeně, by bylo jen divadlo. Chrání to před domácností, ne před někým, kdo si přečte flash nebo odposlouchává síť.

Zapomenuté heslo jde zrušit jedině podržením tlačítka BOOT při startu (~3 s). To provede tovární reset, takže smaže i WiFi a všechna ostatní nastavení.

Ovládání

Gesto Akce
Přejetí prstem změna rozsahu (letadla, meteoradar)
Krátké klepnutí výběr letadla / přepnutí den–noc na hodinách
Dlouhý stisk vlevo / vpravo předchozí / následující obrazovka
BOOT při startu (~3 s) tovární reset

Na obrazovce Nastavení se řádkem Nahore volí, který světový směr je nahoře na radaru letadel — tedy směr, kterým se díváte z okna. Meteoradar se záměrně neotáčí.

Meteoradar: ČHMÚ, ČHMÚ masked nebo RainViewer

ČHMÚ je ostřejší, ale pokrývá jen ČR a okolí — s polohou v zahraničí zůstane obrazovka prázdná. Ukazuje všechno, co radary vidí, plnou barvou.

ČHMÚ masked je tentýž snímek, ale ČHMÚ ho porovná s měřením ve výšce 2 km: plnou barvou jsou jen místa, kde srážky opravdu dopadají na zem, zbytek (srážky, které se cestou vypaří, kovadliny vzdálených bouřek) je bledší. Na otázku „bude u nás pršet?“ odpovídá přesněji, pro sledování bouřek je lepší plný ČHMÚ. RainViewer pokrývá Evropu i svět. Jeho dlaždice končí na zoomu 7, takže bližší rozsahy se skládají ze zoomu 7 zvětšeného mocninou dvojky; obraz je hrubší, ale víc detailu RainViewer nemá. Stahuje se postupně — nejdřív nejnovější snímek, animace se dotáhne na pozadí. Legenda se přepíná spolu se zdrojem, protože každý má vlastní paletu.

Střídání obrazovek: bouřka a letadlo poblíž

Dvě volby na záložce Obrazovky dělají ze střídání něco chytřejšího:

  • Meteoradar jen při bouřce — meteoradar se do střídání přidá, jen když je do zadané vzdálenosti (výchozí 50 km) odraz aspoň zadané síly (výchozí 20 dBZ). Kontroluje se každých 5 minut nejnovější snímek ČHMÚ. Po dvou klidných snímcích meteoradar zase vypadne. Funguje i s jinak vypnutou obrazovkou Meteoradar.
  • Letadla jen když je letadlo poblíž — obrazovka Letadla se sama nestřídá, ale když se letadlo přiblíží na zadanou vzdálenost (výchozí 5 km), ukáže se na zadanou dobu (výchozí 15 s) i s otevřeným detailem a pak se pokračuje tam, kde se skončilo. Každé letadlo jednou za 15 minut.

Výhled z okna (záložka Letadla): směr okna, šířka výhledu a dohled. Letadlo ve výhledu má při upozornění přednost před bližším letadlem, které z okna vidět není. Výseč se zakreslí do radaru letadel.

Všechny tyto limity se ukládají, přežijí restart a jsou v exportu i importu nastavení.

Více WiFi sítí

Zařízení si pamatuje až tři sítě. Zapisují se v záložce Ovládání a jdou zadat i když síť zrovna není v dosahu. Při startu se zkusí nejsilnější dosažitelná, po výpadku spojení se po minutě projdou ostatní.

Home Assistant

⚠ Tato funkce nebyla vyzkoušena se skutečným Home Assistantem. Formát odpovídá dokumentaci integrace RESTful, ale ověřený zatím není. Pokud něco nesedí, dejte vědět.

Zařízení umí Home Assistantu nabídnout svá data. Funguje to opačně, než by se čekalo: Home Assistant si data sám stahuje z adresy

http://meteoplaneradar.local/api/ha

(nebo z IP adresy zařízení). Nepotřebujete MQTT, broker ani doplněk — stačí integrace RESTful, která je v Home Assistantu vestavěná. Postup:

  1. Ve webovém nastavení zařízení na záložce Home Assistant zaškrtněte Zpřístupnit data pro Home Assistant.
  2. Zkopírujte z té záložky připravený blok a vložte ho do configuration.yaml v Home Assistantu.
  3. Restartujte Home Assistant. Objeví se senzory MPR Teplota, MPR Bourka, MPR Nejblizsi letadlo a další.

Odpověď vypadá takhle (zkráceno):

{
  "temperature": 12.4, "wind_kmh": 14, "precip_mm": 0, "weather_code": 3,
  "today_min": 6.1, "today_max": 14.8, "sunrise": "06:41", "sunset": "16:52",
  "screen": "clock",
  "storm": { "active": false, "max_dbz": 16, "nearest_km": null, "frame": "10:05" },
  "aircraft": { "count": 3, "alert": false, "callsign": "CSA1234", "type": "A20N",
                "kind": "narrow-body", "distance_km": 4.2, "altitude_m": 3200,
                "in_window": true },
  "price_czk_kwh": 2.41, "renewable_pct": 18.5
}

Data jsou jen ke čtení a bez hesla — neříkají nic, co by nebylo vidět na displeji. Dokud je funkce zapnutá, zařízení hlídá bouřku (jeden snímek ČHMÚ za 5 minut) a letadla poblíž (malý dotaz jednou za 30 s), aby čísla byla živá.

Proč ne MQTT: potřebovalo by broker v síti, další knihovnu a nastavování přihlašovacích údajů. REST stačí na čtení a jde nastavit jen vložením textu. Kdyby se ukázalo, že je potřeba i ovládání z Home Assistantu, existující adresy /api/screen a /api/range jde volat přes rest_command.

Hodiny bez NTP

Čas se bere z hlavičky Date odpovědí, které zařízení stahuje tak jako tak. Neprochází UDP portem 123, nedá se zvlášť zablokovat a nečeká se na něj při startu. Časové pásmo je v TZ_INFO v Config.h.


Nahrání firmwaru

Přes USB (první nahrání a záchrana): stáhněte *.merged.bin z Releases, připojte desku do konektoru USB a nahrajte na esp32flasher.chiptron.cz v Chrome nebo Edge.

Přes WiFi: stáhněte *.ino.bin (bez merged) a nahrajte na http://meteoplaneradar.local/update. Displej během zápisu zhasne — RGB panel čte obraz z PSRAM a zápis do flash mu data odřezává. Po dokončení se rozsvítí.

Podrobnosti v OTA_NAVOD.md.


Pro vývojáře

Arduino IDE, ESP32 core 3.x (přeloženo s 3.3.10), knihovny: GFX Library for Arduino (≥ 1.5.3, přeloženo s 1.6.9), PNGdec (≥ 1.1.4, přeloženo s 1.1.7), ArduinoJson v7, QRCode (přibalen). WebServer, DNSServer, ESPmDNS, Update a Preferences jsou v core. WiFiManager se nepoužívá od 0.6.0, ElegantOTA od 0.6.2.

Nastavení IDE: ESP32S3 Dev Module, PSRAM: OPI, Flash 16 MB QIO, Partition Scheme: Custom (partitions.csv, dvě aplikační oblasti pro OTA), USB CDC On Boot: Enabled. Nebo arduino-cli compile --profile default MeteoPlaneRadar.

MeteoPlaneRadar.ino   správce obrazovek, dotyk, hlavní smyčka
Config.h              laditelné konstanty
Settings.*            nastavení v NVS + JSON pro web
Lang.*                české a anglické řetězce
Layout.*              pásy obrazovky a hlídání kolizí
WebConfig.* WebPage.h webový server, API, portál, OTA
Net.*                 sdílené HTTPS stahování
Forecast.*            Open-Meteo: předpověď, slunce, ovzduší
Energy.*              spotová cena elektřiny a mix výroby ČR
RainViewer.*          dlaždicový radar
StormWatch.*          hlídání bouřky ze snímku ČHMÚ (0.8.0)
PlaneWatch.*          hlídání letadel poblíž a výhledu z okna (0.8.0)
PlaneIcon.*           ikony letadel podle typu (0.8.0)
AAFont.* ClockFonts.h vyhlazené písmo hodin (0.8.0)
Screen*.{h,cpp}       jednotlivé obrazovky
tools/make_fonts.py   generátor ClockFonts.h z TTF/OTF

Proč se prvky nepřekrývají: obrazovka si své pásy zabere dřív, než se kreslí mapa. Cokoli umístěného podle dat (popisky měst, callsigny) si pak musí místo vyžádat, a když je zabrané, nekreslí se vůbec. Konstanty LY_* v Layout.h drží stejné prvky na stejných řádcích napříč obrazovkami.

Sériový výpis 115200 Bd přes konektor USB. Totéž bez kabelu je na stavové stránce webu.


Zdroje dat

Jen pro osobní nekomerční použití — respektujte podmínky poskytovatelů.

Letadla, registrace a typ: adsb.fi · trasy: adsb.lol · srážky ČR: ČHMÚ · srážky svět: RainViewer · počasí, ovzduší, geokódování: Open-Meteo · ceny elektřiny: OTE-ČR přes spotovaelektrina.cz · výroba elektřiny: ENTSO-E přes energy-charts (Fraunhofer ISE) · poloha podle IP: ip-api.com · mapa: hranice Natural Earth (public domain), města GeoNames (CC BY 4.0) · čas: hlavička Date (bez NTP) · rozdělení ikon letadel: ADS-B Radar

Přispěvatelé

  • Pájeníčko.cz
    • Podpora desky Waveshare ESP32-S3-Touch-LCD-2.8C. Deska se pozná při startu podle dotykového řadiče, takže jedna binárka běží na 2.1 i na 2.8C a nikdo nemusí vybírat, který soubor nahrát.
    • Legendu na meteoradaru jde skrýt — přepínač ve webovém nastavení.

Z čeho projekt vychází

Licence

MIT — viz LICENSE.txt. Vztahuje se na zdrojový kód i na binárky z něj přeložené. Od 0.6.2 v projektu není žádná copyleftová závislost.

Písma hodin (Inter, Poppins) jsou pod licencí SIL Open Font License 1.1, která vložení do firmwaru dovoluje. Přiřazení typů letadel k ikonám vychází ze schématu adsb-radar.com.

Na data se MIT nevztahuje. GeoNames, ČHMÚ, RainViewer a Open-Meteo vyžadují uvedení zdroje; Open-Meteo a adsb.fi mají bezplatné API určené jen pro nekomerční použití. Podrobnosti jsou v LICENSE.txt — přečtěte si ho celý, než to nasadíte komerčně.

Nad rámec licence budeme rádi, když na obrazovce nastavení ponecháte řádek chiptron.cz.

Historie změn: CHANGELOG.md. Verze: MeteoPlaneRadar/Version.h.

About

Meteoradar od ČHMÚ a sledování letadel na 2.1" a 2.8" displeji

Resources

Stars

42 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages