Dnes si postavíme meteosondu. Ale ne! Už zase? Vždyť už jsi ji za poslední rok a půl postavil hned několikrát v nejrůznějších podobách (1, 2, 3). Ano, a proto dnes nečekejte ani tak ukázku připojení x-tého teploměru k Arduinu a přečtení hodnot, ale podíváme se na to, jak vlastně postavit venkovní bezdrátovou meteosondu jako takovou.
Získání hodnot z teploměru a vypsání údaje na displej, skrze sériovou linku do PC anebo odeslání skrze Wi-Fi kamsi na web je totiž opravdu jen to pomyslné A. Postavit venkovní bezdrátovou sondu, která odolá nepřízni počasí kdesi na zahradě nebo na prašném balkoně uprostřed velkoměsta, totiž může být mnohem větší výzva.

Schéma venkovní meteosondy, jejíž komponenty si dnes stručně ukážeme. Pro komunikaci může použít Wi-Fi (mikrokontrolery ESP8266/ESP32), nebo samostatný rádiový vysílač (433 MHz, 868 MHz, Sigfox, BigClown aj.)
V následujících kapitolách si tedy ve stručnosti projdeme všechny prvky, které k tomu budete potřebovat podle schématu výše: radiační štít, solární panel, vhodný zdroj energie, nabíjecí moduly, měniče, moduly voltmetru, mikrokontroler a konečně senzory, které budou měřit okolí.
Pokračování 2 / 9
Radiační štít
Základem každé meteosondy je vhodná schránka. A tím opravdu není plastová piksle od zmrzliny, nebo krabička pro elektrikáře z ABS. Pokud chcete naměřit co nejvěrnější hodnoty a schránku neschováte kamsi pod stříšku, budete potřebovat radiační štít.




Malý pasivní radiační štít TFA. Vnitřní komora s rozměry 60 × 160 mm nabízí prostor pro malou protoypovací desku velikosti NodeMCU, senzory a baterii.
Zpravidla se jedná o plastový válec složený z hromady prstenců, mezi kterými volně prochází vzduch. Zatímco tělo samotné odstíní a pohltí sluneční paprsky, nitro se nebude díky přirozené cirkulaci příliš zahřívat.
Jak vidíte na poslední fotografii, sám mám štít připevněný na balkoně a celý den na něj praží Slunce. Přesto se teplota uvnitř zvýší přes den jen slabě a spíše kvůli radiaci ohřátého panelového domu.
Malý pasivní radiační štít, do kterého se vejde Arduino Nano (ATmega), NodeMCU (ESP8266/ESP32), bluepill (STM32) nebo jiná úzká prototypovací deska, u nás prodává třeba brněnský meteoshop.cz.
Pokračování 3 / 9
Solární panel
Fajn, krabičku bychom měli, ale jelikož bude mimo byt a dům, měla by mít samostatné a bezúdržbové napájení. Tedy takový zdroj, který vydrží celé roky, aniž byste museli maličký radiační štít složitě rozdělávat a vyměňovat baterie.
Ideálním řešením je tedy solární nabíjení a lithiový článek. Solárních panelů najdete na eBayi, AliExpressu a dalších nezměrné množství, takže stačí nějaký, který dodá alespoň 5 V a za jasného poledne proud alespoň v řádu stovek miliampérů.




Solární panel s 5V USB konektorem za dvě stovky. Díky konstrukci je prakticky nerozbitný. Riziko hrozí jen elektronice a USB portu, Mohlo by do něj zatéci. Pomůže kvalitní izolační páska nebo třeba lepící pistole.
Při výběru solárního panelu mějte také na paměti, že bude venku, v nepřízni počasí, a tak je dobré, aby byl zakrytovaný. Já si pořídil tento model s USB konektorem za dvě stovky. Prodejce slibuje až 10 W (2 A při 5 V), což je jen zbožné přání, ale pro naše účely bohatě stačí zlomek slibovaného proudu. Solární panel jsem si vybral hlavně pro jeho nezničitelnou konstrukci a stabilní 5V výstup.
Pokračování 4 / 9
Baterie
Takže primární zdroj energie bychom měli, ještě ale potřebujeme nějakou baterii, která bude dodávat stabilní napětí a proud během noci a přes den, pokud bude pod mrakem. Našim účelům nejlépe poslouží buď balíček s modelářskou 3,7V LiPo baterií, anebo solidní a prakticky nezničitelný 3,7V Li-ion článek 18650 s kapacitou okolo 2 000 mAh.
Při mých testech, kdy jsem vyzkoušel snad vše od Li-ion placek ze starých mobilů po modelářské LiPo jsem nakonec vždy skončil u článků 18650, které připomínají klasickou tužkovou baterii, ale jsou mnohem větší.


