Meteorologická stanice
s integrací API
a webovým dashboardem
Marek Walkarz, Matyáš Krabica, Ondřej Kufa, Erik Herremans
V rámci naší ročníkové práce jsme se rozhodli propojit světy mikrokontrolérů, programování v Pythonu a moderních webových technologií. Cílem projektu bylo vytvořit funkční meteorologickou stanici, která dokáže nejen sbírat data v reálném čase pomocí fyzických senzorů, ale také je kombinovat s daty z globálních meteorologických služeb a vše přehledně zobrazit uživateli.
Architektura řešení a technické vybavení
Projekt je rozdělen do tří klíčových segmentů: fyzická část (hardware), datová vrstva (Python a databáze) a uživatelské rozhraní (web).
Hardwarová specifikace
Základem fyzické stanice je Arduino UNO R3 (klon s čipem CH340), což je osvědčená vývojová deska založená na mikrokontroléru ATmega328P. Pro snímání veličin jsme zvolili vysoce přesný modul BME280, který je schopen měřit teplotu, vlhkost i barometrický tlak zároveň.
Naměřené hodnoty jsou ihned zobrazeny na modrém LCD displeji 1602 s I2C převodníkem, což minimalizuje množství potřebné kabeláže. Celé zařízení je uloženo v ochranném krytu z materiálu PLA.
Softwarové řízení Arduina
Kód pro Arduino je postaven na jazyce C/C++ s využitím tří stěžejních knihoven:
Wire.h: Zajišťuje komunikaci po sběrnici I2C mezi Arduinem, senzorem a displejem.
Adafruit_BME280.h: Umožňuje snadné čtení dat ze senzoru prostředí.
LiquidCrystal_I2C.h: Stará se o formátování textu na displeji a ovládání podsvícení.
Zpracování dat a backend v Pythonu
Srdcem celého systému je serverová aplikace napsaná v jazyce Python s využitím frameworku Flask. Tato část funguje jako "mozek" projektu, který vykonává následující operace:
1. Sběr dat z Arduina: Pomocí knihovny PySerial program načítá data z fyzického senzoru přes sériový port.
2. Integrace OpenWeather API: Abychom mohli porovnat lokální data s profesionální předpovědí, aplikace pravidelně stahuje meteorologické informace z globální služby OpenWeather.
3. Analýza a statistiky: Pomocí pokročilých knihoven Pandas a NumPy systém automaticky počítá trendy vývoje teploty a základní statistické ukazatele.
Databázové úložiště
Všechna získaná data (datum uložení, teplota, vlhkost, tlak) se ukládají do relační databáze MariaDB/MySQL pomocí ORM nástroje SQLAlchemy. Databáze je navržena tak, aby striktně mohla rozlišovat zdroj dat (API vs. Arduino), což umožňuje jejich pozdější filtrování.
Webové rozhraní a uživatelský zážitek
Webová stránka představuje hlavní výstup naší práce. Zaměřili jsme se na čistý grafický design, který je pro uživatele přehledný a intuitivní.
Aktuálnost: Stránka zachycuje veškeré aktuality spojené s aktuálním počasím v reálném čase.
Interaktivita: Uživatelé mohou pomocí interaktivních prvků aktivně pracovat s daty a přepínat mezi zdroji (API/Arduino).
Export dat: Pro potřeby dalšího zpracování umožňuje aplikace exportovat historická data do formátu CSV.
Týmová spolupráce a závěr
Tato ročníková práce nebyla jen o programování, ale především o komunikaci a schopnosti skloubit vícero technologických celků do jednoho funkčního produktu. Podařilo se nám realizovat komplexní aplikaci, která je připravena pro reálný provoz. Dokázali jsme si, že znalosti získané v předmětech programování a vývoj aplikací umíme přetavit v užitečný a moderní nástroj.
Video funkce zařízení
PUBLIKOVÁNO
19.04.2026, 10:07
ODKAZ
https://www.weloveit.education/Article/20260419-Meteorologicka-stanice-s-integraci-API-a-webovym-dashboardem/