// https://github.com/256dpi/arduino-mqtt
//--------------------------------------------------
// Includes:
#include <WiFi.h>
#include <MQTT.h>
//--------------------------------------------------
// Globals:
WiFiClient wifinetwork;
MQTTClient mqttclient;
//--------------------------------------------------
void setup() {
//---
// Init USART:
Serial.begin(115200);
//---
// WiFi: Mit WiFi verbinden
// - SSID: Wokwi-GUEST
// - KEY: (leeres Passwort)
WiFi.begin("Wokwi-GUEST", "");
Serial.print("Connecting to WiFi ...");
// WiFi: Warten bis verbunden...
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(250);
}
Serial.println(" done");
//---
// MQTT: Init Network-Client
mqttclient.begin(wifinetwork);
// MQTT: Init Broker-Name
mqttclient.setHost("public.cloud.shiftr.io");
Serial.print("Connecting to MQTT-Broker ...");
// MQTT: Mit Broker verbinden...
// - Client-ID: BBW_ESP32_LP2 (Frei wählbar)
// - User-Name: public (für public-Broker von shiftr.io)
// - User-Password: public (für public-Broker von shiftr.io)
while (mqttclient.connect("BBW_ESP32_LP2", "public", "public") == false) {
Serial.print(".");
delay(250);
}
Serial.println(" done");
// MQTT: Subscribe
mqttclient.subscribe("BBW/IOT/MQTT/TEST");
// MQTT: Callback Funktion
mqttclient.onMessage(messageReceived);
}
//--------------------------------------------------
void loop() {
//---
// MQTT: CPU-Zeit für Client (senden und empfangen)
mqttclient.loop();
//---
// Nur bei Wokwi nötig für bessere Simulationsleistung!
delay(10);
}
//--------------------------------------------------
void messageReceived(String &topic, String &payload) {
Serial.println(String("Topic: ") + topic);
Serial.println(String("Payload: ") + payload);
}