
Potřeboval jsem meteostanici. Ano, na internetech jsou jich stovky. Já potřeboval jinou – automatická detekce čidla, grafy na displeji, ultra úsporná. A navíc kompletně offline. A proč jsem ji potřeboval? Měření doma, na chalupě nebo třeba v autě.
Tak jsem si ji postavil. Běží na desce LaskaKit ESPink-4.26 a všechno – měření, historii i grafy – si ukládá v sobě, ne do cloudu.
Článek má tři části. V první je, co meteostanice umí. Ve druhé, jak ji rozjet a nastavit, to zvládne i začátečník. Třetí je pro bastlíře, kteří chtějí víc: pokročilé nastavení a všechno, co je potřeba k úpravám firmwaru.
Co to je a co umí

MeteoEink je meteostanice s e-paper displejem, která funguje úplně sama. Nepotřebuje internet, cloud ani domácí server. Měří, kreslí grafy a všechno si pamatuje ve vlastní paměti.
Sama pozná, co jste k ní připojili
Při každém startu proskenuje I2C a 1-wire sběrnici a podle připojených čidel si nastaví displej i grafy. Vyměníte čidlo, restartujete, hotovo. Nic se nepřepisuje v kódu.
- SHT40 měří teplotu a vlhkost, je přímo na desce
- SCD41 měří CO2. Pozor na SCD40, vypadá stejně, ale neumí měření single shot, které deska používá. Firmware ho pozná a upozorní na displeji.
- SEN63C nebo SEN66 měří prach i CO2 v jednom modulu
- BME280 nebo BMP280 měří tlak
- DS18B20 je druhý teploměr na kabelu, třeba za oknem
Co uvidíte na displeji
Nahoře velkým písmem teplotu a vlhkost, pod nimi CO2, prach nebo tlak, podle toho, co máte připojené. Dole až čtyři grafy za poslední dny, v nich až šest veličin. Které veličiny v nich budou, si stanice vybere sama, nebo jí to řeknete. Do grafu jde poslat i napětí baterie.
E-paper drží obraz i bez napájení. Mezi měřeními deska spí, takže na baterii vydrží týdny.
Data zůstávají u vás
Naměřené hodnoty se ukládají do paměti desky a přežijí i vybitou baterii. Po zaplnění se přepisují ty nejstarší, graf se jen posouvá. Kdykoliv si je stáhnete do počítače jako CSV nebo jako obrázek s grafy.
Kam ji dát
Když nepotřebuje síť ani zásuvku, můžete ji vzít s sebou. Do karavanu, na chatu, do apartmánu na dovolené.
Jen ne ven. Deska, e-paper ani baterie nejsou chráněné proti vlhkosti a mrazu. Venkovní teplotu změří DS18B20 na delším kabelu v radiačním krytu, kabel protáhnete třeba pod okenním rámem a deska zůstane uvnitř.

Jak ji rozjet a ovládat
Nahrání firmwaru
Nepotřebujete vývojové prostředí ani kompilátor. Deska ESPink-4.26 (nebo i s krabičkou) stačí, čidla můžete přidat kdykoliv později.
- Stáhněte z GitHubu soubor
MeteoEink426.ino.merged.bin. - Připojte desku kabelem USB-C k počítači.
- Otevřete esp32flasher.chiptron.cz v Chrome nebo Edge, vyberte čip ESP32-S3, soubor a nahrajte.
Za dvě minuty je hotovo, deska se sama restartuje a začne měřit.
Zapojení čidel
Čidla se připojují konektorem uŠup (kompatibilní se SparkFun Qwiic a Adafruit STEMMA QT, viz pinout konektoru). Nic se nepájí a na pořadí nezáleží.
Výjimkou je DS18B20. Datový vodič patří na GPIO4 a mezi něj a napájení musíte dát rezistor 4,7 kΩ. Bez něj čidlo neodpoví a stanice ho vůbec nenajde. Konektor pro 1-wire deska nemá, takže je potřeba trochu bastlit – čidlo se připojí k headeru po straně desky.

Nastavení bez sáhnutí do kódu
Všechno se nastavuje v prohlížeči, z počítače přes USB nebo z telefonu přes WiFi. Jak se do nastavení dostat, je napsané i dole na displeji.
| Tlačítko při restartu | Co se stane |
|---|---|
| PUSH 2 s | nastavení přes USB |
| PUSH déle než 5 s | WiFi hotspot pro telefon |
| DOWN 5 s | smaže celou historii |
Přes USB: připojte desku kabelem, otevřete v Chrome nebo Edge meteoeink.chiptron.cz a klikněte na Připojit desku. Pak desku restartujte a držte přitom asi 2 sekundy tlačítko PUSH. Stránka vás provede. Displej pak ukáže Servisni rezim, deska mezitím neměří.
Kromě nastavení si tam zobrazíte grafy (stejné jako na displeji), v grafu kurzorem odečtete hodnotu v konkrétním okamžiku a data stáhnete jako CSV nebo obrázek.

