Instant-Messenger für ESPs und Arduinos - Teil 2

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 :) 

 

3 Kommentare

Roland

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

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

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.

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert