Close

Stavba přijímací jednotky meteo stanice WeatherDuino Pro2 PLUS

Arduino meteostanice WeatherDuino

Přinášíme vám další článek o stavbě meteostanice WeatherDuino Pro2, kterou staví náš čtenář pan Zdeněk Hornych. Za článek děkujeme.


Před časem jsem slíbil, že se ke stavbě meteo stanice WeatherDuino ještě vrátím v seriálu detailnějšího popisu stavby samotných jednotek. Tímto se tedy hlásím k plnění svého slibu v prvním dílu seriálu – budeme se zabývat stavbou nejsložitější části systému – tedy přijímací jednotkou.

Pro čtenáře, kteří nezachytili některý z úvodních článků, popisujících systém WeatherDuino Pro2, jenom v rychlosti připomeňme, že celá meteo stanice se skládá z několika hlavních částí:

  • TX = vysílací jednotka (až 4 v systému)
  • RX = přijímací jednotka (počet bez omezení, typicky 1 ks)
  • Volitelná komponenta:
    • WD = wireless displej pro místní zobrazení hlavních měřených údajů (počet bez omezení)
  • Další volitelné komponenty:
    • CumulusMX = meteo aplikace, obvykle běžící na Raspberry Pi
    • Web = webové sídlo aplikace CumulusMX, rozšířené vlastní tvorbou webových stránek
    • Sítě meteo stanic = data lze předávat do řady různých sítí, např. Weather Underground apod.
    • EI2C = extender sběrnice I2C pro vzdálené sensory (např. teplota a vlhkost země a listů)
    • Sensory = celá řada dalších „nezávislých“ sensorů, např. BIOS, Auriol, PM2.5, …

Pro detailnější popis odkazuji čtenáře na dříve publikované zdroje – viz seznam zdrojů v závěru článku.

Přijímací jednotka WeatherDuino Pro2 PLUS

Noví zájemci o stavbu stanice zhotovují od počátku roku 2017 především tuto velmi vyspělou variantu RX jednotky.

Arduino meteostanice WeatherDuino

Nové WeatherDuino

Úvodem

Co pravděpodobně zaujme na první pohled, je využití modulu Meduino Mega 2560 Pro-Mini. Definitivně tak dochází k přechodu od Arduino Nano k výkonnějšímu mikrokontroléru. Nyní máme k dispozici RAM 256 KB a SRAM 8 KB. Nová deska má nyní k dispozici 2 GPIO porty plus 1 GPO port s proudovým výstupem až 50 mA. Můžeme tedy řídit různá externí zařízení, jako např. vytápění, zavlažovací systémy, žaluzie, markýzy, případně další podle požadavků uživatele. Systém umožňuje pomocí jednoduchého scriptování tato zařízení ovládat na základě velikosti vnitřních proměnných, získaných z meteo sensorů.

Výchozí displej, zobrazení grafů

Výchozí displej této jednotky byl změněn z původního LCD 20×4 na barevný grafický TFT displej 320×240 s dotykovým ovládáním. Layout obrazovky byl designován tak, aby měl téměř totožný vzhled s už existující WD jednotkou.

Naopak software WD byl upgradován tak, aby dokázal využít novou funkcionalitu, poskytovanou RX Pro2 PLUS.

I zpětná kompatibilita s existujícím hardware byla opět vzata v úvahu velmi seriózně. Díky tomu všechny existující TX jednotky budou s jednotkou RX Pro2 PLUS pracovat, dokonce i bez jakéhokoliv softwarového upgradu.

Arduino meteostanice WeatherDuino - Displej

Graf rychlosti větru

Arduino meteostanice WeatherDuino - Displej

Zobrazené hodnoty

Je tu i více: dvojitý stisk tlačítka zobrazí grafy z posledních 12 hodin – pro tlak, teplotu, vlhkost, déšť, rychlost a nárazy větru. (V posledních verzích sw lze i tuto funkci ovládat dotykem.)

Extra senzory

Plný počet 7 extra senzorů, podporovaných systémy DAVIS, může být nyní zobrazen na displeji najednou. Dotykem vpravo nebo vlevo na displeji můžeme přepnout na další obrazovku.

Arduino meteostanice WeatherDuino - Zobrazení dat ze senzorů

Zobrazení dat ze senzorů

Arduino meteostanice WeatherDuino - Zobrazení dat ze senzorů

Zobrazení dat ze senzorů

Nyní lze také zobrazit všechny informace z až 4 senzorů teploty a vlhkosti půdy a listů. Displej zobrazuje i koeficient AQI, tj. hodnocení kvality ovzduší, naměřenou hodnotu PM2.5 a další naměřené hodnoty v oblasti zkoumání kvality ovzduší z hlediska zdraví – dle vlastního výběru, typicky např. CO2, NH4 apod.

Screen saver

Funkcionalita nového displeje zahrnuje i screen saver – buď po nastavitelném timeoutu nebo po dotyku vpravo nahoře. Šetřič zobrazuje aktuální čas a datum.

Dalším dotykem lze displej zcela zhasnout.

Arduino meteostanice WeatherDuino - spořič obrazovky

Spořič obrazovky

NTP, Summer Time

Jednotka RX Pro2 PLUS automaticky nastavuje a udržuje přesný čas, včetně lokálního letního. Využit je NTP protokol přes WiFi připojení k internetu.

WiFi, napojení na WUnderground

WiFi však neslouží pouze pro synchronizaci času. Pokud si přejete zaznamenávat svá meteo data a nepotřebujete nebo nechcete používat PC nebo Raspberry, pak může RX Pro2 PLUS pracovat jako autonomní jednotka s možností uploadu dat přímo na WUnderground. Přitom však není plná funkcionalita případně využívané aplikace Cumulus nebo CumulusMX nijak dotčena (např. vlastní web).

WiFi rozhraní jednotky umožnilo i spuštění jednoduchého webového rozhraní se souhrnem nejdůležitějších parametrů.

Arduino meteostanice WeatherDuino - Jednoduché webové rozhraní

Jednoduché webové rozhraní

Měření PM2.5

Ještě poslední poznámka k funkcionalitě – existující „šeptanda“, že tým vývojářů pracuje na vývoji Air Quality Monitor pro systém WeatherDuino Pro2 PLUS, se zjevně – jak vidno výše – potvrdila.

WeatherDuino Pro2 PLUS přijala riziko stát se první meteo stanicí s integrovanou podporou pro měření Air Quality Index (AQI) – 2.5 ppm.

Na vývoji se trvale intenzivně pracuje, ale už v tuto chvíli jsou výsledky velmi povzbudivé a v praxi použitelné – viz odstavec „Extra senzory“.

Deska plošného spoje

Pro jednotku RX Pro2 PLUS byla vyvinuta zcela nová deska plošných spojů o rozměrech 99×86 mm. V době psaní článku je již deska běžně k dostání u svého autora.

Arduino meteostanice WeatherDuino - Deska plošného spoje

Deska plošného spoje

Deska je dodávána tak, jak je zobrazeno na obrázku, tzn., všechny SMD součástky jsou již osazeny. Díky tomu patří nová deska k nejrychleji osaditelným deskám celého systému WeatherDuino. Současně se dramaticky zvýšila snadnost osazení a bezchybnost výsledku.

Uživatel se nyní musí pouze rozhodnout mezi různými variantami konektorů, jedno nebo dvouřadými lištami 2,54 mm pro připojení displeje, lokálních senzorů a mikrokontroléru.

RX Pro2 PLUS užívá desku Meduino Mega 2560 Pro-mini, která obsahuje ATMEL Mega2560 mikroprocesor a robustní USB port. Deska může být přímo vpájena do main boardu, nebo instalována v socketu (to je autorem článku preferovaná varianta). Je dostupná ve dvou variantách: s dvouřadými kolíky, nebo dvouřadým female socketem. Nákup je asi nejlevnější na eBay apod., hledejte Meduino.

Arduino deska Meduino

Deska Meduino

I v oblasti senzorů jsou zde novinky – RX Pro2 PLUS nyní podporuje integrovaný senzor prostředí BOSCH BME280, který kombinuje vše v jedné jednotce s vysokou linearitou i přesností (tlak, vlhkost a teplota).

