Obsah
Automatická meteostanice MLAB
Konstrukce je součástí řešení distribuovaných měřících systémů vyvinutých v rámci projektu MLAB. Zařízení má sloužit k plošnému měření na mnoha stanicích zapojených do společné sítě spravované komunitou věnující se konkrétnímu typu měření.
Modelové příklady použití
- Meteorologická stanice k pozemní řídící stanicí bezpilotního letadla.
Automatická meteostanice AWS03A
Instalace
Popsaný postup je otestován na Odroidu C1+ a Odroidu C2.
- Nainstalovat Pymlab a ověřit přítomnost senzorů v zapojení
- Nainstalovat a nakonfigurovat NGINX
- Nainstalovat ROS a vytvořit
~/arom_ws
adresář - Nainstalovat AROM a jeho konfigurační soubory
- Nainstalovat a nakonfigurovat WeeWX
- Vytvořit složku pro konfigurace a nahrát výchozí nastavení
mkdir ~/robozor/station/; cd robozor cp ~/repos/arom-web_ui/src/config/users.json ~/robozor/users.json
Automatická meteostanice AWS02A
Konstrukce autonomní stanice s vlastní autodiagnostikou. Meteostanice by měla pracovat v odlehlých oblastech společně s dalšími vědeckými přístroji, jako jsou například robotické teleskopy. Nebo jiné měřící stanice.
Typickým problémem těchto aplikací jsou omezené energetické zdroje, krátkodobý přenos dat po dlouhých intervalech. Nutnou vlastností je tak možnost bezprostředního nahlášení poruchy přes úzkopásmový datový kanál, aby nedocházelo k dlouhodobému výpadku měření.
Kromě tohoto technicky stále neúplně vyřešeného problému je dalším důvodem pro vývoj takové stanice absence seriózního OpenSource-hardware řešení pro sběr meteorologických dat a jejich odesílání do veřejné sítě pro další zpracování. OpenWeatherMap 1)
Konstrukce snímačů
V této verzi stanice bylo ustoupeno od pokusů používat standardní komerční snímače vesměs uzpůsobené k vestavění do konkrétní proprietární meteostanice daného výrobce. Místo toho jsou navrhovány vlastní konstrukce snímačů a jejich zakrytování.
Radiační štít
Prvním navrženým snímačem je radiační štít tisknutelný na 3D tiskárně. Štít je navržen v programu OpenSCAD a jeho zdrojové soubory jsou v SVN repozitáři MLABu. Výtisk na následujících snímcích je z biodegradabilního materiálu PLA.
Ultrazvukový anemometr
Tisknutelný mechanický anemometr
- Rotační část by mohla mít lepší tvar než klasické kuličky. Například: http://www.thingiverse.com/thing:16504 Pak je možné turbínu otočit i vzhůru nohama okolo pouzdra anemometru a snížit tak těžiště rotoru.
Měření srážek
Pyranometr
Software
Struktura meteostanice AWS02B je navrhnuta tak, aby neobsahovala žádný těžko aktualizovatelný a udržovatelný firmware. Získávání dat z jednotlivých senzorů lze pomocí knihovny pymlab.
Implementace ROS
Implementace meteostanice s ROS (Robotic operation system) nabízí spoustu výhod při potřebě získávat data z meteostanice pro jiná zařízení jako zmiňovaná inteligentní budova nebo pro robotický dalekohled.
Tato implementace umožňuje sdílení dat na servery jako Weather underground, Open Weather Map, Weather cloud a další.
Spuštění
Instalace systému je popsána na stránce ROS. Je nutné mít nainstalovaný balík pymlab a ROS_pymlab_server.py
pro přístup k i2c senzorům z ROS nodů.
… TODO
Meteo-observer
Při použití meteostanice samostatně, bez návaznosti na další systémy, lze použít softwarový balík WeeWX s meteo-observer.
Automatická meteostanice AWS01B
Tato konstrukce využívá meteorologická čidla ze stanice wh1080. Jejich vyčítání je řešeno Microchip PIC MCU. Od této konstrukce je postupně upouštěno z důvodu špatné dostupnosti náhradních mechanických dílů, jejich kvalitě a omezeným možnostem MCU. Ostatní kvalitní v této konstrukci ověřené snímače jsou však přeneseny do následující verze.
Měřící snímače
Anemometr
klasická konstrukce anemometru s kalíškovým rotorem.
Generuje impulzy s periodou nepřímo úměrnou rychlosti větru. Výhodou je snadné vyčítání pomocí čítače pulzů a časovače.
Požadavkům snímání rychlosti větru vyhovuje vzorkování 1 Hz, nebo při příchodu impulzu. (Týká se velmi nízkých rychlostí větru a nebo poruchy)
Typické problémy
- Mechanická degradace
- Zamrzání
- Omezení maximální měřené rychlosti větru
- Zadření2)
Lze řešit jinou technologií např. ionizačním, nebo ultrazvukovým anemometrem.
Směr větru
Základním snímačem je větrná růžice s otočnou korouhví. Poloha praporku je pak snímána jazýčkovými kontakty.
Pozice praporku je měřena a zaznamenávána při změně.
Typické problémy
Podobné, jako u anemometru.
- Mechanická degradace
- Zamrzání
Řešením je použití sofistikovanějšího anemometru měřícího vektor (Ionizační / ultrazvukový)
Srážky
Klasický člunkový srážkoměr generuje impulz při překlopení člunku. Překlápění není přílíš časté. Proto je vhodnější zaznamenávat okamžik překlopení pro přesnější lokalizaci srážek v čase.
Do tohoto srážkoměru je třeba přidat vytápění a snímač teploty pro regulaci rozpouštění ledu.
Typické problémy
- Ucpávání, zamrzání
Sněhové srážky
U sněhové pokrývky lze měřit mnoho parametrů a záleží na požadavcích provozovatele meteorologické stanice, které parametry bude měřit.
Tloušťka
Výšku sněhové pokrývky lze měřit dálkoměrem (většinou ultrazvukovým), který měří z definované výšky kolmo na zem. Možné je i použít optický triangulační senzor.
V případě akustického měření by bylo vhodné využít konstrukci ECHO01A.
Mechanické vlastnosti
V případě použití ultrazvukového dálkoměru lze z odraženého signálu odhadnout některé mechanické vlastnosti, jako je tvrdost a tuhost. V případě použití optického dálkoměru může být zajímavým údajem reflexivita sněhové pokrývky, případně i její spektrální závislost.
Příklad zařízení měřícího množství vody ve sněhu je na stránkách sommer.at
Hmotnost
Celková hmotnost sněhové pokrývky je důležitý ůdaj z hlediska bezpečnostních rizik. Tuto veličinu lze měřit odraznou deskou umístěnou pod měřičem výšky sněhové pokrývky. Tato deska může sloužit, jako váha.
Vlhkost
Snímače umístěné v radiačním štítě.
SHT25V01A - čidlo s I²C výstupem a možností self-testu zahřátím měřícího elementu.
Časová kostanta čidel je cca 3s, proto vyhovuje vzorkování uložených dat menší než 10s.
Typické problémy
- Postupná degradace měřícího elementu
- Poškození čidla
- Saturace měřícího elementu a spoždění měření během odpařování vody.
Diagnostikou by měl být self-test v pseudonáhodném čase.
Teplota
Měření teploty vzduchu je jednou z nejdůležitějších funkcí meteostanice, přesto bývá v některých případech provedeno špatně, tak že dochází k ovlivnění měřené teploty například Sluncem. Tento problém lze však řešit použitím tzv. radiačního štítu, který zamezí ovlivnění čidla zářením.
K měření teploty lze kromě klasického čidla DS18B20 využít i modernější snímač LTS01A
Tlak
Magnetometr
Oblačnost
Pokrytí
Výška (ceilometr)
Laserový ceilometr/lidar lze téměř kompletně sestavit z již navržených modulů. Jednodušší alternativou je CLidar.
Radiometr (měření Slunečního svitu)
Měření světelného toku
Použití fotovoltaického článku. Pro změření výkonu záření ve W/m².
UV index
Měření UV indexu pro určení bezpečné expozice. (obdoba UV dozimetru) Lze použít modul ISL02A
Měření intenzity osvětlení
Možné je použít integrované čidlo ISL2902001A
Ionizační detektor
Měření intenzity ionizujícího záření GM, nebo polovodičovým detektorem.
Infrazvukový detektor
Hlukoměr
Limnimetr
Měření výšky hladiny a průtoku.
Chemické snímače
- Detekce plynů CO, CO2, N2… H2S, CH4.. Sensor AFE
- PH-metr
Komunikační rozhraní
Meteostanice má několik variant připojení a komunikace s dalšími zařízeními.
RS232/RS485
K připojení lze použít modul RS232SINGLE01A nebo TTLRS48501A a mikrokontroler podle složitosti požadované aplikace.
Ethernet
Wifi router
Použití routeru s operačním systémem OpenWrt je jednou z nejuniverzálnějších metod připojení meteostanice, protože umožňuje použití jednak ethernetu, tak i Wifi a dalších rozhraní v podobě modemů, které lze případně k routeru připojit přes USB.
Samotná meteostanice s routerem pak komunikuje přes sběrnici I2C, která je buď vyvedena přímo z desky routeru. A nebo vytvořená převodníkem I²C na USB.
ARM modul
Jako komunikační rozhraní lze v tomto případě využít modul s ARM STM32F10xRxT01A a modul pro ethernet ETH01A. Výhodou oproti řešení s použitím routeru je podstatně menší spotřeba energie a jednodušší konstrukce.
USB
I²C master
V tomto případě se celé zařízení chová jako převodník I²C na USB. A vyčítání jednotlivých čidel je realizováno programem v USB HOST zařízení. Toto řešení má výhodu, že lze získat poměrně přesnou informaci o absolutním čase ve kterém jsou hodnoty změřeny. Navíc změnu softwaru a konfigurace lze udělat jednoduše přímo aktualizací ovládacího programu. Není tedy třeba riskantní výměna firmwaru.
Emulovaný COM port
Meteostanice v tomto případě je připojena přes modul USBRS23201B, který vytváří virtuální rozhraní RS232.
Bezdrátové
Wifi
Viz použití wifi routeru s OpenWRT pro vyčítání dat.
GSM
Pro datový přenos přes GSM, nebo 3G/4G sítě je možné použít modul GSM01A
ISM pásmo
Jde o pásmo industrial, scientific and medical, kde pro datový přenos není vyžadovaná licence. Stavebnice MLAB obsahuje již několik modulů umožňujících použití tohoto pásma.
- RFM01SMD01A
- RFM02SMD01A
- RX433MHz01A
- TXsaw433MHz01A
- ZIGBEE01A
Vyčítání měřených hodnot
Předností této konstrukce je možnost připojení různých senzorů. Které jsou inicializovány při každém spuštění stanice. Tato konstrukce využívá I²C sběrnici s modulem I2CHUB02A a předdefinovanou strukturou senzorů. Samotné čtení dat pak probíhá serverem, který je připojen k hardware.
Instalace software
Aktuálně je nejvhodnější použití metody přímého vyčítání čidel z nadřazeného systému přes I²C, neboť existuje značné množství starších nevyužitých wifi routerů s možností přímého připojení I²C.
Lukáš Mičan z klubu Robozor naprogramoval obslužný program, který periodicky vyčítá čidla z meteostanice a naměřené hodnoty publikuje na OpenWeathermap.org.
Tento program je napsaný v jazyce Python a používá knihovnu pymlab pro vyčítání I²C snímačů.
Napájení
- Z autonomního zdroje, jako např. fotovoltaický panel.
- Z lokální sítě
Auto diagnostika
Implementovat algoritmy hlídající vzájemné korelace měřených hodnot a detekovat anomálie.
- Směr větru se nemůže změnit bez indikace rychlosti anemometrem.
Uvažované poruchy
Náhodná mechanická destrukce
Jde o poruchy, které pravděpodobně vzniknou vadou materiál, nebo jeho únavou vlivy okolního prostředí. Jako je degradace teplotními cykly, UV zářením.
Anemometr
Anemometr může být poškozen odlomením jedné, nebo více lopatek, Případně poškozením jeho rotačního uložení. Tento problém by mělo být možné detekovat měřením nepravidelné rychlosti během jedné otáčky.
- Směr větru
- Teploměry
Falešný výstup
Týká se čidel:
- Anemometr - zadření
- Směr větru - odlomeni praporku
- Srážky - ucpani
- Relativní vlhkost
Degradace
Týká se čidel:
- Teplota
- Relativní vlhkost
Výpadek napájení
Důsledky
- Ztráta dat z doby výpadku.
Formát výstupních dat
Datový výstup by měl ideálně být kompatibilní s některým již používaným protokolem na shromažďování meteorologických dat.
- NMEA
- RMYT?
- Přímé vyčítání I²C
Datový výstup by měl obsahovat i přesný čas pro záznam měření. Přesný čas lze získat z GPS01A Výstup z meteostanice by měl podporovat několik sběrnicových systémů (USB, CAN, RS232, RS485, Ethernet), aby bylo možné meteostanici integrovat do dalších složitějších projektů.
Záznam měření
Měřená data z meteostanice by měla mít možnost být zaznamenávána a zobrazována lokálně. Program obsluhující meteostanici by tedy měl buď běžet na lokálním počítači, nebo přímo na řídícím procesoru meteostanice. V takovém případě by meteostanice pravděpodobně vytvářela i webový server, který by poskytoval lokální náhledy na data a zároveň řešil odesílání dat do sběrné sítě.
Zde je vypsáno několik nejrozšířenějších Open-Source programů pro lokální záznam a zpracování meteorologických dat.
Ideálním takovým programem by byl nějaký multiplatformní s minimálními provozními nároky na zdroje a s možností odesílání dat do některé celosvětové sítě stanic. Zároveň by data ale měla být lokálně zálohovatelná a kombinovatelná s daty z dalších meteorologických stanic. Například databáze DB-All.e nebo NetCDF
Publikace dat
Automatická meteostanice AWS01A
Měřící snímače
Teplota
Samostatná teplota je měřena čidlem DS18B20
Tlak
Tlak je měřen modulem ALTIMET01A se snímačem MPL115A1
Vlhkost
Pro měření relativní vlhkosti a teploty vzduchu je použito čidlo SHT11 zaletované na univerzálním plošném spoji a dále čidlo SHT25 v modulu SHT25v01A
Anemometr
Vycitani je realizováno dvěma časovači - jeden je taktován krystalem (timer1) a druhý (timer0) počítá impulzy.
Datový výstup
# AWS01A 0.1 (C) 2013 www.mlab.cz # ver seq temp[K] hum_temp[K] hum[%] bar_temp[K] pressure[hPa] anemo[m/s] check $AWS0.1 0 29271 29390 64.3 29416 959.4 6.0 *5C $AWS0.1 1 29271 29390 64.3 29416 961.1 6.3 *53 $AWS0.1 2 29277 29389 64.3 29416 960.7 7.0 *59
Význam jednotlivých veličin je následující:
- ver je označení zařízení a verze firmware
- seq je pořadové číslo měření
- temp[K] je teplota z místního teploměru v setinach Kelvinu
- hum_temp[K] - teplota 1. čidla vlhkosti
- hum[%] - relativní vlhkost 1. čidla vlhkosti
- bar_temp[K] - velmi nepřesná teplota barometru, je zajímavá spíše pro případnou relativní teplotní kompenzaci.
- pressure[hPa] - tlak měřený barometrem
- anemo[m/s] - anemometrem měřená rychlost větru.
- check - kontrolní součet stejný jako ve formátu NMEA
Aktualizace firmware
Firmware lze aktualizovat bez speciální utility pouze odeslánim HEX souboru s firmwarem na sériovou linku procesoru v době, kdy očekává firmware a vypisuje
uf?uf?
Tento stav nastává po resetu zařízení.
Novy firmware pak lze odeslat následujícím příkazem pod účtem roota, nebo uživatelem s absolutním přístupem k sériové lince.
$ echo uf > /dev/ttyUSB0 ascii-xfr -s -v -l 110 ./firmware.hex > /dev/ttyUSB0
Program ascii-xfr je v Ubuntu součástí balíku minicom. Pro sledování dat při nahrávání je možné si na stejný port spustit příposlech:
picocom /dev/ttyUSB0
Použití meteostanice
- BART Ondřejov
- dalekohled D50 (Ondřejov)
Reference
- MMA Weather Station - Projekt s podobnými cíly.