Meteostanice s hodinami a s ukazatelem měsíčních fází


    
 


Základní popis:


Základem je modul s procesorem STM32F103 (zmetkový BluePill) a dotykový, 3.5" HMI displej 480x320 bodů (čínská kopie Nextionu).

"Zmetkovitost" BluePill je ale v tomhle případě výhodná.
Procesor má totiž dvojnásobnou paměť pro program, než by měla být podle popisu na jeho pouzdře (místo 64kB má ve skutečnosti 128kB). 

K tomu jsou připojené běžné čínské moduly s perifériemi:
BMP180 měření tlaku
mikro SD čtečka pro záznam dat na kartu
AM2302 vlhkoměr
APDS9960 čidlo přiblížení pro probouzení displeje
HC05 komunikace přes bluetooth
DS3231 RTC (hodinový obvod)


Z dalších součástek je v meteostanici osazena 32kB EEPROM, 2 x 2kB EERAM a expander PCF8574.
A pak už jen pár drobností jako několik FETů pro převodník napěťových úrovní I2C, infračidlo pro dálkové ovládání, pískák, ....

Na rozšiřující destičce je pak převodník na komunikaci RS485 pro případ použití vzdálených teplotních čidel.



Většina funkcí je dostupná přes dotykový displej.
Některé funkce je možné okamžitě vyvolat i běžným dálkovým infra ovladačem.

Servisní operace, jako je třeba mazání pamětí, nebo zazálohování naučených infra kódů je možné provádět přes Bluetooth, nebo přes USB převodník.
Přes Bluetooth je možné také vyžádat aktuální údaje (teploty, tlak, vlhkost, datum, čas, ....), včetně astronomických informací (časy východů a západů Slunce a Měsíce, stav osvětlení Měsíce ....),
a také informace o nastavení systému (Geosouřadnice, korekce čidel, stav LED, nastavení budíku ...)


To, co všechno meteostanice dokáže je vidět z následujících obrázků:





Základní obrazovka:
Datum, čas, aktuální venkovní a vnitřní teplota, vnitřní vlhkost, grafy venkovní teploty a tlaku za poslední 2 a půl dní.
Rekordy teploty (minimum a maximum) z poslední noci (18:00 až 6:00) (nebo z posledního dne 6:00 až 18:00).
Aktuální stav osvětlení Měsíce a datum + čas jeho příštího východu a západu.



Když během následující hlavní fáze (nov nebo úplněk) dojde k nějakému zatmění (Slunce nebo Měsíce), zobrazí se přes grafickou ikonu stavu osvětlení Měsíce ještě výrazné upozornění na zatmění.



Nad tabulkou s polodenními rekordy je lišta s ikonami, které signalizují různé stavy :
 - zapnutý Bluetooth
 - povolené ukládání záznamů na SD kartu
 - příští budík nastane za méně než 24h
 - chyba čidla
 - povolené rozsvěcení rekordových LED
 - speciální modrá LED pro signalizaci překročení nastavené úrovně venkovní teploty včetně paměti, že byla tato teplota překročena
- Také jsou k dispozici ikony pro signalizaci celkových rekordů (max. a min. venkovní teplota od ručního vynulování)




Při stisku grafické ikony se zobrazením aktuálního stavu osvětlení Měsíce se zobrazí detailní informace o Měsíci
Jeho aktuální poloha, čas východu a západu, elevační graf pro dnešek a zítřek,
datum a čas následující "hlavní" fáze (nov, první čtvrť, úplněk, poslední čtvrť).
Některé další astronomické informace jako je poloha ranního terminátoru, poměr aktuální vzdálenosti Měsíce o Země vůči perigeu a apogeu, stáří od novu.
Ve spodní části je pak malý azimutární graf, který zobrazuje, kde Měsíc vychází a zapadá, případně (pokud je aktuálně nad horizontem) kde se právě nachází.




Tlačítko "Zatmění" zobrazí seznam zatmění Slunce a Měsíce až do roku 2070 se základními informacemi o typu zatmění.
 V seznamu je možné listovat tlačítky na displeji, nebo dálkovým ovladačem.




Kliknutím na malý azimutární graf se zobrazí jeho velká verze s detailními informacemi o následujícím azimutu východu a západu Měsice.




Kliknutím na ikonu aktuálního stavu osvětlení Měsíce se zobrazí detailní informace o Slunci. (Vím, že je to trochu nelogické, ale už nebylo kam ten ovládací prvek nacpat.)
Jde o informace o aktuální poloze, čas a azimut východu a západu pro dnešek a zítřek, délka dne, a změna délky dne v porovnání se zítřkem.