Současně Pro2 PLUS pokračuje v podpoře užití separátních senzorů.

Seznam: ATM: BME280, BMP280, BMP180, BMP085

Teplota/vlhkost:SHT31, SHT21, HTU21D

Seznam součástek

Pro detailní a rozsáhlý popis použitých součástek, foto desky plošných spojů a výkres zapojení celé jednotky odkazuji zájemce na původní zdroj informací. I když je hardware i software licencován jako open source, informace podléhají autorským právům.

Navíc i zde platí, že nejlepší je získávat informace z přímého zdroje.

Poznámky ke stavbě

Co bylo možná vhodné uvést už na začátku článku, je důležitá informace o obrovské variabilitě vlastního konečného řešení celé jednotky. Před rozhodnutím o stavbě si musíme ujasnit celou řadu klíčových otázek:

  • Kde bude jednotka umístěna (soulad vzhledu a prostředí, výběr antén)
  • Co se stane při výpadku el. energie (UPS?)
  • Chci používat aplikaci Cumulus/CumulusMX?
  • Mám v daném místě dostatečnou úroveň WiFi signálu? (ESP modul má extrémně malou anténu)
  • Pokud použiji Cumulus/CumulusMX, mám k dispozici i Ethernet?
  • Poběží v případě použití CumulusMX z SD karty, nebo chci přidat HDD?
  • A jak budu případný Raspbian (nebo jiný OS) ovládat (obrazovka, klávesnice, myš)?
  • Atd., atd.

Autor článku si klade za cíl ukázat, jak se pokusil na tyto otázky odpovědět on sám a jak realizoval jednotku RX Pro2 PLUS ve svých podmínkách. Přitom ale znovu opakuje, že jeho řešení je pouze jedním z mnoha možných řešení a není tedy a ani nemůže být žádnou šablonou. Avšak rád by, aby se jeho řešení stalo inspirací pro následování vlastní cestou.

Řešení stavby RX unit WeatherDuino Pro2 PLUS autorem článku

Při mé stavbě byla řada odpovědí na výše uvedené otázky jasná od samého počátku. Už i na základě předchozích zkušeností ze stavby dvou jednotek RX systému Pro2:

  • Přijímací jednotka je umístěna na stole v pracovně autora článku, musí umožňovat trvalé sledování bez jakéhokoliv otáčení se kamkoliv. Jediné přijatelné místo je „v řadě“ s ostatními PC monitory, s nimiž autor článku pracuje. Její vzhled musí být dostatečně přijatelný v daném prostředí.
  • Vzdálenost od 5 vysílacích jednotek (3x TX unit, 1x BIOS teploměr, 1x AQM) není velká, max 15 m, ale vždy přes alespoň jednu zeď (ale také až 3), případně signál ze střechy. Navíc v cestě ruší signál kovové žaluzie.
  • Jednotka musí obsahovat vlastní zdroj energie pro případ výpadu (při posledním výpadku – pád sloupu vysokého napětí – pracovala bez proudu ze sítě 9 hodin)
  • WiFi signál jsem v pracovně neměl, AP jsem tedy realizoval pomocí jednotky MikroTik RB941-2nD-TC hAP lite tower case (v ČR asi 550,- Kč)
  • Volba pro CumulusMX byla jasná – již existující vlastní webové sídlo s rozsáhlou investovanou vlastní prací, snaha snížit spotřebu energie na minimum (místo PC pouze Raspberry), vyšší spolehlivost Linuxu oproti kombinaci PC+Windows
  • Snaha eliminovat nespolehlivost SD karty jednoznačně implikuje nutnost použití HDD
  • Zkušenosti z předchozích projektů ukázaly na vhodnost použití „většího“ displeje pro Raspbian – 7“, dotykový. Pohodlná je i dostatečně velká vypínatelná bezdrátová klávesnice s integrovaným touchpadem. Žádný externí zdroj, vše uvnitř.
  • Vše vestavět do jediné skříňky, současně však zachovat možnost častého upgradu firmware (autor článku je součástí týmu vývojářů) bez jejího rozebírání.

To byla tedy hlavní východiska realizace mého projektu, který si nyní ukážeme.