Přes WiFi: při restartu držte PUSH déle než 5 sekund. Deska vytvoří vlastní zabezpečenou síť a na displeji ukáže QR kód. Naskenujete ho fotoaparátem, telefon se sám připojí a otevře konfigurační stránku. Nastavíte, uložíte, vypnete.
Hotspot se sám vypne po pěti minutách nečinnosti, aby se zbytečně nevybíjela baterie. A deska se nikdy nepřipojuje k vaší domácí síti – WiFi zapne jen tehdy, když ji potřebujete k nastavení.

Nastavíte interval měření, které veličiny se kreslí do grafů a korekci teploty a vlhkosti pro každé čidlo zvlášť. Stránka hned ukáže, jak dlouhá historie se při daném nastavení vejde.


Kalibrace CO2
Máte SCD41, SEN63C nebo SEN66? Pak tenhle krok nevynechávejte. Deska čidlo mezi měřeními vypíná a v takovém režimu se samo neseřídí, automatická samokalibrace nefunguje. Bez kalibrace měří nesmyslné hodnoty.
Kalibruje se na venkovní vzduch, ten má kolem 420 ppm.
- V nastavení vyplňte nadmořskou výšku, přes WiFi je přímo v panelu CO2 vedle kalibrace. Bez ní čidlo počítá s tlakem u hladiny moře.
- V části Kalibrace CO2 nechte 420 ppm a potvrďte (přes WiFi tlačítkem Kalibrovat, přes USB tlačítkem Použít).
- Nastavení ukončete tlačítkem Uložit a vypnout hotspot, nebo Uložit a ukončit servis.
- Do 90 sekund odneste desku ven. Do stínu, dál od lidí a aut. Displej odpočítává.
- Počkejte, až displej ukáže výsledek. Obvykle to trvá 5 až 15 minut.
Korekce se uloží přímo do čidla a přežije výměnu baterie i nový firmware. Stačí ji zopakovat jednou za pár měsíců.
Když se hodnoty do 20 minut neustálí, kalibrace se neprovede a displej napíše proč: rozptyl, CO2 klesá nebo stoupá, mění se teplota nebo hodnoty kolísají. Velký rozptyl na čerstvém vzduchu znamená, že čidlo skáče víc, než má. U SCD41 zkuste obnovit tovární kalibraci. Když to nepomůže, čidlo je nejspíš vadné.

Pro pokročilé
Dvě a více hodnot v jednom grafu
U každé veličiny v nastavení vyberete číslo grafu. Co má stejné číslo, skončí v jednom grafu. Vybrat jde až 6 veličin, grafy jsou ale nejvýš čtyři. Pátou a šestou veličinu je proto potřeba s něčím sloučit.
Kolik křivek se do jednoho grafu vejde, záleží na jednotkách:
- Stejná jednotka, až tři křivky. Všechny sdílejí jednu osu Y. Třeba teplota ze SHT40, SEN63C a DS18B20, vlhkost ze dvou čidel, nebo PM2.5 s PM10.
- Různé jednotky, nejvýš dvě křivky. Každá dostane vlastní osu, jedna vlevo, druhá vpravo. Třeba CO2 s teplotou, nebo CO2 s prachem.
- Tři různé jednotky v jednom grafu nejdou. CO2, teplota a vlhkost by potřebovaly tři osy a ty se vedle grafu nevejdou.
Křivky rozliší plná, čárkovaná a tečkovaná čára. Legenda nad grafem ukáže ke každému čidlu minimum a maximum. Když rozložení nejde, konfigurátor ani hotspot ho neuloží a napíšou proč. Čtyři veličiny ve dvou grafech mají navíc dvakrát víc místa na výšku.
Šest veličin ve čtyřech grafech může vypadat třeba takhle:
| Graf | Co v něm je |
|---|---|
| 1 | teplota SHT40 + SEN63C + DS18B20 |
| 2 | CO2 |
| 3 | vlhkost |
| 4 | tlak |
Jedna past: pokojová a venkovní teplota v zimě. Společná osa se roztáhne přes třicet stupňů a z denního průběhu nezbude nic.

