Guide til at oprette en Telegram-bot med ESP32

Sidste ændring: 15/11/2026
Forfatter: Isaac
  • Integration af UniversalTelegramBot-biblioteket for at forenkle HTTPS-kommunikation med Telegram API'en.
  • Fjernbetjening af GPIO-ben til at betjene aktuatorer såsom LED'er og aflæse kontakttilstande.
  • Implementering af sikkerhed via Chat ID-validering og brug af SSL-certifikater.

Mikrocontroller-kort forbundet til et breadboard med en LED-lys, ideelt til at illustrere resultatet af ESP32-projektet.

Har du nogensinde overvejet at styre dine hjemmeautomationsenheder fra sofaens komfort ved hjælp af din mobiltelefon? At sætte et system op til at styre en ESP32 via Telegram er en af ​​de enkleste og mest effektive måder at komme ind i hjemmeautomationens verden uden at komplicere dit liv med dyre eksterne servere eller umulige konfigurationer.

Magien ligger i at forvandle dit board til en lille server, der lytter til kommandoer fra en bot. Du behøver ikke at være en programmeringsnørd, for med et par biblioteker og lidt tålmodighed kan du få din enhed til at tænde lys eller advare dig om status for en sensor i realtid, alt sammen via øjeblikkelige tekstbeskeder.

Materialer, du har brug for

Detalje af et protoboard med kabler og elektroniske komponenter, nyttigt til afsnittet om nødvendige materialer.

For at komme i gang behøver du ikke bruge en formue. Det vigtigste er at have et ESP32-kort ; det er ligegyldigt, om det er en ældre model eller en af ​​de nyeste, da kompatibiliteten er total. Udover projektets hjerne skal du bruge nogle grundlæggende komponenter til test:

  • En lysdiode (LED) til at kontrollere, at alt fungerer.
  • En 220 ohm modstand for at undgå at LED'en brænder ud.
  • En trykknap eller kontakt til at aflæse fysiske tilstande.
  • Tilslutning af kabler og et breadboard, så du ikke behøver at lodde noget i starten.

Elektronisk kredsløbssamling

Hænder, der samler elektroniske komponenter og ledninger på et breadboard til kredsløbsmontering.

Før du redigerer koden, skal du forberede hardwaren. I dette eksempel forbinder vi LED'en til GPIO pin 33 og kontakten til GPIO 14. Det er vigtigt at huske, at du kan ændre disse pins efter behov, men at du skal afspejle denne ændring senere i programmets konstanter.

  Telegram fungerer ikke korrekt. Årsager, løsninger og alternativer

LED'en er forbundet med den tilhørende modstand for beskyttelse, mens trykknappen er konfigureret internt for at undgå ekstra ledningsføring. Når du har samlet kredsløbet på breadboardet , kan du gå videre til softwaredelen, hvor alt sker.

Botopsætning i Telegram

Nærbillede af en person, der bruger en smartphone til at sende beskeder, hvilket simulerer interaktion med Telegram-botten.

For at ESP32 kan vide, hvem den skal lytte til, skal vi først oprette bottens identitet i selve Telegram-applikationen. Denne proces er afgørende, fordi den giver to vigtige oplysninger: bottens token (en lang række tal og bogstaver) og dit personlige bruger-ID . Uden disse to nøgler kan enheden ikke autentificere sig selv eller bestemme, hvem der er autoriseret til at give den kommandoer.

Hvis du på noget tidspunkt føler, at chatten er blevet kaotisk, så husk at du altid kan rydde historikken fra menuen øverst til højre. Hvis du gør det, genstartes botten og den vender tilbage til startknappen med de tilgængelige kommandoer, så du kan starte forfra.

Udarbejdelse af udviklingsmiljøet

Bærbar computer med programmeringskode på skærmen, der repræsenterer udviklingsfasen i Arduino IDE.

For at koden kan virke, skal vi installere et værktøj, der gør vores liv lettere: UniversalTelegramBot -biblioteket . I stedet for at skrive hundredvis af linjer kode for at håndtere Telegram API'en, gør dette bibliotek næsten alt for os.

For at installere det skal du blot gå til Arduino IDE'ens biblioteksadministrator, skrive bibliotekets navn og klikke på Installer. Sørg også for at have WiFi- og WiFiClientSecure- bibliotekerne installeret , da disse tillader ESP32 at oprette forbindelse til internettet og bruge HTTPS-protokollen til sikker kommunikation.