Popis stavby a montáže

Paradoxně – ale někdo možná řekne „samozřejmě jako vždy“ – se největším problémem stavby ukázalo pořízení vhodné přístrojové skříňky. Autor měl sice ve svých zásobách skvělou skříňku s perfektním vzhledem, rozměry, konstrukčními možnostmi atd., ale s jedním zásadním problémem: byla celokovová. To je pro použití ESP modulu pro WiFi s jeho miniaturní anténkou problém naprosto zásadní. Po téměř půlročním hledání se mi podařilo nalézt vhodnou skříňku na eBayi:

Arduino meteostanice WeatherDuino - skříňka

Skříňka

Rozměry 345x258x145 mm se ukázaly jako ideální – přitom kritická je především výška (145 mm) kvůli možnosti použití 7“ displeje. (Cena cca 990,- Kč)

Zvolený půdorys vestavby celé RX jednotky ukáže asi nejlépe následující obrázek. Popisky jsou pravděpodobně dostatečně vysvětlující, nicméně ještě na doplnění:

Arduino meteostanice WeatherDuino - Rozmístění součástek

Rozmístění součástek

  • Největší „hmotou“ ve skříňce je samozřejmě Pb akumulátor, byl použit z výroby APC pro UPS, označení RBC, tj. 12V/7Ah. Samozřejmě stejně vyhoví jakýkoliv ekvivalent.
  • Vlevo za akumulátorem v zadním panelu je namontován vstupní napájecí konektor s vestavěnou pojistkou a  vypínačem. (Cena cca 45,- Kč)
    Arduino meteostanice WeatherDuino
  • Napájení 230 V je pak připojeno na síťový zdroj s UPS vlastnostmi – použil jsem OEM produkt, typ SCP-35-12. Tento zdroj je kupodivu distribuován i v ČR za stejné peníze, jako jej seženete na internetu (od společnosti Mean Well za cca 400,- Kč). Parametry zdroje jsou obsaženy v jeho názvu: 35 W, výstup 12 V – samozřejmě ve skutečnosti 13,8 V

    Arduino meteostanice WeatherDuino - Zdroj napájení

    Zdroj napájení

  • Protože je RX jednotka pomocí akumulátoru napájena trvale, tedy i když je odpojen síťový napájecí kabel nebo vypnut síťový vypínač, vestavěl jsem na přední panel ještě samostatný miniaturní vypínač, který teprve odpojuje výstup 13 V z akumulátoru pro jednotlivé napájecí moduly.
  • Signalizace zapnutí tohoto mini spínače je vpravo nahoře na předním panelu pod označením Power.
  • Naopak signalizace přítomnosti napájení ze sítě je vyvedena přímo z napájecího zdroje do integrované LED v pravém tlačítku na předním panelu s označením PB3 (to má nyní funkci RESET pro samotný modul RX+).
  • Stabilizace napájení pro jednotlivé moduly přístroje je provedena 3 samostatnými napájecími moduly typu „DC-DC step down“, s výkonností 75W/5A, vybavenými LED displejem. (Cena cca 63,- Kč) Displej lze s výhodou (po kalibraci) využít pro seřízení, když není potřeba, lze jej vypnout. Jak vyplývá z obrázku, dva moduly jsou nastaveny na výstup 5 V, jeden pro napájení Raspberry RPi, druhý pro napájení USB hubu. Třetí modul ja nastaven pro výstup 9 V pro napájení desky samotné RX jednotky WeatherDuino.

    Arduino meteostanice WeatherDuino - DC-DC step down

    DC-DC step down

  • Teplota okolního prostředí (tzv. vnitřní teplota) je v mém případě měřena sensorem HTU21D, umístěným zvenku na zadním panelu. S výhodou lze však využít autorem jednotky doporučeného sensoru BOSCH BME280.
  • Vlevo vzadu je vidět umístění reléové desky pro případné ovládání externího zařízení (zalévání, markýza, …).
  • Možnost nahrávání nového firmware pro WeatherDuino jsem vyřešil tak, že jsem vyvedl USB port desky WeatherDuino na zadní panel a současně jsem zde vyvedl i jeden z portů USB hubu. Za normální činnosti jsou oba porty propojeny kratičkým 10 cm USB kablíkem, v případě programování je pak do horního portu (od desky WeatherDuino) zapojen USB kabel z počítače – současně je přepnut přepínač „Programming“ do horní polohy.
    Arduino meteostanice WeatherDuino
  • Na předním panelu jsou tři tlačítka v provedení „antivandal“ s podsvětlením LED pro 12 V. Jejich funkce je: levé – připojeno na piny PB1, pravé – připojeno na RST, prostřední – pro budoucí využití. (Cena – v GME – cca 110,- Kč.)
    Arduino meteostanice WeatherDuino
  • Antény pro příjem a vysílání v pásmu 433 MHz jsou upevněny na zadním panelu, použil jsem s uváděným ziskem 6 dBi. Pro uchycení jsou použity pigtaily s konektory SMA (5 ks cca 135,- Kč). Pokud budete řešit podobnou věc, vždy si pečlivě zkontrolujte napárování konektorů ve všech spojovacích místech.
    Arduino meteostanice WeatherDuino