Které čidlo dodává hlavní teplotu
Má-li sestava víc teploměrů, vyberete si, který z nich ukazuje velké číslo na displeji. Ostatní jdou dát do grafu zvlášť, každý s vlastní korekcí.
Prach a spotřeba
SEN63C a SEN66 mezi měřeními nespotřebují nic, deska je odpojí od napájení. Jenže každé měření znamená roztočit ventilátor a nechat čidlo asi půl minuty běžet na 90 mA, než jsou hodnoty platné. Proto jde nastavit, aby se prach a CO2 měřily jen každé druhé, třetí nebo čtvrté probuzení. Teplota se dál měří podle základního intervalu.
Další volby: jak dlouho čidlo běží před odečtem (méně než 30 s dává podhodnocený prach), uspání desky během zahřívání čidla a automatické čištění ventilátoru jednou týdně.

U SCD41 jde kalibraci vrátit do výrobního stavu tlačítkem Obnovit tovární kalibraci. Hodí se, když nevíte, co se s čidlem dělo.
Jak dlouhá historie se vejde
Paměť se dělí mezi veličiny v grafech. Čím méně jich je a čím delší interval nastavíte, tím delší historii uložíte. Sloučení dvou veličin do jednoho grafu historii neprodlouží, počítá se počet veličin. Pátá a šestá veličina jde jen se slučováním.
| Interval | 1 veličina | 2 veličiny | 3 veličiny | 4 veličiny | 5 veličin | 6 veličin |
|---|---|---|---|---|---|---|
| 1 min | 34 h | 22 h | 14 h | 11 h | 8,6 h | 7,2 h |
| 5 min | 7 dní | 4,5 dne | 3 dny | 2,2 dne | 1,8 dne | 1,5 dne |
| 10 min | 14 dní | 9 dní | 6 dní | 4,5 dne | 3,6 dne | 3 dny |
| 15 min | 21 dní | 13,5 dne | 9 dní | 6,7 dne | 5,4 dne | 4,5 dne |
| 30 min | 42 dní | 27 dní | 18 dní | 13,5 dne | 10,8 dne | 9 dní |
| 60 min | 84 dní | 54 dní | 36 dní | 27 dní | 21,6 dne | 18 dní |
Změna intervalu nebo výběru veličin založí novou historii. Přeskládání veličin mezi grafy ji nesmaže.
Chcete na tom stavět dál
Celý firmware je jeden soubor MeteoEink426.ino na Arduino frameworku, takže se nemusíte prokousávat strukturou projektu. Kód najdete na github.com/petus/meteoeink, licence MIT.
Překlad: Arduino IDE s jádrem arduino-esp32, deska ESP32S3 Dev Module, Flash Size 16 MB, PSRAM vypnutá.
Knihovny:
- GxEPD2 a Adafruit GFX pro displej
- Adafruit BME280 a Adafruit BMP280
- SparkFun SCD4x Arduino Library
- OneWire a DallasTemperature pro DS18B20
- QRCode (Richard Moore) pro QR kód hotspotu
- Sensirion I2C SEN66 a Sensirion I2C SEN63C (povinné), SEN65, SEN68 a SEN69C volitelně. Sensirion Core se nainstaluje jako závislost.
SHT40 má vlastní ovladač přímo v kódu, protože knihovna od Adafruitu umí jen adresu 0x44 a tady jsou potřeba i 0x45 a 0x46.
Na co si dát pozor:
- Arduino IDE si samo generuje prototypy funkcí a vkládá je před první funkci v souboru. Nová funkce proto nesmí být nad blokem typů v sekci VELIČINY A ČIDLA, jinak překlad spadne na desítkách chyb
was not declared in this scope. - I2C běží na 100 kHz, víc SEN6x nezvládne.
- Za konfigurační stránkou hotspotu (raw string
AP_PAGE) Arduino IDE prototypy negeneruje. Funkci, která je definovaná až tam a volá se dřív, je potřeba deklarovat ručně.
Postup pro přidání nového čidla, pinout a strukturu kódu najdete v README na GitHubu. Stránka hotspotu je přímo ve firmwaru, konfigurátor pro USB je webová aplikace na meteoeink.chiptron.cz a s deskou komunikuje přes Web Serial.
3D tištěná krabička
Meteostanici můžete umístit do existující 3D tištěné krabičky, kterou si necháte vytisknout, nebo si ji vytisknete sami.
Pro mou potřebu jsem upravil zadní stranu krabičky a přidal k ní mini radiační štít, držák kabelu DS18B20 a držák samotného senzoru DS18B20. Upravenou zadní část najdete na Printables.









Komentáře na sítích