- Integrácia knižnice UniversalTelegramBot pre zjednodušenie komunikácie HTTPS s rozhraním Telegram API.
- Diaľkové ovládanie pinov GPIO na ovládanie akčných členov, ako sú LED diódy, a čítanie stavov spínačov.
- Implementácia zabezpečenia prostredníctvom overovania Chat ID a používania SSL certifikátov.

Uvažovali ste niekedy o ovládaní zariadení domácej automatizácie z pohodlia pohovky pomocou mobilného telefónu? Nastavenie systému na ovládanie ESP32 cez Telegram je jedným z najjednoduchších a najúčinnejších spôsobov, ako sa dostať do sveta domácej automatizácie bez toho, aby ste si komplikovali život drahými externými servermi alebo nemožnými konfiguráciami.
Kúzlo spočíva v premene vašej dosky na malý server, ktorý počúva príkazy od bota. Nemusíte byť programátorský mág, pretože s niekoľkými knižnicami a trochou trpezlivosti môžete na svojom zariadení zapnúť svetlá alebo vás upozorniť na stav senzora v reálnom čase, a to všetko prostredníctvom okamžitých textových správ.
Materiály, ktoré budete potrebovať
Na začiatok nemusíte minúť majland. Najdôležitejšie je mať dosku ESP32 ; nezáleží na tom, či ide o starší alebo najnovší model, pretože kompatibilita je úplná. Okrem mozgu projektu budete na testovanie potrebovať aj niekoľko základných komponentov:
- Svetelná dióda (LED) na kontrolu, či všetko funguje.
- Rezistor 220 ohmov, aby sa zabránilo vypáleniu LED diódy.
- Tlačidlo alebo prepínač na čítanie fyzikálnych skupenstiev.
- Prepojovacie káble a nepájivá doska, aby ste na začiatku nemuseli nič spájkovať.
Zostava elektronických obvodov
Pred úpravou kódu je potrebné pripraviť hardvér. V tomto príklade pripojíme LED diódu k pinu 33 GPIO a prepínač k GPIO 14. Je dôležité pamätať na to, že tieto piny môžete podľa potreby zmeniť, ale túto zmenu budete musieť neskôr zohľadniť v konštantách programu.
LED dióda je pre ochranu prepojená s príslušným rezistorom, zatiaľ čo tlačidlo je nakonfigurované interne, aby sa predišlo dodatočnému zapájaniu káblov. Keď máte obvod zostavený na nepájivej doske , môžete prejsť k softvérovej časti, kde sa deje všetka akcia.
Nastavenie bota v Telegrame
Aby ESP32 vedel, koho má počúvať, musíme najprv vytvoriť identitu bota v samotnej aplikácii Telegram. Tento proces je kľúčový, pretože poskytuje dve kľúčové informácie: token bota (dlhý reťazec čísel a písmen) a vaše osobné ID používateľa . Bez týchto dvoch kľúčov sa zariadenie nemôže autentifikovať ani určiť, kto je oprávnený mu zadávať príkazy.
Ak máte kedykoľvek pocit, že chat sa stal chaotickým, nezabudnite, že históriu môžete kedykoľvek vymazať z ponuky v pravom hornom rohu. Týmto sa bota reštartuje a vráti sa na tlačidlo Domov s dostupnými príkazmi, čo vám umožní začať odznova.
Príprava vývojového prostredia
Aby kód fungoval, musíme si nainštalovať nástroj, ktorý nám uľahčí život: knižnicu UniversalTelegramBot . Namiesto písania stoviek riadkov kódu na spracovanie rozhrania Telegram API táto knižnica robí takmer všetko za nás.
Ak ho chcete nainštalovať, jednoducho prejdite do správcu knižníc v Arduino IDE, zadajte názov knižnice a kliknite na tlačidlo Inštalovať. Taktiež sa uistite, že máte nainštalované knižnice WiFi a WiFiClientSecure , pretože umožňujú ESP32 pripojiť sa k internetu a používať protokol HTTPS pre bezpečnú komunikáciu.
Analýza riadiaceho kódu
Program začína definovaním vašich prihlasovacích údajov k sieti WiFi a kľúčov bota. Je dôležité, aby ste vzorové hodnoty nahradili vlastnými. SSID a kontrastako aj token a ID chatu. Pre interaktivitu definujeme premennú s názvom info ktorý obsahuje zoznam príkazov, ktoré bot rozpozná, ako napríklad /led_on alebo /sw_state.
Správa správ a príkazov
Srdcom systému je funkcia, ktorá kontroluje nové správy. ESP32 používa metódu getUpdates pre skontrolujte front správ z Telegramu. Aby sa zabránilo ovládaniu vášho domu cudzími osobami, kód obsahuje filter, ktorý overuje, či sa ID odosielateľa presne zhoduje s vaším. preddefinované ID_CHATU.
Po overení používateľa bot analyzuje prijatý text: ak zistí /led_onVyšle digitálny signál na pin 33, aby sa zaplo svetlo; ak ho prijme /led_off, vypne ho. Existuje aj možnosť /led_togglečo je veľmi praktické, pretože obracia súčasný stav LED diódy bez toho, aby ste museli vedieť, či bola predtým zapnutá alebo vypnutá.
Čítanie a dokončenie senzora
Okrem vydávania príkazov môže bot poskytovať aj informácie. Použitie príkazu /sw_stateESP32 číta stav pinu 14. Keďže sme pin nakonfigurovali ako INPUT_PULLUPZariadenie rozpozná, či je tlačidlo stlačené alebo nie, a odošle nám potvrdzujúcu textovú odpoveď.
Počas procesu spúšťania sa zariadenie pripája k Wi-Fi uzamknutým spôsobom, čo znamená, že neurobí nič, kým pripojenie nie je stabilné . Pre ďalšie zvýšenie bezpečnosti sa používa koreňový certifikát Telegramu, ktorý zabezpečuje šifrovanie dátovej prevádzky. Hlavná slučka jednoducho opakuje kontrolu správ každú sekundu, aby systém zostal agilný a responzívny.
S týmto systémom sme úspešne integrovali hardvér a softvér na vytvorenie bezdrôtového komunikačného mosta. Nakonfigurovali sme bota, spravovali bezpečnosť pomocou ID a certifikátov a naprogramovali sme odozvy pinov GPIO na interakciu s fyzickým svetom odkiaľkoľvek s pripojením na internet.
Najčastejšie otázky
Ktorá knižnica je potrebná na pripojenie ESP32 k Telegramu?
Mala by sa použiť knižnica UniversalTelegramBot, ktorá zjednodušuje interakciu s rozhraním Telegram API a uľahčuje odosielanie a prijímanie správ.
Ako zabezpečím, aby som bota mohol ovládať iba ja?
Kód implementuje filter, ktorý porovnáva ID chatu prijatej správy s preddefinovaným CHAT_ID a ignoruje všetky príkazy prichádzajúce od iného používateľa.
Je potrebné používať HTTPS na komunikáciu s botom?
Áno, Telegram vyžaduje zabezpečené pripojenia, takže sa používa WiFiClientSecure a koreňový certifikát Telegramu musí byť nakonfigurovaný na ESP32.
Aký je účel príkazu /led_toggle v kóde?
Tento príkaz sa používa na invertovanie aktuálneho stavu LED diódy, jej zapnutie, ak bola vypnutá, alebo jej vypnutie, ak bola zapnutá.
Prečo sa pre prepínač používa INPUT_PULLUP?
Používa sa na aktiváciu vnútorného odporu dosky, čím sa zabráni potrebe pridávať externý fyzický odpor do obvodu tlačidla.
Kde získam token bota a ID používateľa?
Token sa získa vytvorením bota prostredníctvom BotFathera na Telegrame a ID používateľa je možné získať prostredníctvom botov špecializovaných na získavanie identity profilu.



