- Integrarea bibliotecii UniversalTelegramBot pentru simplificarea comunicării HTTPS cu API-ul Telegram.
- Control de la distanță al pinilor GPIO pentru operarea actuatoarelor precum LED-urile și citirea stărilor comutatoarelor.
- Implementarea securității prin validarea ID-ului de chat și utilizarea certificatelor SSL.

Te-ai gândit vreodată să-ți controlezi dispozitivele de automatizare a locuinței din confortul canapelei folosind telefonul mobil? Ei bine, configurarea unui sistem pentru a controla un ESP32 prin Telegram este una dintre cele mai simple și puternice modalități de a intra în lumea automatizării locuinței fără a-ți complica viața cu servere externe scumpe sau configurații imposibile.
Magia constă în transformarea plăcii tale într-un mic server care ascultă comenzi de la un bot. Nu trebuie să fii un expert în programare, deoarece cu câteva biblioteci și puțină răbdare poți face ca dispozitivul tău să aprindă luminile sau să te alerteze despre starea unui senzor în timp real, totul prin mesaje text instantanee.
Materiale de care veți avea nevoie
Pentru a începe, nu trebuie să cheltuiți o avere. Cel mai important lucru este să aveți o placă ESP32 ; nu contează dacă este un model mai vechi sau unul dintre cele mai recente, deoarece compatibilitatea este totală. Pe lângă creierul proiectului, veți avea nevoie de câteva componente de bază pentru testare:
- O diodă emițătoare de lumină (LED) pentru a verifica dacă totul funcționează.
- O rezistență de 220 ohmi pentru a evita arderea LED-ului.
- Un buton sau comutator pentru citirea stărilor fizice.
- Cabluri de conectare și o placă de testare, astfel încât să nu fie nevoie să lipiți nimic la început.
Asamblare circuit electronic
Înainte de a edita codul, trebuie să pregătiți hardware-ul. Pentru acest exemplu, vom conecta LED-ul la pinul GPIO 33 și comutatorul la GPIO 14. Este esențial să rețineți că puteți modifica acești pini după cum este necesar, dar va trebui să reflectați această modificare ulterior în constantele programului.
LED-ul este conectat cu rezistorul corespunzător pentru protecție, în timp ce butonul este configurat intern pentru a evita cablajul suplimentar. După ce ați asamblat circuitul pe placa de testare , puteți trece la partea de software, unde se întâmplă toată acțiunea.
Configurarea botului în Telegram
Pentru a permite ESP32 să știe pe cine să asculte, trebuie mai întâi să creăm identitatea botului în cadrul aplicației Telegram. Acest proces este crucial deoarece oferă două informații cheie: token-ul botului (un șir lung de numere și litere) și ID-ul dvs. personal de utilizator . Fără aceste două chei, dispozitivul nu se poate autentifica sau determina cine este autorizat să îi dea comenzi.
Dacă în orice moment simți că chatul a devenit haotic, amintește-ți că poți oricând șterge istoricul din meniul din dreapta sus. Acest lucru va reporni botul și îl va readuce la butonul principal cu comenzile disponibile, permițându-ți să o iei de la capăt.
Pregătirea mediului de dezvoltare
Pentru ca codul să funcționeze, trebuie să instalăm un instrument care ne face viața mai ușoară: biblioteca UniversalTelegramBot . În loc să scriem sute de linii de cod pentru a gestiona API-ul Telegram, această bibliotecă face aproape totul pentru noi.
Pentru a-l instala, pur și simplu accesați managerul de biblioteci al IDE-ului Arduino, introduceți numele bibliotecii și faceți clic pe Instalare. De asemenea, asigurați-vă că aveți instalate bibliotecile WiFi și WiFiClientSecure , deoarece acestea permit ESP32 să se conecteze la internet și să utilizeze protocolul HTTPS pentru comunicare securizată.
Analiza codului de control
Programul începe prin definirea acreditărilor rețelei tale WiFi și a cheilor botului. Este vital să înlocuiești valorile exemplu cu ale tale. SSID și parolăprecum și token-ul și ID-ul chat-ului. Pentru interactivitate, definim o variabilă numită info care conține lista de comenzi pe care botul le va recunoaște, cum ar fi /led_on sau /sw_state.
Gestionarea mesajelor și a comenzilor
Inima sistemului este funcția care verifică dacă există mesaje noi. ESP32 folosește metoda getUpdates alin verificați coada de mesaje de la Telegram. Pentru a împiedica orice străin să vă controleze locuința, codul include un filtru care verifică dacă ID-ul expeditorului corespunde exact cu al dvs. CHAT_ID predefinit.
Odată ce utilizatorul este validat, botul analizează textul primit: dacă detectează /led_onTrimite un semnal digital la pinul 33 pentru a aprinde lumina; dacă primește /led_off, îl oprește. Există, de asemenea, opțiunea de a /led_toggleceea ce este foarte practic deoarece inversează starea actuală a LED-ului fără a fi nevoie să știți dacă era anterior aprins sau stins.
Citirea și finalizarea senzorului
Pe lângă emiterea comenzilor, botul poate furniza și informații. Folosind comanda /sw_stateESP32 citește starea pinului 14. Deoarece am configurat pinul ca INPUT_PULLUPDispozitivul va detecta dacă butonul este apăsat sau nu și ne va trimite un răspuns prin SMS de confirmare.
În timpul procesului de pornire, dispozitivul se conectează la Wi-Fi într-o manieră blocată, ceea ce înseamnă că nu va face nimic până când conexiunea nu este stabilă . Pentru a spori și mai mult securitatea, se utilizează certificatul rădăcină al Telegram, asigurând că traficul de date este criptat. Bucla principală repetă pur și simplu verificarea mesajelor în fiecare secundă pentru a menține sistemul agil și receptiv.
Cu acest sistem, am integrat cu succes hardware și software pentru a crea o punte de comunicații wireless. Am configurat un bot, am gestionat securitatea folosind ID-uri și certificate și am programat răspunsurile pinilor GPIO pentru a interacționa cu lumea fizică de oriunde cu o conexiune la internet.
Întrebări frecvente
Ce bibliotecă este necesară pentru a conecta ESP32 la Telegram?
Ar trebui utilizată biblioteca UniversalTelegramBot, care simplifică interacțiunea cu API-ul Telegram și facilitează trimiterea și primirea mesajelor.
Cum mă asigur că numai eu pot controla botul?
Codul implementează un filtru care compară ID-ul de chat al mesajului primit cu un CHAT_ID predefinit, ignorând orice comandă venită de la un alt utilizator.
Este necesar să se utilizeze HTTPS pentru a comunica cu botul?
Da, Telegram necesită conexiuni securizate, așa că se folosește WiFiClientSecure, iar certificatul rădăcină Telegram trebuie configurat pe ESP32.
Care este scopul comenzii /led_toggle în cod?
Această comandă este utilizată pentru a inversa starea curentă a LED-ului, aprinzându-l dacă era stins sau stingându-l dacă era aprins.
De ce se folosește INPUT_PULLUP pentru comutator?
Este folosit pentru a activa rezistența internă a plăcii, evitând astfel necesitatea adăugării unei rezistențe fizice externe la circuitul butonului.
De unde obțin token-ul botului și ID-ul de utilizator?
Tokenul se obține prin crearea botului prin BotFather pe Telegram, iar ID-ul utilizatorului poate fi obținut prin intermediul unor boți specializați în obținerea identității profilului.