Analyse af kontrolkode

Programmet starter med at definere dine WiFi-netværksoplysninger og bottens nøgler. Det er vigtigt, at du erstatter eksempelværdierne med dine egne. SSID og adgangskodesamt token og chat-ID. For interaktivitet definerer vi en variabel kaldet info som indeholder listen over kommandoer, som botten vil genkende, såsom /led_on eller /sw_state.

  Sådan automatiserer du svar og undersøgelser på Telegram ved hjælp af bots

Besked- og kommandostyring

Systemets hjerte er den funktion, der tjekker for nye beskeder. ESP32 bruger metoden getUpdates para tjek beskedkøen fra Telegram. For at forhindre fremmede i at kontrollere dit hjem, indeholder koden et filter, der verificerer, at afsenderens ID præcist matcher dit. foruddefineret CHAT_ID.

Når brugeren er valideret, analyserer botten den modtagne tekst: hvis den registrerer /led_onDen sender et digitalt signal til pin 33 for at tænde lyset; hvis den modtager /led_off, slukker den. Der er også mulighed for at /led_togglehvilket er meget praktisk fordi vender den nuværende tilstand om af LED'en uden at du behøver at vide, om den tidligere var tændt eller slukket.

Sensoraflæsning og færdiggørelse

Udover at udstede kommandoer kan botten også give oplysninger. Brug af kommandoen /sw_stateESP32 aflæser tilstanden af ​​pin 14. Da vi har konfigureret pin'en som INPUT_PULLUPEnheden registrerer, om knappen trykkes ned eller ej, og sender os en tekstbekræftelse.

Under opstartsprocessen opretter enheden forbindelse til Wi-Fi på en låst måde, hvilket betyder, at den ikke gør noget, før forbindelsen er stabil . For yderligere at forbedre sikkerheden bruges Telegrams rodcertifikat, hvilket sikrer, at datatrafikken er krypteret. Hovedløkken gentager blot beskedkontrollen hvert sekund for at holde systemet agilt og responsivt.

Med dette system har vi med succes integreret hardware og software for at skabe en trådløs kommunikationsbro. Vi har konfigureret en bot, administreret sikkerhed ved hjælp af ID'er og certifikater og programmeret GPIO pin-svar til at interagere med den fysiske verden fra hvor som helst med en internetforbindelse.

Isaac

Isaac

Passioneret forfatter om bytes-verdenen og teknologien generelt. Jeg elsker at dele min viden gennem skrivning, og det er det, jeg vil gøre i denne blog, vise dig alle de mest interessante ting om gadgets, software, hardware, teknologiske trends og mere. Mit mål er at hjælpe dig med at navigere i den digitale verden på en enkel og underholdende måde.

  Sådan sender du krydsbeskeder mellem WhatsApp og Telegram

Ofte stillede spørgsmål

Hvilket bibliotek er nødvendigt for at forbinde ESP32 til Telegram?

UniversalTelegramBot-biblioteket bør anvendes, hvilket forenkler interaktionen med Telegram API'en og letter afsendelse og modtagelse af beskeder.

Hvordan sikrer jeg, at kun jeg kan kontrollere botten?

Koden implementerer et filter, der sammenligner chat-ID'et for den modtagne besked med et foruddefineret CHAT_ID og ignorerer kommandoer fra en anden bruger.

Er det nødvendigt at bruge HTTPS til at kommunikere med botten?

Ja, Telegram kræver sikre forbindelser, så WiFiClientSecure bruges, og Telegram-rodcertifikatet skal konfigureres på ESP32.

Hvad er formålet med /led_toggle-kommandoen i koden?

Denne kommando bruges til at invertere LED'ens aktuelle tilstand, tænde den, hvis den var slukket, eller slukke den, hvis den var tændt.

Hvorfor bruges INPUT_PULLUP til switchen?

Den bruges til at aktivere printkortets interne modstand, hvorved man undgår behovet for at tilføje en ekstern fysisk modstand til trykknapkredsløbet.

Hvor får jeg bot-tokenet og bruger-ID'et?

Tokenet fås ved at oprette botten via BotFather på Telegram, og bruger-ID'et kan fås via bots, der er specialiseret i at indhente profilidentiteten.