Různé konsturkce LiPo/Li-ion baterií a článek Nexcell LIR18650
Mám pocit, že 18650 je opravdu téměř nezničitelná a vhodná pro začátečníky i proto, že spíše přežije prvotní experimenty a neúspěchy. Kvalitní článek přežije zkrat, i podbití, kdy napětí v článku klesne pod kritickou mez. Jen je třeba tentokrát sáhnout hlouběji do kapsy a nekupovat je na eBayi, který je v tomto směru plný falešných napodobenin a nekvalitních cetek, u kterých prodejce udává pohádkovou a naprosto nesmyslnou kapacitu, která je ve skutečnosti třeba jen desetinová.
Pokračování 5 / 9
Nabíjecí modul a měnič
Takže máme radiační štít, solární panel a 3,7V lithiový článek. Ten ale nemůžeme jen tak připojit k solárnímu panelu, který bude za jasného poledne dodávat 5 V. Od tohoto tu máme nespočet nabíjecích modulů s ochrannými obvody, které se postarají o to, aby se baterie nabila jen na maximální bezpečné napětí (zpravidla 4,2 V), a zároveň vypnou odběr energie z baterie, pokud její napětí klesne pod kritickou mez (zpravidla okolo 2,7 V).




Nabíjecí moduly pro jeden článek Li-ion/LiPo na 4,2 V, step-up měnič na 5 V, regulovatelný step-up měnič s trimrem a na posledních dvou fotografiích integrovaný modul se vším všudy. Obsahuje tedy jak nabíjecí logiku na 4,2 V, tak měnič na 5 V.
Plně nabitý lithiový článek 18650 by tedy za ideálních podmínek dodával nějakých 4,2 V, to nám ale nemusí stačit. Potřebujeme tedy ještě step-up měnič, který nám vyrobí stabilních 5 V a nehledě na to, jestli je baterie zrovna nabitá na 4,2 V nebo třeba na 3,5 V.
Destiček postupně přibývá, a tak na internetu seženete i kombinované moduly, které na ploše velikosti poštovní známky integrují vše dohromady – jak nabíjecí modul, tak měnič na 5V. Malý plošný spoj má tedy piny pro připojení Li-ion/LiPo baterie, primárního zdroje napětí (třeba solární panel) a zároveň 5V výstup pro samotný mikrokontroler.
Pokračování 6 / 9
Voltmetr
U zařízení, které běží na baterii, se samozřejmě hodí průběžně sledovat stav baterie. U prvotního návrhu designu je to pak naprosto kritické, abychom před trvalou montáží věděli, jestli nám bude kapacita baterie stačit i během krátkých a mrazivých zimních dnů pod mrakem.


Hromádka trimrů a modul multimetru INA219 s rozhraním I2C
Stav nabití baterie můžeme zjistit jednoduchým odečtem jejího napětí, protože víme, že plně nabitá baterie bude mít zhruba 4,2 V a zcela vybitá pak 2,7 V (dle specifikace konkrétního článku). Napětí můžeme odečíst třeba pomocí analogového pinu (funkce analogRead), ten však musí akceptovat podobnou voltáž, případně ji můžeme snížit třeba pomocí trimru s nastavitelným odporem pomocí šroubku. To znamená, že trimrem snížíme rozsah 0-4,2 V podle libosti třeba na 0-3 V a toto bezpečné napětí už budeme moci připojit i do analogového pinu na mikrokontroleru s 3,3V logikou.
Pro přesnější a stabilnější čtení napětí baterie pak slouží specializované moduly voltmetrů a multimetrů s rozhraním I2C. Patří k nim zejména moduly s čipem multimetru INA219, který změří i protékající proud, nebo o něco skladnější čtečky napětí MAX17043. Pro oba moduly najdete adekvátní knihovny pro Arduino.
Pokračování 7 / 9
Mikrokontroler
Zdroj energie máme hotový, takže zbývá už jen mikrokontroler a samotné senzory dle našeho gusta. Aby měla meteosonda dostatek šťávy, nebude samozřejmě stále v plném provozu, ale pouze se každých pár minut probudí, změří data ze senzorů, odešle je do základny a zase se přepne do hlubokého spánku, během kterého bude spotřebovávat pouze zlomek elektrické energie.


