- Integration der UniversalTelegramBot-Bibliothek zur Vereinfachung der HTTPS-Kommunikation mit der Telegram-API.
- Fernsteuerung von GPIO-Pins zur Betätigung von Aktoren wie LEDs und zum Auslesen von Schalterzuständen.
- Implementierung von Sicherheitsmaßnahmen durch Chat-ID-Validierung und Verwendung von SSL-Zertifikaten.

Haben Sie schon einmal darüber nachgedacht, Ihre Smart-Home-Geräte bequem vom Sofa aus mit Ihrem Handy zu steuern? Die Einrichtung eines Systems zur Steuerung eines ESP32 über Telegram ist eine der einfachsten und effektivsten Möglichkeiten, in die Welt der Hausautomation einzusteigen, ohne sich mit teuren externen Servern oder komplizierten Konfigurationen herumschlagen zu müssen.
Der Clou ist, dass Sie Ihr Board in einen kleinen Server verwandeln, der Befehle von einem Bot entgegennimmt. Sie müssen kein Programmiergenie sein, denn mit ein paar Bibliotheken und etwas Geduld können Sie Ihr Gerät so programmieren, dass es Lichter einschaltet oder Sie in Echtzeit über den Status eines Sensors informiert – alles per SMS.
Materialien, die Sie benötigen
Für den Anfang brauchen Sie kein Vermögen auszugeben. Am wichtigsten ist ein ESP32-Board ; ob älteres oder neuestes Modell, spielt keine Rolle, da es vollständig kompatibel ist. Neben dem Herzstück des Projekts benötigen Sie einige grundlegende Komponenten zum Testen:
- Eine Leuchtdiode (LED), um zu überprüfen, ob alles funktioniert.
- Ein 220-Ohm-Widerstand, um ein Durchbrennen der LED zu verhindern.
- Ein Druckknopf oder Schalter zum Auslesen physikalischer Zustände.
- Anschlusskabel und ein Steckbrett, damit man am Anfang nichts löten muss.
Elektronische Schaltungsbaugruppe
Bevor Sie den Code bearbeiten, müssen Sie die Hardware vorbereiten. In diesem Beispiel verbinden wir die LED mit GPIO-Pin 33 und den Schalter mit GPIO 14. Wichtig: Sie können diese Pins nach Bedarf ändern, müssen diese Änderung aber später in den Programmkonstanten berücksichtigen.
Die LED ist zum Schutz mit dem zugehörigen Widerstand verbunden, während der Druckknopf intern konfiguriert ist, um zusätzliche Verdrahtung zu vermeiden. Sobald die Schaltung auf dem Steckbrett aufgebaut ist , können Sie sich dem Softwareteil widmen, wo die eigentliche Funktionalität implementiert wird.
Bot-Einrichtung in Telegram
Damit der ESP32 weiß, wem er zuhören soll, muss zunächst die Bot-Identität in der Telegram-Anwendung selbst erstellt werden. Dieser Vorgang ist entscheidend, da er zwei wichtige Informationen liefert: das Bot-Token (eine lange Zeichenfolge aus Zahlen und Buchstaben) und Ihre persönliche Benutzer-ID . Ohne diese beiden Schlüssel kann sich das Gerät weder authentifizieren noch feststellen, wer berechtigt ist, ihm Befehle zu erteilen.
Sollte der Chat einmal unübersichtlich werden, denken Sie daran, dass Sie den Verlauf jederzeit über das Menü oben rechts löschen können. Dadurch wird der Bot neu gestartet und Sie gelangen zurück zur Startseite mit den verfügbaren Befehlen, sodass Sie von vorne beginnen können.
Vorbereiten der Entwicklungsumgebung
Damit der Code funktioniert, benötigen wir ein hilfreiches Tool: die UniversalTelegramBot -Bibliothek . Anstatt Hunderte von Codezeilen für die Telegram-API zu schreiben, erledigt diese Bibliothek fast alles für uns.
Zur Installation öffnen Sie einfach den Bibliotheksverwalter der Arduino IDE, geben den Bibliotheksnamen ein und klicken auf „Installieren“. Stellen Sie außerdem sicher, dass die Bibliotheken „WiFi“ und „WiFiClientSecure“ installiert sind , da diese es dem ESP32 ermöglichen, sich mit dem Internet zu verbinden und das HTTPS-Protokoll für eine sichere Kommunikation zu verwenden.
Analyse von Steuerungscodes
Das Programm beginnt mit der Definition Ihrer WLAN-Zugangsdaten und der Bot-Schlüssel. Es ist unbedingt erforderlich, dass Sie die Beispielwerte durch Ihre eigenen ersetzen. SSID und Passwortsowie Token und Chat-ID. Für die Interaktivität definieren wir eine Variable namens info Diese enthält die Liste der Befehle, die der Bot erkennt, wie zum Beispiel /led_on oder /sw_state.
Nachrichten- und Befehlsverwaltung
Das Herzstück des Systems ist die Funktion, die auf neue Nachrichten prüft. Der ESP32 verwendet die Methode getUpdates die Überprüfen Sie die Nachrichtenwarteschlange. Von Telegram. Um zu verhindern, dass Fremde Ihr Heimnetzwerk steuern, enthält der Code einen Filter, der überprüft, ob die Absender-ID exakt mit Ihrer übereinstimmt. vordefinierte CHAT_ID.
Sobald der Benutzer authentifiziert ist, analysiert der Bot den empfangenen Text: Wenn er erkennt /led_onEs sendet ein digitales Signal an Pin 33, um das Licht einzuschalten; wenn es empfängt /led_off, schaltet es aus. Es gibt auch die Möglichkeit, /led_togglewas sehr praktisch ist, weil kehrt den aktuellen Zustand um der LED, ohne dass Sie wissen müssen, ob sie zuvor ein- oder ausgeschaltet war.
Sensormessung und Abschluss
Der Bot kann nicht nur Befehle ausführen, sondern auch Informationen bereitstellen. Dazu verwendet er den Befehl /sw_stateDer ESP32 liest den Zustand von Pin 14. Da wir den Pin wie folgt konfiguriert haben: INPUT_PULLUPDas Gerät erkennt, ob der Knopf gedrückt wurde oder nicht, und sendet uns eine schriftliche Bestätigung.
Während des Startvorgangs verbindet sich das Gerät im gesperrten Modus mit dem WLAN und ist somit inaktiv, bis die Verbindung stabil ist . Um die Sicherheit weiter zu erhöhen, wird das Root-Zertifikat von Telegram verwendet, wodurch die Datenübertragung verschlüsselt wird. Die Hauptschleife wiederholt die Nachrichtenprüfung jede Sekunde, um ein flüssiges und reaktionsschnelles System zu gewährleisten.
Mit diesem System haben wir Hardware und Software erfolgreich integriert, um eine drahtlose Kommunikationsbrücke zu schaffen. Wir haben einen Bot konfiguriert, die Sicherheit mithilfe von IDs und Zertifikaten verwaltet und die GPIO-Pin-Antworten programmiert, um von überall mit Internetverbindung mit der physischen Welt zu interagieren.
Häufig gestellte Fragen
Welche Bibliothek wird benötigt, um den ESP32 mit Telegram zu verbinden?
Es sollte die UniversalTelegramBot-Bibliothek verwendet werden, da diese die Interaktion mit der Telegram-API vereinfacht und das Senden und Empfangen von Nachrichten erleichtert.
Wie kann ich sicherstellen, dass nur ich den Bot steuern kann?
Der Code implementiert einen Filter, der die Chat-ID der empfangenen Nachricht mit einer vordefinierten CHAT_ID vergleicht und dabei alle Befehle von anderen Benutzern ignoriert.
Ist die Verwendung von HTTPS für die Kommunikation mit dem Bot notwendig?
Ja, Telegram erfordert sichere Verbindungen, daher wird WiFiClientSecure verwendet und das Telegram-Root-Zertifikat muss auf dem ESP32 konfiguriert werden.
Welchen Zweck hat der Befehl /led_toggle im Code?
Mit diesem Befehl wird der aktuelle Zustand der LED umgekehrt: Sie wird eingeschaltet, wenn sie ausgeschaltet war, oder ausgeschaltet, wenn sie eingeschaltet war.
Warum wird INPUT_PULLUP für den Schalter verwendet?
Es dient dazu, den Innenwiderstand der Platine zu aktivieren, wodurch die Notwendigkeit entfällt, dem Drucktasterkreis einen externen physikalischen Widerstand hinzuzufügen.
Wo erhalte ich das Bot-Token und die Benutzer-ID?
Das Token wird durch die Erstellung des Bots über BotFather auf Telegram erhalten, und die Benutzer-ID kann über Bots bezogen werden, die auf die Ermittlung der Profilidentität spezialisiert sind.



