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

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 2×13 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≷=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/

Sdílejte článek:

Související články

Nedávno jsem tu sdílel článek o pěti vývojových kitech, které obsahují ESP32 a také kameru.

laskakit.cz LILYGO® T-HMI ESP32-S3 2.8 ST7789V IPS WiFi Modul LILYGO® T-HMI je multifunkční modul navržený pro různé HMI (Human-Machine Interface) aplikace.

Kdy jede další autobus? A tramvaj? A stihneme to? Díky Karlovi můžete zobrazit aktuální odjezdy autobusu, tramvají v pražské MHD na ESP32. Karel Kotrba (twitter) napsal kód pro ESP32, který stáhne aktuální data odjezdů pražské MHD.

Jaký byl minulý rok pro webstránku chiptron.cz? Jaké jsou nejčtenější články a novinky? A co sociální sítě? Rok 2023 byl pracovně velmi náročný a odráží se to i v počtu napsaných novinek a článků.

Nedávno zveřejněné zprávy poukazují na potenciální bezpečnostní rizika spojená s široce používanými čipy ESP32, které vyrábí čínská společnost Espressif.