Seznam ostatních „standardních“ součástek je uveden v původním zdroji od svého autora, nechci se zde tedy opakovat.

Co je však pravděpodobně důležité zmínit, je úprava desky Meduino Mega 2560 Pro-Mini. Zde je nezbytné odpájet jednu diodu, abychom zabránili situaci, že RX+ deska nebude napájena 9 V ze zdroje, ale pouze 5 V z USB hubu. Taková situace by mohla vést ke zničení modulu – viz původní zdroj.

Arduino meteostanice WeatherDuino - Dioda k odpájení

Dioda k odpájení

Samotná stavba nemá v podstatě žádné záludnosti, díky tomu, že základní deska jednotky RX+ má všechny SMD součástky již osazeny, zbývá na nás jen minimum práce. Celé osazení trvá méně než 2 hodiny.

Pro úplnost ještě některé orientační ceny nákupů:

  • Deska plošných spojů RX Pro2 PLUS včetně poštovného – cca 1.560,- Kč
  • Geekcreit 7“ 1024×600 HDMI capacitive IPS LCD display 5 point touch – cca 1.180,- Kč
  • 2.8“ 240×320 SPI TFT touch panel ILI9341 – cca 250,- Kč
  • Raspberry Pi3 B – cca 950,- Kč
  • HDD 2.5“ 250 GB USB externí – cca 950,- Kč
  • Bezdrátová klávesnice s touchpadem – cca 1.000,- Kč
  • + řada drobných dílů

Téměř všechny uvedené ceny vychází z předpokladu nákupu na asijských eshopech, případně eBay (ovšem i zde většinou čínští dodavatelé). Oproti nákupu v maloobchodech v ČR tak můžete ušetřit několikanásobek ceny, ovšem za cenu dlouhého čekání na dodávku (obvykle kolem 3 týdnů). Při nákupu v zahraničí mimo EU také nezapomeňte na stanovené limity pro platbu DPH, případně i cla (vyplatí se rozdělit větší objednávku na řadu malých – poštovné se stejně neplatí a lze se tak snadno dostat pod limity).

Základová deska

Autorovi článku se osvědčilo vyříznout z desky plexiskla tl. cca 5-7 mm základní montážní desku, která pokrývá celé dno skříňky mimo prostor olověného akumulátoru. Na tuto desku lze pak snadno uchytit jednotlivé moduly pomocí distančních sloupků se šroubením právě do základové desky. Na přední a zadní panel je tak nutné uchytit pouze displeje, ovládací prvky a konektory, vše ostatní lze smontovat mimo skříňku „na stole“ a vsadit do skříňky najednou.

Arduino meteostanice WeatherDuino - Zapojení

Zapojení

Akumulátor je velmi těžký, proto jeho uchycení dimenzujte řádně tak, aby se nemohl utrhnout ani při případném přenášení, obracení skříňky vzhůru nohama apod.

Přední panel

