- Integracija biblioteke UniversalTelegramBot radi pojednostavljenja HTTPS komunikacije s Telegram API-jem.
- Daljinsko upravljanje GPIO pinovima za rad aktuatora kao što su LED diode i očitavanje stanja prekidača.
- Implementacija sigurnosti putem validacije Chat ID-a i korištenja SSL certifikata.

Jeste li ikada razmišljali o kontroli uređaja za kućnu automatizaciju iz udobnosti svoje sofe pomoću mobilnog telefona? Pa, postavljanje sistema za kontrolu ESP32 putem Telegrama jedan je od najjednostavnijih i najmoćnijih načina da uđete u svijet kućne automatizacije bez kompliciranja života skupim vanjskim serverima ili nemogućim konfiguracijama.
Magija leži u pretvaranju vaše ploče u mali server koji sluša komande bota. Ne morate biti programer, jer uz nekoliko biblioteka i malo strpljenja možete natjerati svoj uređaj da pali svjetla ili vas upozorava o statusu senzora u stvarnom vremenu, sve putem trenutnih tekstualnih poruka.
Materijali koji će vam trebati
Za početak, ne morate potrošiti bogatstvo. Najvažnije je imati ESP32 ploču ; nije bitno da li se radi o starijem ili najnovijem modelu, jer je kompatibilnost potpuna. Pored mozga projekta, trebat će vam neke osnovne komponente za testiranje:
- Svetleća dioda (LED) za provjeru da li sve funkcioniše.
- Otpornik od 220 oma kako bi se spriječilo pregorijevanje LED diode.
- Dugme ili prekidač za očitavanje fizičkih stanja.
- Spajanje kablova i ploče za testiranje kako ne biste morali ništa lemiti na početku.
Sklapanje elektronskih kola
Prije uređivanja koda, potrebno je pripremiti hardver. Za ovaj primjer, LED diodu ćemo spojiti na GPIO pin 33 , a prekidač na GPIO 14. Važno je zapamtiti da ove pinove možete mijenjati po potrebi, ali ćete tu promjenu morati kasnije odraziti u konstantama programa.
LED dioda je povezana s odgovarajućim otpornikom radi zaštite, dok je dugme konfigurisano interno kako bi se izbjeglo dodatno ožičenje. Nakon što ste sklopili kolo na probnoj ploči , možete prijeći na softverski dio, gdje se odvija sva radnja.
Postavljanje bota u Telegramu
Da bi ESP32 mogao znati koga treba slušati, prvo moramo kreirati identitet bota unutar same Telegram aplikacije. Ovaj proces je ključan jer pruža dvije ključne informacije: token bota (dugi niz brojeva i slova) i vaš lični korisnički ID . Bez ova dva ključa, uređaj se ne može autentificirati ili utvrditi ko je ovlašten da mu daje naredbe.
Ako u bilo kojem trenutku osjetite da je chat postao haotičan, zapamtite da uvijek možete obrisati historiju iz gornjeg desnog menija. Time ćete ponovo pokrenuti bota i vratiti ga na početno dugme s dostupnim naredbama, što će vam omogućiti da počnete ispočetka.
Priprema razvojnog okruženja
Da bi kod radio, potrebno je instalirati alat koji nam olakšava život: biblioteku UniversalTelegramBot . Umjesto pisanja stotina linija koda za rukovanje Telegram API-jem, ova biblioteka radi gotovo sve za nas.
Da biste ga instalirali, jednostavno idite u upravitelj biblioteka Arduino IDE-a, unesite naziv biblioteke i kliknite na instaliraj. Također, provjerite imate li instalirane biblioteke WiFi i WiFiClientSecure , jer one omogućavaju ESP32 da se poveže na internet i koristi HTTPS protokol za sigurnu komunikaciju.
Analiza kontrolnog koda
Program počinje definiranjem vaših WiFi mrežnih podataka i ključeva bota. Važno je da zamijenite primjere vrijednosti svojim vlastitim. SSID i lozinkakao i token i ID chata. Za interaktivnost definiramo varijablu pod nazivom info koja sadrži listu komandi koje će bot prepoznati, kao što su /led_on ili /sw_state.
Upravljanje porukama i naredbama
Srce sistema je funkcija koja provjerava nove poruke. ESP32 koristi metodu getUpdates para provjerite red čekanja za poruke iz Telegrama. Kako biste spriječili da bilo koji stranac kontrolira vaš dom, kod uključuje filter koji provjerava da li se ID pošiljatelja u potpunosti podudara s vašim. unaprijed definirani CHAT_ID.
Nakon što je korisnik potvrđen, bot analizira primljenu poruku: ako otkrije /led_onŠalje digitalni signal na pin 33 da uključi svjetlo; ako ga primi /led_off, isključuje ga. Postoji i opcija za /led_togglešto je veoma praktično jer preokreće trenutno stanje LED diode bez potrebe da znate da li je prethodno bila uključena ili isključena.
Očitavanje i dovršavanje senzora
Pored izdavanja komandi, bot može pružati i informacije. Korištenje komande /sw_stateESP32 očitava stanje pina 14. Pošto smo pin konfigurisali kao INPUT_PULLUPUređaj će detektovati da li je dugme pritisnuto ili ne i poslaće nam tekstualnu poruku kojom to potvrđuje.
Tokom procesa pokretanja, uređaj se povezuje na Wi-Fi mrežu na zaključan način, što znači da neće ništa raditi dok veza ne bude stabilna . Radi dodatnog poboljšanja sigurnosti, koristi se Telegramov root certifikat, koji osigurava šifriranje podatkovnog prometa. Glavna petlja jednostavno ponavlja provjeru poruka svake sekunde kako bi sistem bio agilan i responzivan.
Pomoću ovog sistema uspješno smo integrirali hardver i softver kako bismo stvorili bežični komunikacijski most. Konfigurirali smo bota, upravljali sigurnošću pomoću ID-ova i certifikata te programirali odgovore GPIO pinova za interakciju s fizičkim svijetom s bilo kojeg mjesta s internetskom vezom.
Često postavljana pitanja
Koja je biblioteka potrebna za povezivanje ESP32 sa Telegramom?
Treba koristiti biblioteku UniversalTelegramBot, koja pojednostavljuje interakciju s Telegram API-jem i olakšava slanje i primanje poruka.
Kako da osiguram da samo ja mogu kontrolisati bota?
Kod implementira filter koji upoređuje ID chata primljene poruke sa predefinisanim CHAT_ID-om, ignorišući sve komande koje dolaze od drugog korisnika.
Da li je neophodno koristiti HTTPS za komunikaciju sa botom?
Da, Telegram zahtijeva sigurne veze, tako da se koristi WiFiClientSecure i Telegramov korijenski certifikat mora biti konfiguriran na ESP32.
Koja je svrha naredbe /led_toggle u kodu?
Ova naredba se koristi za inverziju trenutnog stanja LED diode, uključivanjem ako je bila isključena ili isključivanjem ako je bila uključena.
Zašto se INPUT_PULLUP koristi za prekidač?
Koristi se za aktiviranje unutrašnjeg otpora ploče, čime se izbjegava potreba za dodavanjem vanjskog fizičkog otpora strujnom kolu dugmeta.
Gdje mogu dobiti token bota i korisnički ID?
Token se dobija kreiranjem bota putem BotFathera na Telegramu, a korisnički ID se može dobiti putem botova specijalizovanih za dobijanje identiteta profila.



