Sdílejte chiptron.cz na sociálních sítích



RSS feeds

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



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í 800x600 - 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!

Upozornění

Administrátor těchto stránek ani autor článků neručí za správnost a funkčnost zde uvedených materiálů.
Administrátor těchto stránek se zříká jakékoli odpovědnosti za případné ublížení na zdraví či poškození nebo zničení majetku v důsledku elektrického proudu, chybnosti schémat nebo i teoretické výuky. Je zakázané používat zařízení, která jsou v rozporu s právními předpisy ČR či EU.
Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva.
Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ.
9,979,347 návštěv