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í.
Popsaný postup je otestován na Odroidu C1+ a Odroidu C2.
~/arom_ws
adresářmkdir ~/robozor/station/; cd robozor cp ~/repos/arom-web_ui/src/config/users.json ~/robozor/users.json
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)
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í.
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.
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 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ší.
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
Při použití meteostanice samostatně, bez návaznosti na další systémy, lze použít softwarový balík WeeWX s meteo-observer.
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.
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)
Lze řešit jinou technologií např. ionizačním, nebo ultrazvukovým anemometrem.
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ě.
Podobné, jako u anemometru.
Řešením je použití sofistikovanějšího anemometru měřícího vektor (Ionizační / ultrazvukový)
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.
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.
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.
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
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.
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.
Diagnostikou by měl být self-test v pseudonáhodném čase.
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
Laserový ceilometr/lidar lze téměř kompletně sestavit z již navržených modulů. Jednodušší alternativou je CLidar.
Použití fotovoltaického článku. Pro změření výkonu záření ve W/m².
Měření UV indexu pro určení bezpečné expozice. (obdoba UV dozimetru) Lze použít modul ISL02A
Možné je použít integrované čidlo ISL2902001A
Měření intenzity ionizujícího záření GM, nebo polovodičovým detektorem.
Měření výšky hladiny a průtoku.
Meteostanice má několik variant připojení a komunikace s dalšími zařízeními.
K připojení lze použít modul RS232SINGLE01A nebo TTLRS48501A a mikrokontroler podle složitosti požadované aplikace.
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.
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.
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.
Meteostanice v tomto případě je připojena přes modul USBRS23201B, který vytváří virtuální rozhraní RS232.
Viz použití wifi routeru s OpenWRT pro vyčítání dat.
Pro datový přenos přes GSM, nebo 3G/4G sítě je možné použít modul GSM01A
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.
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.
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čů.
Implementovat algoritmy hlídající vzájemné korelace měřených hodnot a detekovat anomálie.
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 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.
Týká se čidel:
Týká se čidel:
Důsledky
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.
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ů.
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
Samostatná teplota je měřena čidlem DS18B20
Tlak je měřen modulem ALTIMET01A se snímačem MPL115A1
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
Vycitani je realizováno dvěma časovači - jeden je taktován krystalem (timer1) a druhý (timer0) počítá impulzy.
# 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í:
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