Kliknutím na velkou ikonu Slunce v pravém horním rohu se zobrazí další detailní informace o následujících soumracích (úsvitech).



Při stisku oblasti se zobrazenými hodinami (a minutami) na hlavní obrazovce se ukáže kalendář. Jsou v něm vidět státní svátky (počítá se i datum Velikonoc - pátek a pondělí )
Malé ikony Měsíce signalizují hlavní měsíční fáze (nov, úplněk ....)
Dnešní den je zobrazen modře, svátky oranžově.
Mezi jednotlivými měsíci je možné listovat pomocí šipek, nebo dálkovým ovladačem.




Při stisku oblasti sekund na hlavní obrazovce se zobrazí příští nastavený budík.
Budík byl původně plánován pouze tak, že se ve stanovenou dobu rozsvítí automaticky displej a ve druhý nastavený čas zhasne.
Pak jsem k tomu přidělal ještě funkci, že první minutu tohoto svícení přerušované píská malý pískák.
Pískání je možné zastavit libovolným tlačítkem na infra ovladači, nebo přiblížením ruky k meteostanici.
Nastavování budíku je možné přes speciální obrazovku po stisku tlačítka "Změnit nastavení".

 




Stiskem oblasti s grafy na hlavní obrazovce se zobrazí menu pro detailní grafy měřených hodnot.
K dispozici jsou buď krátkodobé grafy (150 vzorků s rozlišením 5 minut - to je asi 12 hodin,
nebo dlouhodobé grafy (150 vzorků s rozlišením 1 hodina - to je asi 6 dní). Hodinové vzorky vznikají průměrováním dvanácti 5-minutových vzorků.
U pravého okraje grafu je minimální a maximální hodnota pro právě zobrazené období.

 

 




Při stisku tabulky s polodenními rekordy se zobrazí celkové rekordy včetně času nulování.




Na nastavovací obrazovce, která je přístupná po stisku ikony "Nastavení", je možné provádět základní nastavení systému
 (zapínat a vypínat BT, blokovat LED, blokovat automatické zhasínání displeje, nastavovat úrovně pro spínání modré LED, nastavovat čas a budík).

 




Hlubší nastavení systému je možné vstupem na speciální stránku při startu systému.
Při startu se několik sekund provádí kontrola periférií. Když se při této kontrole stiskne na displeji modrý odkaz na webovou adresu, zobrazí se nastavovací obrazovka, ve které je možné:
- nastavení zeměpisných souřadnic pro astronomické výpočty
- nastavení typu venkovních čidel teploty
- korekce jednotlivých čidel
- nastavení infra kódů pro dálkové ovládání.

Pokud je zvolena nadmořská výška 0 m.n.m., bude se zobrazovat absolutní tlak, který čidlo změří. Pokud bude nějaká nadmořská výška zadaná, bude se tlak přepočítávat na hladinu moře.

Jako venkovní teplotní čidlo je možné zvolit:
 1x DS18B20 - V tom případě je nutné ho skrýt před přímým slunečním světlem nějakým krytem
 2x DS18B20 - Tady se ze dvou naměřených hodnot vybírá čidlo s nižší teplotou, takže na druhé čidlo může klidně slunce svítit.
 RS485      - Tohle je skoro na samostatný článek.
           Jedno nebo dvě čidla DS18B20 jsou umístěna daleko od meteostanice a proto se naměřené údaje zpracovávají poblíž čidel pomocí ATtiny85.
           Pak jsou hodnoty přenášeny přes průmyslovou sběrnici RS485.
           V případě použití dvou teploměrů se i tady vybírá hodnota toho teploměru, který měří méně.
           Na sběrnici může být pověšeno více ATtiny85. Každý pak musí mít vlastní SLAVE adresu.
           V meteostanici je pak možné zvolit adresu, ze které se mají teploty zjišťovat.

   




Nastavení infrakódů se provádí ručním nalistováním příslušné funkce a následným stiskem tlačítka na dálkovém ovladači.
Když je rozpoznán nějaký smysluplný kód, je možné ho zapsat do paměti - tlačítkem "Potvrdit kód".
Když je pak v běžném provozu tento kód zachycen, provede se příslušná funkce.




Do meteostanice jsem přidal ještě funkci "Lampička", která při stisku jednoho tlačítka na dálkovém ovladači rozsvítí displej na 100% bílou barvou pozadí.
Tím pak v noci může posloužit jako jednoduchá dálkově ovládaná lampička.

Další "Noční funkce", která je také dostupná přes jedno tlačítko na dálkovém ovladači jsou velké hodiny.
Po stisku tlačítka na dálkovém ovladači se na několik sekund zobrazí hodiny a venkovní teplota. Pak displej zase zhasne.
Velké údaje jsou dobře čitelné i na velkou vzdálenost v rozespalém stavu.

 




Většinu hodnot, které se zadávají přes displej, je možné naklikat pomocí šipek (den, měsíc, hodina, minuta, korekce).
U některých hodnot by ale klikání mohlo trvat dost dlouho (nastavení roku, zeměpisných souřadnic, přepínací úrovně modré LED ...)
Proto je v těchto případech lepší použít jednoduchou číselnou klávesnici.
V levé horní části je zobrazeno minimální a maximální číslo, které je možné zadat




Při prvním spuštění programu je nutné naplnit vnitřní EEPROM různými astronomickými a programovými daty.
Jako nejjednodušší řešení se mi zdálo uložení těchto dat do textových souborů na SD kartu.
Když se při prvním spuštění programu zjistí, že je EEPROM prázdná, tyto textové soubory se z SD karty do EEPROM překopírují.
Kopírování trvá několik minut a průběh je signalizován třemi progress bary.




Všechny naměřené hodnoty jsou zaznamenávány každou minutu a pokud je to v nastavení povoleno, jsou pak každou hodinu zapisovány do CSV souboru na SD kartě. Minutové záznamy se uchovávají v obyčejné RAM, takže když dojde k výpadku napájení, jsou data od poslední celé hodiny ztracena. Do CSV souboru se uloží nulové řádky.
Aby nedocházelo k neustálému přepisování jednoho souboru, je každý den založen soubor nový.


Zároveň se na kartu zapisují ještě informace o různých změnách nastavení systému nebo o resetech (soubor log.txt).

Pokud dojde k překročení rekordní teploty (nebo k poklesu pod minimální teplotu), i tato informace se zaznamená do zvláštního souboru na SD kartě.
Při resetu rekordů se zakládá nový soubor.


Ukázkové video

https://youtu.be/iP01Y0HIRpE


Schéma + plošňák


POZOR!
Před osazením si přečtěte poznámky k osazení:
ZDE

verze pro Eagle: meteo_stm_eagle.zip


Lepší rozlišení na klik.



Program pro displej


Program je určený pro vývojové prostředí "USART HMI v 0.55" (možná i novější) od TJC (čínský web).
Poangličtění vývojového prostředí se mi povedlo podle tohodle návodu:
    https://unofficialnextion.com/t/howto-use-tjc-editor-v0-55-for-tjc-panels-in-english/39



Program pro STM32F103 
    POZOR: musí to být verze se 128kB FLASH paměti

meteostanice.zip (aktualizace 15.9.2019)

verze 15.9.2019: Opravený problém s rozsvěcováním displeje v té samé minutě, kdy končí budík.
(V předchozí verzi bylo nutné pro rozsvícení displeje provést dvojitou aktivaci čidla přiblížení.)

GitHub: ../astromik/meteo


S knihovnami do vývojového prostředí Arduina si nejsem moc jistý, ale asi by to měly být tyto: knihovny.zip
Nastavení IDE
 
 

Program pro ATtiny85

(pro vzdálená čidla teploty, která komunikují přes RS485)
Nastavení IDE
 
 

Datové soubory pro úvodní naplnění EEPROM z SD karty

sd_data.zip

(rozbalit do kořenové složky SD karty)

 

 


Rozložení informací v EEPROM a v EERAM


To je jen pro orientaci co je kde uloženo.





Ovládání přes sériovou linku

Většina funkcí se dá ovládat přes dotykový displej, nebo dálkový ovladač. Některé funkce jsou ale dostupné jen přes sériovou linku (Bluetooth).

Detailní popis funkcí je dostupný na samostatných stránkách při kliknutí na následující obrázky.

(Jednoduchá nápověda pro "běžné funkce" se zobrazí po zadání znaků "#?" do sériového terminálu.
 Nápověda pro servisní funkce se zobrazí po zadání kódu "@?".)









úvodní strana webu AstroMiK.org

poslední úprava stránky 3.11.2019