Oba displeje lze na přední panel připevnit pomocí distančních sloupků vždy se 4 děrami v panelu. Tyto díry pak zakryjeme vytištěným předním panelem z laserové tiskárny (základní barva by měla být v barvě skříňky), který podlepíme oboustrannou samolepicí fólií pro přístrojové panely. Tento „sendvič“ nalepíme na přední panel a pro dokonalejší vzhled ještě přelepíme krycí samolepicí panelovou fólií. Při dobrém návrhu a čisté práci se výsledek blíží profesionálnímu a přitom za velmi nízkých nákladů.

Arduino meteostanice WeatherDuino - Přístrojová deska

Přístrojová deska

Pro úplnost:

  • Pro nákres panelu používám software Front Panel Designer od společnosti Schaffer AG (freeware)
  • Samolepicí fólie dodává zásilkový obchod Conrad
Arduino meteostanice WeatherDuino - Přístrojová deska při stavbě

Přístrojová deska při stavbě

Zadní panel

Pro jeho jednoduchost jsem se s ním „nijak nepáral“, v mém případě je prost jakýchkoliv popisků. V lepším případě však můžeme použít stejný postup výroby jako u předního panelu.

Arduino meteostanice WeatherDuino - Zadní panel

Zadní panel

Zapojení

V propojení jednotlivých desek/modulů mezi sebou snad ani nelze udělat chybu. Naopak se mnohdy chybuje v zapojení displeje 2.8“ (časté dotazy v podpůrném fóru). Pro úplnost tedy uvádím správné propojení desky RX Pro2 PLUS a dotykového displeje ILI9341 2,8“:

Displej 2,8“ Deska RX Pro2 PLUS
T-IRQ T-IRQ
T-DO T-MOSI
T-DIN T-MISO
T-CS T-CS
T-CLK T-SCK
SDO(MISO) nezapojovat
LED LED+
SCK SCK
SDI(MOSI) MOSI
D/C DC
RESET RST
CS CS
GND GND
VCC 5V
—– 3.3V – nechte nezapojené

CumulusMX

Aplikace Cumulus ve verzi 3 je označena CumulusMX a v zásadě je připravena pro běh na mikropočítači Raspberry Pi. Nejběžněji použitým operačním systémem je Raspbian, v němž je pro spouštění .exe programů použito prostředí Mono.

Pro zájemce o stavbu uvádím několik důležitých poznámek:

  • Program Cumulus pro „velké“ počítače ukončil svůj vývoj, doporučuji neinstalovat
  • Program CumulusMX už více méně není svým původním autorem vyvíjen, stále jsou však opravovány chyby a je dost možné, že dalšího vývoje se chopí komunita – ale to je zatím pouhá spekulace
  • Z těchto důvodů je dobré se na danou aplikaci zcela nespoléhat, ale využít schopností RX Pro2 PLUS v uploadu dat přímo na WUnderground. Pro výstavbu vlastního webového sídla je naopak využití dané aplikace více než účelné.
  • Pokud tedy instalovat CumulusMX (a to doporučuji), pak rozhodně připojte k Raspberry i pevný disk, např. HDD 2,5“ USB 250 GB, nebo něco podobného. Budete mít jednak mnohem více místa na data, upgrady, úpravy apod., jednak získáte výrazně vyšší spolehlivost celé sestavy.

Popis instalace a konfigurace aplikace se již vymyká obsahu tohoto článku, na druhou stranu bylo o ní dost napsáno i v českém jazyce. (Pokud by však byl větší zájem, nevylučuji i pokračování tohoto seriálu článků daným tématem, samozřejmě, pokud bude mít zájem i vydavatel.)

Kompletace

Arduino meteostanice WeatherDuino - Hotová stanice

Arduino meteostanice WeatherDuino - Hotová stanice

Hotová stanice

Upozornění: Některé z výše uvedených názvů mohou být chráněnými značkami svých majitelů, aniž je to v textu výslovně uvedeno.

Odkazy a zdroje

Zbyšek Voda

Zbyšek Voda

Už nějaký čas se zajímám o věci kolem Internetu věcí a otevřeného hardware a software. Tak jsem se také v roce 2010 dostal k Arduinu, pro které dodnes programuji a taky píšu články o práci s ním. Baví mě vymýšlet, jak staré věci používat novým způsobem.
Zbyšek Voda

Napsat komentář