Hiii zusammen !!!
Ich habe vor ein paar Tagen mit ioBroker angefangen. Ich habe den ioBroker auf ein Virtuelles Linux-Rechner installiert und habe da den mqtt_Adapter als Broker konfiguriert. Daneben wollte ich mit einem Microcontroller auf dem mqtt_server zugreifen aber leider klappt es nocht nicht. Ich habe wie folgt mein Server konfiguriert. Hat jemand schon Erfahrung damit ?? Vielleicht liegt es bei der mqtt_server IP_Address ? Ich habe ja schon Vieles versucht ohne Erfolg.
Allerdings könnt ihr euch noch mein kleines Code anschauen
#include <Arduino.h>
# include <WiFi.h>
# include <PubSubClient.h>
/*#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#define LED_PIN 12
#define DHTPIN 32
#define DHTTYPE DHT11 */
const char* ssid = "WiFI_ID" ;
const char* password = "Wifi_passwd" ;
WiFiClient WifiClient ;
// MQTT Broker_Daten
const char* mqttServer = "10.0.2.15" ; // Broker_Ip add
PubSubClient mqttClient( WifiClient) ;
long ZeitAlt = -9999;
//Callback Nachrichten-Empfang (Subscribe)
void callback( char* topic, byte* message, unsigned int length)
{
String str ;
for (int i =0 ; i< length ; i++)
{
str += (char)message[i];
}
Serial.print( "Nachrichtenempfang für topic: ");
Serial.print(topic);
Serial.print("Nachricht :");
Serial.println(str);
}
//Verbindung mit dem Broker herstellen
void mqttConnect()
{
Serial.print("Verbindung zum MQTT_Server");
Serial.print( mqttServer);
while(!mqttClient.connected())
{
Serial.print(".");
if (mqttClient.connect("ESP32Client"))
{
Serial.print("MQTT-VErbunden");
}
else
{
Serial.print("Fehlgeschlagen, rc=");
Serial.print(mqttClient.state());
Serial.println("erneuter Versuch in 5 Sec");
delay(5000);
}
}
mqttClient.subscribe("test/esp32");
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println();
Serial.print("Verbingsaufbaun zu") ;
Serial.print(ssid);
WiFi.begin(ssid,password);
while(WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.print("");
Serial.println("Wifi connected");
Serial.print("IP Add:");
Serial.print(WiFi.localIP());
// Verbindung mit MQTT-Server
mqttClient.setServer(mqttServer, 1883);
mqttClient.setCallback(callback);
mqttConnect();
}
void loop() {
// put your main code here, to run repeatedly:
if(!mqttClient.connected())
{
mqttConnect();
}
mqttClient.loop();
if(millis()-ZeitAlt> 3000)
{
char txtString[20];
ZeitAlt= millis();
sprintf( txtString, "Zeitstempel %", millis()/1000);
Serial.println(String("Versand MQTT-NAchricht:") + txtString);
mqttClient.publish("test/esp32", txtString);
}
delay(200);
}