Hallo zusammen,
da unsere Technik-Abteilung aktuell ziemlich ausgelastet ist, hat der 2. Teil des Blogartikels etwas auf sich warten lassen. Dank der Unterstützung eines vorfreudigen Kunden darf ich Ihnen heute den Programmcode für den ESP zur Verfügung stellen.
Hier finden Sie den ersten Teil des Artikels.
Wie Librarys installiert werden, dürfte anhand der letzten 200 Blogbeiträge klar sein, weshalb ich heute auf dieses Thema nur am Rand eingehen werde.
Wer häufiger Projekte aus dem Internet nachbaut weiß, wie wichtig die Auswahl der richtigen Version der jeweiligen Bibliothek ist. Ein gutes Beispiel sind die Boarddefinitionen der ESPs zusammen mit den MQTT-Bibliotheken. Hier kann man Stunden mit der Fehlersuche verbringen, oder die Versionen benutzen die in den jeweiligen Anleitungen hinterlegt sind.
Auch der folgende Programmcode für die Kommunikation über den Telegram-Messenger funktioniert nicht mit jedem Versionsstand.
#define BOTtoken "xxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" // Dein Bot Token (kriegt man vom Botfather, siehe Teil 1) #include <ESP8266WiFi.h> #include <WiFiClientSecure.h> #include <UniversalTelegramBot.h> // UniversalTelegramBot V1.1.0 & ArduinoJson V5.13.5 // WLAN Daten für den Router char ssid[] = "xxxxxxxxxxxxxxxxxxxxxxx"; // WLAN SSID-Name char password[] = "xxxxxxxxxxxxxxxxxxxx"; // WLAN Passwort WiFiClientSecure client; // SSL Client UniversalTelegramBot bot(BOTtoken, client); int Bot_mtbs = 1000; // Durchschnittliche Zeit zwischen Nachrichtenscans long Bot_lasttime; // Nachrichten wurden zuletzt gescant void setup() { Serial.begin(115200); WiFi.mode(WIFI_STA); // WLAN Station Mode WiFi.disconnect(); // WLAN trennen falls bereits verbunden delay(100); Serial.print("Verbinde WLAN: "); Serial.println(ssid); WiFi.begin(ssid, password); // WLAN verbinden while (WiFi.status() != WL_CONNECTED) { // Warten bis WLAN verbunden ist Serial.print("."); delay(500); } Serial.println(""); Serial.println("WLAN ist verbunden"); // WLAN ist verbunden Serial.print("IP Adresse: "); Serial.println(WiFi.localIP()); // mit folgender IP Adresse } void loop() { String chat_id = "xxxxxxxxxxxxxx"; // Chat-ID String text = "AZ-Delivery machts möglich!"; // zu sendende Nachricht String parses = ""; Serial.println("Nachricht senden"); Serial.println(bot.sendMessage(chat_id, text, parses)); // Nachricht wird gesendet delay(5000); ESP.deepSleep(0); // ESP schlafen legen }
Jetzt kann Ihr ESP Push-Nachrichten über Telegram versenden.
Bis zum nächsten Artikel :)
6 comments
Lucas
Hi,
Versuche ein Projekt mit einem NodeMCU ESP 32 WiFi umzusetzen, jedoch kommt werder mit eurem Sketch (natürlich angepasst auf das Board) noch bei meinem Sketch etws bei telegram an . Über die Konsole oder den Brower läuft der Bot mit dem Token und der Chat ID wie es soll.
Thorsten
Gibts das auch irgendwo für MicroPython?
Danke vorab
Grüße
Thorsten
Klaus
Ich finde es immer wieder beindruckend wie sich die Autoren um ihre Blog Follower und deren Probleme kümmern.
Vielen Dank
Roland
Servus,
hab den skatch kopiert und meine Daten angepasst, will ich auf einen esp8266 spielen, Bibliotheken hab ich runtergelanden, aber habe den fehler "Error: stray `\302 und 240
Steffen
Versuch’ doch mal im Boardverwalter “esp8266 by ESP8266 Comunity” in Version 2.4.2 zu installieren. Die neueren Versionen haben bei mir ebenfalls nicht zuverlässig funktioniert.
Gast
Hallo,
bei mir werden keine Nachrichten versendet (bzw. kommen nicht an)
Serial.println(bot.sendMessage(chat_id, text, parses)); gibt 0 zurück
BOTtoken & Chat-ID stimmen – habe sie über curl an Konsole getestet – funktioniert
WLAN ist auch verbunden.
Gibt es eine Möglichkeit, die Rückmeldung auszulesen? Selbst wenn ich bewusst eine falsche BOTtoken / Chat-ID eingebe gibt bot.sendMessage 0 zurück.
Vielen Dank.