Staré dobré Arduino Nano s 16MHz čipem ATmega328p a adaptér se šroubovými závity pro trvalejší zapojení periferií.
Pro takový scénář je třeba použít vhodnou prototypovací desku. Tedy desku, jejíž řídící čip je během spánku opravdu úsporný, a desku, na které zbytečně po celou dobu nesvítí žádné diody. Z tohoto důvodu vyřadím prakticky všechna obvyklá Arduina s power LED.
Dokud takovou desku napájíte z USB, svítící LED samozřejmě nevadí, pokud však bude deska připojená jen k baterii a solárnímu panelu, je skutečně hloupé zbytečně spalovat miliampéry drahocenného proudu.


Populární destička NodeMCU s Wi-Fi čipem ESP8266. Venkovní teplotu mi za všech povětrnostních podmínek měří každé dvě minuty už déle než rok.
Jako ideální adept se tedy jeví desky s Wi-Fi čipy ESP8266 a ESP32. Nejen že destičky jako třeba NodeMCU zpravidla nemají žádné zbytečné LED (jen maličké LED přímo na čipu, které však poblikávají jen při aktivitě), ale disponují i perfektním úsporným režimem, na který pamatuje v Arduinu přímo hlavní knihovna pro jejich obsluhu.
Životní cyklus programu, na čipu ESP8266, který jej spustí každé dvě minuty a v mezidobí spí hlubokým spánkem, kdy je většina hardwaru vypnutá, by tedy vypadal takto:
void setup() {
Serial.begin(115200);
Serial.setTimeout(2000);
while(!Serial) { }
Serial.println("Jsem vzhuru");
Serial.println("Usinam na 2 minuty");
// 2 minuty = 120 sekund = 120 000 000 us
ESP.deepSleep(120e6);
}
void loop() {}
Jak vidno, vůbec se nepoužívá smyčka loop, čip se totiž ze spánku probudí tak, že časovač po uplynutí intervalu v mikrosekundách změní napětí na pinu WAKE, který je třeba vodičem spojit s pinem RST/RESET. Čip se tedy po uplynutí lhůty resetuje a program se znovu spustí. Proto se vždy zpracuje jen kód v hlavní funkci setup.
Čipy ESP8266 a ESP32 jsou během hlubokého spánku velmi úsporné, ačkoliv reálná spotřeba může být samozřejmě vyšší. Čip je totiž umístěný na prototypovací desce a záleží tedy také na návrhu jejích vlastních obvodů, které mohou nehledě na čip spalovat energii (viz zmíněné power LED aj.).

Různé typy režimu spánku čipu ESP8266 a spotřeba
Destičky s ESP8266/ESP32 se zároveň mohou postarat o konektivitu, čip se totiž po probuzení připojí k vaší síti Wi-Fi a odešle data třeba na webový server; ať už u vás doma třeba na Raspberry Pi, nebo kdesi na internetu.
Další zajímavou alternativou jsou ultralevné destičky s armovými čipy STM32F103C8 (Cortex-M3, 72 MHz, 64 kB flash, 20 kB SRAM). Říká se jim bluepill (kvůli modrým tištěným spojům), v prostředí Arduino je můžete programovat díky projektu stm32duino.com a pomocí knihovny STM32sleep je lze uspat do hlubokého a velmi úsporného spánku podobným způsobem jako ESPy.


Typická modrá destička s armovým mikrokontrolerem STM32F103C8. I ten lze velmi úsporně uspat, pro co nejnižší spotřebu je ale třeba přerušit napájení power LED na desce.
Nevýhodou bluepillů je však ona power LED, která svítí, jakmile je destička pod napětím. Co tedy získáte na efektivním spánku, ztratíte zbytečnou diodou. Řešení je ale snadné. Stačí LED odpájet, anebo nožíkem přerušit kontakty.
S bluepilly jsme si pohráli už v jednom z předchozím dílů našeho seriálu:
Pokračování 8 / 9
Vše v jednom
Představte si prototypovací desku, která má vše k provozu na baterii už na sobě, takže nemusíte do malého radiačního štítu cpát nabíjecí modul a měnič. Na internetu jich najdete celý zástup, jejich kvalita a ergonomie je však mnohdy hodně kolísavá.

