|
#include
<ESP8266WiFi.h>
// Wifi-Bibliothek einbinden #include <PubSubClient.h> // MQTT Bibliothek einbinden const char* ssid = "DeineSSID"; // SSID deines Routers const char* pwd = "DeinPasswort"; // WLan-Passwort deines Routers const char* MeinBroker = "DeineBrokerAdresse"; // MQTT-Server (Broker) Adresse const int BrokerPort = 1883; // Broker-Portnummer const char* Topic = "test1"; // Topic-Name int x = 0; WiFiClient espClient; PubSubClient client(espClient); void WifiSetup() { Serial.println(); // Leerzeile Serial.println("ESP gestartet"); // Begrüßungstext WiFi.begin(ssid, pwd); // SSID und Passwort übergeben Serial.println("Starte WiFi-Verbindung"); while (WiFi.status() !=WL_CONNECTED) // gib Punkte aus bis WLan-Verbindung steht { delay(250); Serial.print("."); } Serial.println(); // Leerzeile Serial.print("Verbunden über IP: "); Serial.println(WiFi.localIP()); // gibt die IP aus mit der der ESP8266 am Router angemeldet ist } void reconnect() { while (!client.connected()){ // Verbinde mit Broker Serial.print("Verbinde mit MQTT Broker..."); if (client.connect("UUID-0815")){ // // hier eine eindeutige Client-ID angeben Serial.println(" verbunden"); client.subscribe(Topic); // Topic abonnieren (hier "test1") } else {delay(5000);}} // in 5 Sekunden erneut versuchen } void callback(char *topic, byte *payload, unsigned int length){ Serial.print("Nachricht: "); String message; for (int i = 0; i < length; i++){message += (char)payload[i];} Serial.println(message); if (message == "ein"){ // wenn Nachricht "ein" eintrifft... Serial.println("LED eingeschaltet"); digitalWrite(LED_BUILTIN, LOW);} // dann LED einschalten if (message == "aus"){ // wenn Nachricht "aus" eintrifft... Serial.println("LED ausgeschaltet"); digitalWrite(LED_BUILTIN, HIGH);} // dann LED ausschalten } void setup() { Serial.begin(9600); // Übertragungsgeschwindigkeit Serial-Monitor pinMode(LED_BUILTIN, OUTPUT); // LED initialisieren digitalWrite(LED_BUILTIN, HIGH); // LED ausschalten // initiale Wifi WifiSetup(); // initiale Serververbindung client.setServer(MeinBroker, BrokerPort); client.setCallback(callback); } void loop() { if (!client.connected()){reconnect();} // Rufe Funktion "reconnect" auf, wenn nicht mehr verbunden client.loop(); } |