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



RSS feeds

ESP32 s displejem, Telegram Botem a upozorněním z ČHMÚTisk



Viděl jsem desku ESP32 s velkým 3.5" displejem a dostal jsem nápad. Vytvořit hodiny. Nicmoc říkáte si. Ony to ale nejsou ledajaké hodiny.
Kromě funkce hodin zobrazují teplotu a vlhkost, výstrahy z ČHMÚ ale také zprávy z telegramu! Prostě napíšu speciálnímu účtu na telegram a on zobrazí jakoukoliv zprávu na tomto displeji.

Ve spolupráci s laskakit (hardware) jsem vytvořil víceúčelové hodiny.

ESPD35


ESPD35 je deska kombinující mikrokontrolér ESP32 s velkým 3.5" TFT displejem. Kromě toho je možné jednoduše připojit vlastní čidla skrze uŠup konektor (kompatibilní se SparkFun Qwiic a Adafruit STEMMA).
Díky tomu je možné připojit spoustu dalších I2C čidel. K tomu je možné připojit i microSD kartu a využít tak mnohem větší paměť například pro obrázky nebo ikony (k meteostanici) a v neposlední řadě je 2x13 velký konektor, kam je možné připojit další komponenty.
Na 3.5" velkém displeji s rozlišením 480x320px je umístěna i doteková vrstva a tak ESP32 může zjisti případná gesta a pohyby.
Nechybí ani konektor na akumulátor - že deska není moc úsporná? Displej i celá deska sem může přepnout do úsporného režimu a její odběr mnohonásobně klesne.



Telegram Bot


Telegram je aplikace pro zasílání zpráv, která spojuje lidi prostřednictvím distribuované sítě datových center po celém světě. K vašim zprávám máte přístup ze všech telefonů, tabletů a počítačů najednou.
Navíc podporuje i vytvoření robota - takového prostředníka ke kterému můžete přistupovat z nejrůznějších zařízení, třeba z ESP32 díky knihovně https://github.com/cotestatnt/AsyncTelegram

Jak vytvořit Telegram Bot


Nejprve si nainstalujete aplikaci Telegram na váš telefon
https://play.google.com/store/apps/details?id=org.telegram.messenger&hl=cs&gl=US

Po vytvoření a oveření vašeho účtu najděte profil BotFather


a začnete konverzaci



napíšete /newbot a BotFather se začne vyptávat na podrobnosti



Pojmenujete a je hotovo. V poslední zprávě od BotFather najdete i token, který si uložíte. Ten potřebujete pro komunikaci mezi ESP32 (vaší deskou) a Telegram.
Formát tokenu je: "cislo:cislaApismena"



TMEP.cz


O TMEP.cz jsem tu psal už několikrát (až je to trapný, kolikrát tuto skvělou službu zminil, ale lepší opravdu neznám).
Jedná se o vizualizaci vašich dat - například z meteostanic. To ale není všechno. Kromě vizualizace a appky do telefonu umí tmep ještě něco navíc. Exportovat vaše data do json souboru a navíc k nim přidat i výstrahy z ČHMÚ - a to potřebuju k tomuto projektu.

V nastavení čidla musíte mít vybranou oblast na kterou chcete upozornit.
wiki: https://wiki.tmep.cz/doku.php?id=portal:export_posledniho_mereni&s[]=chmi

Nastavení čidla -> Základní údaje


Tady najdete data k exportu




Tento JSON upravíme do podoby:
https://tmep.cz/vystup-json.php?id=xxxx&export_key=yyyyy&chmi=1

Poté dostaneme i výstrahy z CHMÚ - pokud nějaké jsou.
Pokud zatím žádné čidlo a data nemáte, můžete váš kód otestovat na testovacím JSON. Ten náhodně zapisuje hodnoty jako teplota, tlak, tak i výstrahy.
https://tmep.cz/vystup-json.php?test=1

Jak si vytvořit zařízení pro měření teploty a ukládání na tmep jsem psal například zde
https://chiptron.cz/articles.php?article_id=318


Firmware


Kód pro ESP32 i dodatečnými soubory (jako jsou fonty), jsem uložil na githubu laskakit.
https://github.com/LaskaKit/ESPD-35/tree/main/SW/ESPD35_Clock_TelegramBot_CHMUalerts


Co je nutné vyplnit:
const char *ssid = "xxx";
const char *password = "yyy";
const char* token = "zzz";
const char* json_url = "www";


V případě, že nechcete používat český NTP server, změňte ještě tento řádek
NTPClient timeClient(ntpUDP, "0.cz.pool.ntp.org", 7200, 60000);

Jak kód funguje
ESP32 se připojí na NTP server a vyčte aktuální čas
ESP32 se připojí na TMEP.cz a vyčte JSON a dekóduje údaje teplotu, vlhkost a výstrahy z ČHMU.
ESP32 se připojí na Telegram server a kontroluje příchozí zprávy

České znaky s diakritikou (telegram nebo výstraha) jsou automaticky změněny za znaky bez diakritiky.

Zprávy z Telegramu se smazají pomocí zprávy /clear. Pokud napíšte /info, pak se pošle RSSI do telegramu, ale nezobrazí se na displeji.

Pokud nepřijde žádná zpráva z telegramu ani výstraha z ČHMÚ, pak je vzhled displeje tento


Pokud přijde zpráva z telegramu nebo výstraha, pak tento

Barva zprávy výstrahy se automaticky mění s barvou varování od ČHMÚ.

Závěr


Díky vývojové desce ESPD35 můžete zobrazit na displeji cokoliv, stejně tak můžete připojit další čidla. Díky TMEP.cz zase získáte různé data ať už z měření nebo výstrah a díky Telegram Bot můžete vzdáleně monitorovat váš dům, byt aj.

Github ESPD35: https://github.com/LaskaKit/ESPD-35
Tmep.cz https://tmep.cz/

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.
10,724,577 návštěv