Další meteostanice – aktuální počasí, předpověď a ePaper

Meteostanice je jeden z pokročilejších projektů, ke kterým se bastlíři uchylují. Bývá to také jeden z projektů, kteří bastlíři dlouhodobě používají kvůli jeho užitečnosti v běžném životě.

A tomhle článku právě najdete zajímavou kombinaci desky s Wi-Fi čipem ESP8266, zobrazovací jednotkou ePaper a API počasí, které poskytuje služba openweathermap.org.

Výhoda zobrazovací jednotky ePaper je zejména díky výborné čitelnosti a nulové spotřebě mimo čas, kdy se displej přepisuje. To bohužel neplatí v tomto případě – ePaper o velikosti 4.3″ disponuje rozhraním UART (běžně je to však SPI sběrnice), velkou externí FLASH pamětí, microSD kartou a mikrokontrolérem řídící komunikaci s řídící deskou i samotným displejem. To znamená, že i v uspaném stavu je značný odběr a dosahuje jednotek mA (cca 3mA).

Na druhou stranu jsou zde významné výhody – jednodušší komunikace, možnost uložení obrázků i fontů na microSD kartě tak i externí FLASH paměti.

Pokud však odpojíte napájení, zachováte výhody displeje a zároveň snížíte spotřebu na nulu.

Použité komponenty:

4.3″ ePaper s rozlišení 800×600 – https://www.dfrobot.com/product-1312.html

MeteoV3 – https://chiptron.cz/articles.php?article_id=223 (samotná DPS, stavebnice)

Power shield pro MeteoV3 – https://github.com/petus/Meteo-v3-ESP8266/tree/master/Design%20Files/PowerShield_Meteo-v3.1 (zdarma ke každé MeteoV3 desce – samotná DPS)

K předpovědi počasí můžete použít několik služeb – yr.no, wundergroudn.com aj. Já jsem v tomto projektu využil OpenWeatherMap.org.

Aktivace účtu a API OpenWeatherMap

Po registraci si můžete na stránkách aktivovat API, které je zdarma.

Účet zdarma vám poskytuje až 60 požadavků za 1 minutu, současné počasí, předpověd na 5 dní/po třech hodinách, UV index i aktivaci alarmů, které se váží k počasí.

Data jsou aktualizována nejpozději 1x za dvě hodiny.

Potřebné knihovny k ESP8266

K použití ePaper, předpovědi počasí tak i desky s ESP8266 (v Arduino IDE) je potřeba několik knihoven.

OpenWeatherAPI – https://github.com/sfrwmaker/openweathermap.org-ESP8266

Json – https://arduinojson.org/

JsonParser – https://github.com/squix78/json-streaming-parser

Arduino ePaper knihovna – https://github.com/Arduinolibrary/DFRobot_E_paper/blob/master/epd.zip (wiki)

Ikony ze kterých vychází ty mé, upravené – https://www.iconfinder.com/iconsets/weather-413

Ikony počasí

OpenWeatherMap (dále jen OWM) také předává aktuální ikony (seznam zde).

Na microSD kartě mám uložené BMP soubory s ikonami počasí. Na základě předaného identifikátoru ikony z OWM, kód vybere příslušnou ikonu a vykreslí jí na displej.

MicroSD karta musí být zformátována na FAT32 a názvy souborů musí být maximálně 10 znaků dlouhé (i s koncovkou).

Já jsem pojmenoval ikony stejně jako jsou na OWM.

Ikony jsou dostupné na tomto odkazu v ZIP.

Program

Nejdůležitější části programu jsou následující:

ow_key – klíč z OWM API (dostupné na OWM)

nodename – jméno zařízení (volitelné)

wifi_ssid – SSID vaší Wi-Fi sítě

wifi_passwd – heslo k vaší Wi-Fi síti
const char *ow_key = „—-„;

const char *nodename = „—„;

const char *wifi_ssid = „—-„;

const char *wifi_passwd = „—-„;

0 – načítání obrázků a fontů z externí FLASH

1 – načítání obrázků a fontů z microSD karty
epd_set_memory(1); // microSD card

Zapnutí a vypnutí ePaper (na MeteoV3 může být připojen shield, které dokáže odpojit napájení, shield je v mém připojen na GPIO 12, může však být i na GPIO 14)
digitalWrite(12, HIGH); // turn on the ePaper
digitalWrite(12, LOW); // turn off the ePaper

Načtení fontů
epd_set_ch_font(GBK32);

epd_set_en_font(ASCII32);

Načtení promněnných do vlastních proměnných (jako String) a vypsání String. Vytovřena jako univerzální – nezáleží zda jsou vstupní data také String nebo Int
String sCond = „“ + String(ow_cond->cond) + „“;

sCond.toCharArray(buf, 50);

epd_disp_string(&buf, 610, 370);

Vykreslení ikon
epd_disp_bitmap(„PIC01D.BMP“, 380, 150);

Uspání modulu
ESP.deepSleep(SLEEP_DELAY_IN_SECONDS * 1000000, WAKE_RF_DEFAULT);

Zapojení

Mé podmínky: napájení MeteoV3 i ePaper ze dvou AA nebo AAA baterií, odpojení napájení ePaper po zobrazení dat.

Díky použití tohoto ePaper displeje a desky MeteoV3 je zapojení naprosto jednoduché.

Po naprogramování desky připojte výstup TX MeteoV3 na vstup DIN ePaper.

Napájení připojte přes power shield, jak je zobrazeno níže. Na desce MeteoV3 propájíte pájecí most JP2 (3.3V). Na power shield vyberte řídící GPIO ke spínání napájení (GPIO12[můj případ] nebo GPIO14) a propájíte JP2 (propojení VCC – 3.3V na vstup napájení ePaper).

Zdrojový kód

Na github najdete zdrojový kód, který si můžete upravit podle své potřeby.
Nezapomeňte se pak pochlubit na sociálních sítích!

Sdílejte článek:

Související články

Znáte stránku alojz.cz? Ne? Chyba! Na alojz.cz najdete předpověd počasí pro jednotlivá města v psané formě.

S rostoucí popularitou ePaper/eInk displejů roste i počet dotazů do čeho tyto elektronického papíry, na kterých můžete zobrazit od fotek, přes data z meteostanice nebo FVE až po kalendář, usadit tak, aby to bylo hezké.

Úprava obrázků pro ePaper je trochu zapeklitá.

Josef Zvolánek mě upozornil a velmi zajímavý projekt s ePaper displejem na kterém je zobrazeno aktuální počasí i předpověď a také události z vašeho google kalendáře.