Coder Social home page Coder Social logo

meteodisplej_gxepd2's Introduction

Display pro meteostanici

Display pro meteostanici - ESP32 s ePaper driverem a ePaper displej.

Zobrazuje:

  • východ a západ slunce
  • fázi, východ a západ měsíce
  • lidsky čitelnout předpověď Alojz.cz
  • varování ČHMÚ
  • předpověď po hodinách z yr.no
  • stav lokální meteostanice

Ukázka displeje bez varování ČHMI, s předpovědí na dva dny (ukazuje se jen odpoledne). Nahoře je vidět fáze měsíce, dnešní západ měsíce a zítřejší východ a západ. Ukázka displeje

Ukázka displeje s varováním ČHMI: Ukázka displeje

Jednotlivé vykreslované prvky jsou jako samostatné objekty; je tedy možné je snadno vytáhnout a použít ve vlastní aplikaci.

Defaultní konfigurace předpokládá tříbarevný (černá/bílá/červená) 4" ePaper displej 400x300 bodů. Displej se ovládá přes GxEPD2. Konfigurace displeje je v ePaperConfig.h. Konfigurace připojení displeje (pinů) je v AppPins.h. Mělo by to fungovat s každým displejem podporovaným v GxEPD2; samozřejmě ale pro displeje jiných rozměrů je třeba změnit rozložení prvků na ploše. Pokud máte jen černobílý displej, pak nastavení barev je v DataAplikace.h.

Aplikace není optimalizovaná na paměť, není tedy možné ji provozovat na ESP8266.

Není také optimalizovaná na spotřebu - počítá s tím, že procesor spí maximálně light sleepem (paměť zůstává zachovaná) a aplikace je tak odolná situaci, kdy nějakou dobu není dostupný nějaký online zdroj. Nicméně to lze snadno změnit a uspávat do deep sleep, pokud by spotřeba byla prioritní.

Při prvním startu se aplikace přepne do konfiguračního portálu - připojte se z telefonu na AP "RA_<nějaké číslo>" s heslem "aaaaaaaa" a z webového prohlížeče nakonfigurujte připojení na wifi. Jak získáte potřebné konfigurační hodnoty čtěte zde. Aplikace je postavená na IoT knihovně RatatoskrIoT, proto je zde potřeba vložit přístupové údaje k serveru. Knihovna zajišťuje vzdálenou konfiguraci, OTA updaty, telemetrii a odesílání log souborů

Konfiguraci zobrazovaných dat, tedy zejména lokalitu, pro kterou se dává předpověď a vyhledávají varování ČHMÚ, můžete buď změnit nastavením defaultů v DataAplikace::DataAplikace(), nebo následně zaslat jako nastavení konfigurace ze serveru.

Konfigurační blok pro poslání ze serveru vypadá takto:

lat=49.8921
lon=14.5716
alt=430
idorp=2122
name=Teptin
alojz=jablonec-nad-nisou
  • IDORP je číslo obce s rozšíženou působností - viz http://apl.czso.cz/iSMS/cisdet.jsp?kodcis=65
  • ALOJZ je jméno lokality, jaké najdete v URL na alojz.cz poté, co kliknete na jméno města
  • NAME je zobrazované jméno místa
  • LAT/LON/ALT je zeměpisná souřadnice a nadmořská výška

České fonty vznikly postupem popsaným zde https://github.com/petrbrouzda/fontconvert8-iso8859-2

Výstrahy ČHMÚ si aplikace stahuje předžvýkané z této služby: https://github.com/petrbrouzda/ChmiWarnings, obdobně předpověď yr.no z https://github.com/petrbrouzda/YrNoProvider. Alojze bere napřímo z alojz.cz.


Knihovny a kód třetích stran

Nutné knihovny v Arduino IDE

V library manageru je nutné mít nainstalováno:

  • Tasker 2.0.0
  • MoonRise 2.0.1
  • MoonPhase 1.0.3
  • sunset 1.1.6
  • GxEPD2 1.3.1
  • Adafruit_GFX_Library 1.10.0
  • Adafruit_BusIO 1.4.1
  • ArduinoJson 6.18.0

Použité fonty

Knihovny a kód třetích stran

Aplikace obsahují následující kód třetích stran ve formě zdrojových kódů distribuovaných přímo s aplikací (= nepoužívají se z library manageru):

gfxlatin

Tiny AES

CRC32

SHA-256

dtostrg

tzapu/WiFiManager

kmackay/micro-ecc

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.