Stavba meteo stanice WeatherDuino Pro2 - doplnění Ing. Zdeněk Hornych, 23. října 2016 Na základě řady dotazů k prvnímu vydání tohoto článku a také 1,5 ročních zkušeností z provozu meteo stanice jsem se rozhodl pro nové rozšířené vydání, doplněné poznatky ze samotného provozu. WeatherDuino je DIY meteo stanice, vyvíjená komunitním sdružením kolem původního autora Werk_AG (A. Caneira) z Portugalska. Ten je současně hlavním programátorem, člověkem, rozhodujícím o dalším směru vývoje a koordinujícím poznatky i testy, a současně i hlavní podporou ve fóru http://www.meteocercal.info/forum/. WeatherDuino už má dávno za sebou dětské krůčky, dnes je to plnohodnotná vyspělá technologie, splňující i poměrně značné kvalitativní požadavky. Od původního AuriolDuina (spojeno s technologiemi sensorů dodavatele Auriol), přes počáteční WeatherDuino Pro2 v1.3 a mnou loni zmiňovanou v1.4 nastal koncem loňského roku velký skok k verzi 1.5 a v letošním roce obrovský posun k v2.0. Vývoj se však i tak stále zrychluje a nyní se již od počátku roku rodí v hlavě a na stole Werk_AG zcela nová technologie WeatherDuino 4Pro. Přes všechna tato vývojová stádia a veliké skoky ve vývoji však zůstává programová výbava zpětně kompatibilní, což samozřejmě dále zvyšuje přitažlivost celého projektu, protože jednou vybudovaný hardware má dlouhou dobu životnosti. Meteo stanice je koncipována modulárně a je schopna pracovat i profesionálně, vše je závislé jen a pouze na schopnostech a finančních možnostech vlastního stavitele stanice. Sem patří především výběr sensorů, jejich umístění v terénu, kvalita celého provedení, schopnost dlouhodobého bezobslužného provozu atd. atd. Stavba není určena pro začátečníky, mezi jinými dovednostmi je třeba zvládat i pájení SMD součástek na desky s plošnými spoji. Ani tento článek není stavebním návodem, nebo podrobným popisem zařízení, zájemce odkazuji na původní zdroje informací, jejichž rozsah je obrovský (viz v závěru článku). (Navíc celá řada informací podléhá autorské ochraně a je dostupná až po registraci, byť zdarma.) Blokové schéma WeatherDuino Pro2 je principiálně toto:
Kde TX jsou vysílací jednotky, v systému bývají obvykle dvě, rozsah počtu je 1 – 3. Zajišťují fyzický sběr dat v terénu o bezdrátové odeslání na jejich zpracování.
RX je přijímací jednotka, která data zpracovává, vyhodnocuje, částečně archivuje, vybraná data i zobrazuje a následně předává pomocí USB spojení na meteo server. RX je současně schopna vybraná data i vysílat na tzv. wireless displeje (WD). WD je bezdrátový displej, určený pro místní, domácí zobrazení hlavních naměřených dat. Těchto displejů může být neomezené množství a umísťují se všude tam, kde je třeba je číst. WD využívá TFT dotykový displej 2,8“. Meteo server, nebo také meteo počítač, je zařízení, kde se provádí převod zpracovaných dat na jejich grafickou prezentaci, ale současně i jejich dlouhodobá archivace. V roli serveru obvykle dnes slouží Raspberry Pi s operačním systémem Raspbian a aplikací CumulusMX. Web server prezentuje data celému světu a to především graficky nebo tabulkově. S výhodou se opět využívá aplikace CumulusMX, její webová část. Provoz často na nějakém Linuxu ve vzdáleném hostingu. Meteo server však také zajišťuje připojení celé meteo stanice do celosvětových sítí meteo stanic, mé zkušenosti jsou především se sítí Weather Underground (WU), která má dnes již přes 300 tis. členů a přes 200 tis. privátních meteo stanic. Kromě jiného disponuje také pravděpodobně nejpřesnějšími meteo předpověďmi a je založená na dobrovolnosti. Její data nesmí být profesionálně využívána. Nyní tedy detailněji.
Popis jednotlivých komponent TX – vysílací jednotka je zařízení, umístěné v blízkosti meteo sensorů, zpravidla ve venkovním prostředí. Srdcem jednotky je Arduino Nano, napájení je zajištěno akumulátorem, dobíjeným solárním panelem. Nejčastěji je použit klasický Pb akumulátor, autor příspěvku má však vynikající zkušenosti i s akumulátory LiFePo4.
Jednotka TX může být instalována v 1 nebo maximálně až 3 kusech v jednom systému. Standardně je vybavena sensory větru, tedy anemometrem a ukazetelem směru větru (wind vane), několika teploměry, vlhkoměry, srážkoměrem a solárními čidly (intenzita slunečního záření ve W/m2 a UV index). Hlavní teploměr systému spolu s čidlem vlhkosti vzduchu by měl být umístěn ve volném prostoru nad stříhaným trávníkem ve výšce 2 metrů a uložen v radiačním štítu s nuceným prouděním vzduchu podle přednastavených povětrnostních podmínek. Mezi ty patří i intenzita proudění vzduchu (vítr), proto by tato jednotka měla být vybavena vlastním anemometrem.
Měření větru se však provádí ve výšce 10 m nad volným terénem, proto je vhodné do systému vložit i druhou TX jednotku. Ta bývá umísťována na stožáru nebo na střeše. Výsledky měření větru nad střechou mohou však být tvarem střechy zkreslené. Příklad provedení autorem článku pro střešní instalaci:
kde se provádí měření větru dvěma nezávislými systémy (kromě WeatherDuino i původní sensory meteo stanice Auriol). Kromě jiného se zde odečítá i teplota na střeše, sluneční radiace (W/m2) a UV ozáření (UVI). Autor článku má další dvě jednotky umístěny na stožáru postaveném v zahradě, zde se měří hlavní měřená teplota a vlhkost (2 m nad zemí), ale ještě celá řada dalších údajů např. teploty ve výškách 2,4 m, 1 m, 5 cm nad zemí a 5 cm, 50 cm a 1 m v zemi. Řada čidel vyhodnocuje podobně i vlhkosti. Pro měření půdních teplot a vlhkosti je použita jednotka extenderu, která zajišťuje přenos dat na vzdálenosti desítek metrů (v mém případě 8 m).
Ukázka vlastní výroby sensorů – zde sensor UV záření , termometr a vlhkoměr v radiačním štítu a detektor slunečního záření:
Jednotka extenderu a sensory teploty a vlhkosti půdy:
RX – přijímací jednotka Na rozdíl od TX jednotky je RX v systému vždy pouze jedna. Přijímá a detekuje signály 433 MHz z jednotek TX, případně z dalších připojených bezdrátových čidel (např. srážkoměr Auriol). Srdcem jednotky je opět Arduino Nano, napájení je zabezpečeno externím zdrojem 12 V. Jednotka zpracovává signály a pomocí USB kabelu je předává počítači s meteo softwarem. Současně však slouží pro retranslaci vybraných hodnot na jednu nebo více WD jednotek pomocí signálů 433 MHz. Jednotka sama je vybavena displejem LCD 20x4 a základní naměřené hodnoty tedy přímo zobrazuje. Aktuální PCB jsou vybaveny polovodičovou pamětí v roli cache pro případy výpadku meteo počítače – kdy by neměla komu předávat zpracovaná data. Jednotka disponuje vlastním sensorem pro měření atmosférického tlaku tlaku, lokální teploty a vlhkosti a je také osazena časovým normálem.
Celkové provedení přijímací jednotky:
A pohled na její displej v době, kdy ještě nebylo osazeno venkovní čidlo teploty a vlhkosti:
WD – wireless display Slouží pro rychlou místní informaci o základních povětrnostních hodnotách a stavu vysílacích jednotek, umístění je na každém místě v domě, kde jsou tyto informace třeba. Ideální je alespoň jednu jednotku WD vlastnit, protože některé údaje jsou dostupné pouze na ní (např. napětí akumulátorů TX jednotek, teplota na jejich deskách PCB apod.). Připojení k RX pomocí vf signálu 433 MHz, napájení je externím zdrojem 12 V. Běh softwaru opět zajišťuje Arduino Nano, WD je vybaven TFT dotykovým displejem 2,8“ i vlastním měřením lokální teploty a vlhkosti. Běžně zobrazované parametry: tlak, teplota vně i uvnitř, rychlost a směr větru, nárazy, vodní srážky a jejich intenzita, úroveň slunečního záření a UV index. Současně umožňuje zobrazení i tzv. externích sensorů – zemní teploty a vlhkosti, teploty a orosení listů, teploty a vlhkosti na dalších sensorech atd.
Finální provedení autorem článku:
A další pohledy na displej:
Meteo server Touto komponentou se již projekt WeatherDuino Pro2 zabývá pouze okrajově. V tuto chvíli je zřejmě nejperspektivnější variantou využití počítače Raspberry Pi 3, s nainstalovaným systémem Raspbian. Počítač nemusí být vybaven displejem, pokud je stejně umístěn v technologickém celku, kde nemá displej využití, nebo může být naopak vybaven např. 7“ dotykovým TFT displejem s dálkovým ovládáním, apod. Server je umístěn v blízkosti RX modulu – propojení USB kabelem. Pomocí meteo software zpracovává dodaná data a zobrazuje je na vlastním (lokálním) webu. Současně je např. přes Ethernet ukládá na web server v Internetu, případně odesílá na jeden nebo více komunitních serverů v rámci amatérských sítí meteo stanic. V roli meteo software lze s výhodou využít např. komunitního systému CumulusMX, který je ještě stále ve verzi beta, nicméně velmi stabilní a se skvělou komunitní podporou. K aplikaci existuje obrovské množství doplňků, grafických šablon, skriptů a dalších „udělátek“. Její obrovskou výhodou je definice tzv. webových tagů, které umožňují kompletní vytvoření vlastního webu nebo doplnění existujících šablon podle svých potřeb. Této výhody využil i autor článku, proto je jeho web výrazně odlišný od defaultových šablon aplikace CumulusMX.
Pohled na počítač Raspberry v běžné krabičce:
K meteo serveru je velmi vhodné připojit i nějaký pevný disk, s výhodou můžeme použít přenosný disk 2,5“ s USB připojením. USB propojení RX jednotky a meteo serveru by mělo být provedeno pomocí USB hubu s vlastním (externím) napájením, jinak se může stát systém nestabilním v důsledku malé proudové výkonnosti USB portů desky Raspberry. K hubu pak připojíme i ostatní zařízení – HDD, klávesnici, myš. Při své instalaci používám u počítače Raspberry i 7“ displej s dálkovým ovládáním, řada instalací je však tzv. headless. V případě displeje lze spustit i grafické rozhraní X-window a v něm lokální nebo externí web CumulusMX. Sám používám pouze alfanumerické prostředí a v případě potřeby zobrazuji stav meteo stanice pomocí scriptu z fóra Cumulus. Výstup skriptu:
Web Pokud nemá meteo stanice sloužit pouze pro osobní potřebu, je vhodně umístění web serveru v nějakém „solidním“ hostingu, nároky na výpočetní mohutnost nejsou velké. Výhodné využití je např. virtualizovaného systému CentOS. Web má rozsáhlé možnosti customizace a napojení mnoha další internetových zdrojů, toto je však již zcela mimo rozsah tohoto článku.
Zde pouze náhled na některé z webových stránek autora článku:
Připojením k síti Weather Underground získáme jednak vynikající předpověď počasí pro svou lokalitu, jednak i další velmi pěkné webové stránky:
Ukázka jedné z možných konzolí – s výhodou využitelné na 10“ tabletu apod.:
Poznámky Při stavbě meteo stanice je třeba být nejen zručným kutilem, ale velmi dobře chápat i programování počítačů typu Arduino. Zde totiž platí, že nikdy nedostanete úplný popis celé stavby, každý stavitel má jiné podmínky, jiné možnosti, zdroje, finance apod., proto je každá stanice odlišná. Tomu je třeba i programovou výbavu částečně přizpůsobovat a samozřejmě být i schopen najít a odladit případné chyby – jak hardwarové, tak softwarové. Velmi se hodí dobré znalosti linuxového prostředí, částečné znalosti HTML jazyka, případně programování java skriptů. Samozřejmým základem je ovládání celého pájecího procesu s miniaturními součástkami (SMD), podmínkou je dobrá výbava – automatická mikropájka, odsávačka, horkovzdušná páječka apod. Pro výrazné zlevnění celé stavby je nanejvýš výhodné nakupovat součástky na různých čínských eshopech, znamená to tedy zvládnout nákup v angličtině a platbu pomocí účtu PayPal nebo kreditní kartou. Pro prvotní zapojení je vhodné používat zkušební polygon na nepájivých zapojovacích deskách „breadboardech“, zde např. sestava autora článku:
Autor článku si pokládá za velkou čest být součástí vývojového týmu WeatherDuino, proto zde i malá ukázka práce na vývoji. První obrázek ukazuje výstup RTL-SDR analyzátoru s Raspberry pro kontrolu výkonnosti použitých antén v pásmu 433 MHz. A na druhém vidíme „zábavu“ při odhalování zákonitostí propouštění UV záření různými optickými materiály:
Při stavbě a provozu stanice se stavitel určitě mnoho a mnoho nového dozví a naučí, Internet je skutečně základním a naprosto nezbytným zdrojem veškerého počínání.
V případě bližšího zájmu o tento projekt doporučuji zájemcům registraci na fóru MeteoCercal, tak se mohou velice snadno dostat ke schématům, seznamům součástek apod. Na fóru lze pořídit i desky PCB. Závěr Projekt má základní výhodu, že je „totálně“ modulární a do nekonečna rozvíjitelný. Proto můžeme začít pouze s minimálním objemem dílů a řekněme „levnějšího“ provedení, ale postupným rozvíjením se dostat až na poloprofesionální úroveň. Systém je otevřen i vlastnímu vývoji, případně testování, a to jak v oblasti HW, tak SW. Sumárně lze říct, že tento projekt vlastně nikdy nekončí a může být doživotním koníčkem. Zdroje Upozornění: některé výše zmíněné názvy mohou být chráněnými názvy svých majitelů. Projekt WeatherDuino Pro2: http://www.meteocercal.info/forum/ Projekt CumulusMX: http://sandaysoft.com/forum/ Podpůrné skripty a šablony: https://www.tnetweather.com/projects/ Mezinárodní síť meteo stanic: http://www.wunderground.com/ Web autora článku: http://meteo.brandysnl.cz/