Na destičce Wemos Pro je úplně všechno: Wi-Fi čip ESP32 i nabíjecí obvod pro lithiovou baterii, Na desce je zároveň vyvedení pin VBAT pro snazší změření napětí v baterii.
U desek s konektory na Li-ion/LiPo baterii by například měl být samozřejmostí VBAT pin pro snadné čtení napětí z baterie. Bohužel tomu tak ale často není. Naopak povedeným exemplářem je deska Wemos Pro s čipem ESP32, za kterou si však lehce připlatíte. Součástí je bateriový konektor (a také kabel pro snadné připojení) a deska má všechny patřičné piny. Solární panel se stabilním 5V výstupem pak stačí připojit rovnou do micro USB na desce.
Pokračování 9 / 9
Senzory
Nakonec už zbývají opravdu jen ty senzory. Je jich celá řada. Tlak, vlhkost a v nouzi i teplotu dobře změří moduly kombinovaného tlakoměru Bosch BME280. Teploměr však slouží hlavně ke korekčním výpočtům uvnitř čipu a za nízkých zimních teplot může odchylka o něco poskočit. Ale není to nic tragického. Namísto -15 °C změříte třeba -17 °C.
Chcete-li vysokou přesnost v celém rozsahu, pořiďte si modul s teploměrem a vlhkoměrem Sensirion SHT30 nebo ještě přesnějším SHT31, jehož odchylka se pohybuje okolo 0,2 °C prakticky v celém rozsahu.




Kombinovaný tlakoměr/vlhkoměr/teploměr BME280, luxmetr BH1750 a kombinovaný teploměr/vlhkoměr SHT30
Co ještě měřit? Určitě přirozené světlo – délku a intenzitu slunečního jasu během dne. V tom nám pomůže luxmetr BH1750. Pokud bude umístěný na povrchu radiačního štít (třeba pod kvalitní transparentní lepící izolační pásku) a štít namíříte na volném prostranství na jih, získáte perfektní přehled o délce dne, budete vědět, kdy u vás vychází a zapadá Slunce a z naměřených dat jasně odhadnete, kdy bylo jasno a kdy pod mrakem.
Všechny zmíněné senzory používají pro komunikaci sběrnici I2C, takže na destičce dohromady zablokují jen dva piny GPIO.
Měřit toho ale můžete ještě mnohem více. Třeba srážky, prachové částice, UV nebo třeba rychlost větru.



Vizualizaci změřených dat se meze nekladou. Záleží pouze na vás.
Při zapojování senzorů k desce mějte opět na paměti napájení. Pokud je odběr proudu opravdu malý a menší než limitní proud pro GPIO pin na dané desce, stojí za zvážení, zdali senzory namísto z dedikovaného 3,3V/5V pinu nenapájet z toho logického.
Napětí na logickém GPIO pinu totiž můžeme před přechodem do režimu spánku nastavit na LOW, čímž prakticky odpojíme senzory od napájení a nemusíme tedy studovat jejich vlastní režim spánku a spotřebu během nečinnosti. Po probuzení mikrokontroleru nejprve opět nastavíme HIGH na logickém pinu, který je napájí, a senzory nastartují.
Na stranu druhou jim ale zase budeme muset dát alespoň dvě sekundy k dobru, než začnou po studeném startu vracet korektní hodnoty, takže navýšit čas, po který mikrokontroler a celý obvod odebírá proud z baterie.
Stavba a provoz podobné meteosondy je tedy opět především zajímavá hra a výzva, během které se naučíte prakticky vše o tom, jak se jednotlivé součástky chovají za různých podmínek – za různých vlhkostí a teplot – a sami přijdete na různé vylepšováky. Třeba na to, že leckdy pomůže některý z modulů obalit klasickou izolační páskou a rázem začne fungovat i během lednového mrazu nebo při 100% vlhkosti.
Tento článek je součástí balíčku PREMIUM+
Odemkněte si exkluzivní obsah a videa bez reklam na devíti webech.
Chci Premium a Živě.cz bez reklam
Od 41 Kč měsíčně