
Před pár týdny jsem tu psal o Evropském radaru letadel a na konci slíbil kombinovanou verzi se srážkovým radarem ČHMÚ. Tak je hotová. Jmenuje se MeteoPlaneRadar a na jednom kulatém displeji přepínáte mezi letadly nad hlavou a animovaným meteoradarem.
Pořád platí to hlavní: není to mobil a ani se o to nesnaží. Mrknete na polici vedle monitoru a víte, co létá a jestli za chvíli začne pršet.
Nová obrazovka: meteoradar ČHMÚ

Srážky z ČHMÚ, ale ne jeden statický obrázek. Zařízení stáhne posledních šest snímků po pěti minutách a přehrává je ve smyčce, takže na první pohled vidíte, kam mrak táhne.
- U každého snímku je čas, „nyní“ nebo „před X minutami“, a přesný čas HH:MM.
- Legenda intenzity v dBZ i mm/h, barvy vzaté přímo z palety ČHMÚ, takže sedí s mapou.
- Obrys ČR a města jako podklad.
- Rozsah přepínáte 25, 50, 100 a 200 km.
Obraz je oříznutý do kruhu displeje, takže se nic nekreslí mimo kulatou plochu.
Letadla jsou barvená podle výšky

Obrazovka plná stejných žlutých šipek vám řekne, že tam nějaký provoz je. Obrazovka, kde barva něco znamená, vám řekne, jaký provoz to je.
| Výška | Barva | Typicky |
|---|---|---|
| Pod 2 km | Červená | Přiblížení a odlet, vrtulníky, malá letadla |
| 2 až 6 km | Oranžová | Stoupání, klesání, regionální provoz |
| 6 až 10 km | Žlutá | Nižší cestovní hladiny |
| 10 km a výš | Modrá | Dálkové lety v cestovní hladině |
Červená nad hlavou znamená, že něco klesá k přistání někde poblíž. Obrazovka plná modré znamená, že jste pod koridorem a všichni jen prolétají. Letadlo, které výšku nehlásí, se kreslí šedě, ne červeně. Kdyby se „neznámá“ hodnota schovala do nejnižšího pásma, bylo by to matoucí.

Ovládání je jen o třech gestech
Žádná tlačítka na obrazovce, celé se to ovládá prstem.
- Posunutí do strany mění rozsah, a to na letadlech i na meteoradaru.
- Krátké klepnutí vybere letadlo a otevře detail.
- Dlouhý stisk přepne obrazovku: Letadla, Meteoradar, Nastavení.
Detail letadla ukazuje výšku, rychlost, kurz, stoupání a typ letounu. A aktualizuje se živě, dokud je otevřený.
Co bylo potřeba doladit
Zajímavá část podobného projektu je jen zřídka ta, která rovnou funguje.
Pixely blikaly přesně uprostřed obrazovky
Vypadalo to jako vada displeje. Když se na levé straně, zhruba v půlce výšky, objevilo letadlo nebo srážkový mrak, pixely tam problikávaly. Jinde klid.
Příčina je souběh. Celý snímek se skladá do canvasu v PSRAM a posílá ven jednou ranou. Jenže při jednom framebufferu ta kopie zapisuje do té samé paměti, ze které panel právě čte obraz. Když kopie začne ve chvíli, kdy panel skenuje střed obrazovky, zápis předběhne čtení kolem řádku 240 a je z toho blikající pruh. Vlevo to bylo vidět jen proto, že jsem tam měl kontrastní obsah.
Oprava: kopie teď čeká na VSYNC a startuje vždy na začátku snímku, takže se drží před vykreslováním celý snímek. Zápis a čtení se už nepřekříží a pruh je pryč.
Nekompletní data už radar nevymažou
Z adsb.fi občas dostanu uříznutý JSON. Starý kód v tu chvíli vymazal seznam letadel na nulu a radar na okamžik smazal letadla. Teď se data parsují stranou a do zobrazení se pustí, až když dorazila celá a validní. Když ne, zůstane poslední platný snímek. Žádné blikání na prázdno.
Hardware
Jedna deska: Waveshare ESP32-S3-Touch-LCD-2.1.
- ESP32-S3R8, 8 MB PSRAM, 16 MB flash.
- Kulatý IPS displej 480×480, řadič ST7701 přes RGB rozhraní.
- CST820 kapacitní dotyk.
- TCA9554 I/O expandér ovládající reset, CS a napájení displeje.
Displej i mikrokontrolér jsou na jedné desce. Není co drátovat ani pájet, stačí USB-C kabel.
Nechce se vám programovat? Nahrajte binárku z prohlížeče
Tohle je pro většinu lidí ta nejlepší zpráva. Nepotřebujete Arduino IDE, žádný toolchain ani knihovny. Stačí prohlížeč Chrome nebo Edge.
Github repozitář je tady https://github.com/petus/MeteoPlaneRadar/tree/main
- Připojte desku přes USB-C k počítači.
- Otevřete esp32flasher.chiptron.cz.
- Vyberte firmware MeteoPlaneRadar a dáte nahrát.
Flasher běží celý v prohlížeči přes Web Serial. Za pár desítek sekund máte na kulatém displeji funkční radar. Kód je otevřený, takže když si to chcete přeložit sami, smíte.
Zprovoznění
Po nahrání vytvoří zařízení otevřenou WiFi síť MeteoPlaneRadar a na displeji ukáže QR kód. Naskenujete ho mobilem, vyberete svoji domácí síť, uložíte.
Polohu zadávat nemusíte, detekuje se z IP adresy. Když ji zadáte ručně, ta má vždycky přednost. A pokud si firmware překládáte sami, jeden tip do Arduino IDE: PSRAM musí být nastavená na OPI PSRAM, jinak displej zůstane černý bez jakéhokoliv jiného příznaku.
Odkud data pocházejí
| Data | Zdroj | Poznámka |
|---|---|---|
| Letadla | adsb.fi | Zdarma, bez API klíče, osobní použití |
| Srážky | ČHMÚ opendata | Data ČHMÚ, nutné uvést zdroj |
| Poloha | ip-api.com | Automatická detekce podle IP |
Vlastní ADS-B přijímač nepotřebujete. adsb.fi agreguje data z tisíců dobrovolnických přijímačů a je zdarma bez registrace, ale uveďte ho, když ho použijete, a počítejte s tím, že bezplatné API je určené pro osobní nekomerční použití. U srážek platí totéž: data jsou ČHMÚ a zdroj se uvádí.
Kód, binárka a licence
Github repozitář je tady https://github.com/petus/MeteoPlaneRadar/tree/main
Kód si můžete sami zkompilovat nebo nahrát už existující BIN soubor skrze prohlížeč.
Kliknete na http://esp32flasher.chiptron.cz/, vyberete ESP32-S3, vyberete BIN soubor z vašeho počítače, nahrajete, hotovo. Stačí reset a přihlásit se na WiFi desky, kam zadáte WiFi vaší domácí sítě.
Firmware je pod licencí MIT. Použijte to nebo to i změňte.
Nad rámec licence jedna prosba: pokud na tom budete stavět, nechte na obrazovce nastavení řádek chiptron.cz ve stejné velikosti a barvě. Nic vás to nestojí a pro mě to něco znamená. Je to prosba, ne podmínka, licence platí v plném rozsahu tak jako tak.
Když z toho postavíte něco zajímavého, rád se o tom dozvím.
Projekt vznikl s pomocí Claude AI.








Žádné sociální komentáře k dispozici.