/**************************************************
Übung: ESP32 (Teil 3) - Aufgabe 1 (Vorlage)
***************************************************/
//-----------------------------------------------------------
#include <WiFi.h>
#include <MQTT.h>
//-----------------------------------------------------------
// WiFi:
const char WIFI_SSID[] = "m126";
const char WIFI_PASSWORD[] = "M126M126";
// MQTT: Client ID (frei wählbar)
const char MQTT_CLIENT_ID[] = "BBW_ESP32_IHRNAME";
// MQTT: Angaben für public-Broker von shiftr.io
const char MQTT_BROKER_USER_NAME[] = "public";
const char MQTT_BROKER_USER_PASSWORD[] = "public";
// Objekte:
WiFiClient wifinetwork;
MQTTClient mqttclient;
// Variablen:
uint32_t zeitStempel = 0;
//-----------------------------------------------------------
void setup() {
//---
// UART starten (115200 Baud)
Serial.begin(115200);
//---
// WiFi verbinden
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Verbinde mit ");
Serial.print(WIFI_SSID);
// Warten bis mit WiFi verbunden...
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(250);
}
Serial.println(" Verbunden!");
//---
// MQTT: Client starten
mqttclient.begin(wifinetwork);
// MQTT: Init Broker-Name
mqttclient.setHost("public.cloud.shiftr.io");
Serial.print("Verbinde mit MQTT-Broker ");
// MQTT: Mit Broker verbinden...
while (mqttclient.connect(MQTT_CLIENT_ID, MQTT_BROKER_USER_NAME, MQTT_BROKER_USER_PASSWORD) == false) {
Serial.print(".");
delay(250);
}
Serial.println(" Verbunden!");
}
//-----------------------------------------------------------
void loop() {
//---
// MQTT: CPU-Zeit für Client (senden und empfangen)
mqttclient.loop();
//---
// T=1000ms (1 Hz)
if ((millis() - zeitStempel) > 1000) {
zeitStempel = millis();
// MQTT: Nachricht publizieren
// - Topic: /BBW/IHRNAME/AUFGABE1
// - Payload: Hallo Welt
mqttclient.publish("/BBW/IHRNAME/AUFGABE1", "Hallo Welt");
Serial.println("Nachricht wurde publiziert :-)");
}
}