ioBroker und MQTT Adapter

MQTT
MQTT

Eines der wichtigsten Zubehörteile unserer selbst hergestellten Smart Home-Geräte ist der ioBroker MQTT-Adapter. MQTT ermöglicht eine ressourcenarme bidirektionale Kommunikation, daher ist das MQTT-Protokoll eine gute Option für den Datenaustausch zwischen einem Server und einem Mikrocontroller.

werbung – amazon.de

Wenn ioBroker noch nicht installiert ist, klick hier.

Wir müssen zuerst den MQTT-Adapter installieren. Geben wir dazu MQTT in den Sucher im Adapterfenster ein und wählen wir den MQTT Broker / Client-Adapter aus.

ioBroker Adapter Panel
ioBroker Adapter Panel

Klicken wir auf die Schaltfläche „+“:

Installieren des MQTT-Adapters
Installieren des MQTT-Adapters
Installation des MQTT-Adapters läuft ...
Installation des MQTT-Adapters läuft …

Wenn wir fertig sind, wählen wir Server / Broker und anschließend die unten stehende IP-Adresse. Wir können einen Benutzernamen und ein Kennwort festlegen, dies ist jedoch in einem internen Netzwerk nicht unbedingt notwendig.

MQTT-Einstellungen
MQTT-Einstellungen

Wir sind fertig. Wir können den MQTT-Adapter verwenden. Klicken wir auf die Schaltfläche „Abspielen“.

Starten wir den MQTT-Adapter ...
Starten wir den MQTT-Adapter…

Im Objektfenster befindet sich der MQTT-Adapter, noch ist nichts angeschlossen.

Der MQTT-Adapter im Objektfenster
Der MQTT-Adapter im Objektfenster

Sehen wir uns unser erstes Tool wie dieses an.

NodeMCU Esp8266 und eine LED
NodeMCU Esp8266 und eine LED

Und der Code:

#include <ESP8266WiFi.h>
#include <PubSubClient.h>

const char* ssid = "SSID";
const char* password = "Wifi passwort";
const char* mqtt_server = "192.168.xxx.xxx";

int Led = D5;

WiFiClient espClient;
PubSubClient client(espClient);


void setup() 
{
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) 
  {
    delay(500);
  }
  client.setServer(mqtt_server, 1883);
  client.setCallback(callback);
  
  pinMode(Led, OUTPUT);
  digitalWrite(Led, LOW);
}

void loop() 
{
  if (!client.connected()) 
  {
    reconnect();
  }
  client.loop();
}

void reconnect() 
{
  while (!client.connected()) 
  {
    String clientId = "ESP8266_LED_Client";
    
    if (client.connect(clientId.c_str()))
    {
      client.subscribe("LEDtopic");
    } 
    else 
    {
      delay(6000);
    }
  }
}

void callback(char* topic, byte* payload, unsigned int length) 
{
  payload[length] = '
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
const char* ssid = "SSID";
const char* password = "Wifi passwort";
const char* mqtt_server = "192.168.xxx.xxx";
int Led = D5;
WiFiClient espClient;
PubSubClient client(espClient);
void setup() 
{
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) 
{
delay(500);
}
client.setServer(mqtt_server, 1883);
client.setCallback(callback);
pinMode(Led, OUTPUT);
digitalWrite(Led, LOW);
}
void loop() 
{
if (!client.connected()) 
{
reconnect();
}
client.loop();
}
void reconnect() 
{
while (!client.connected()) 
{
String clientId = "ESP8266_LED_Client";
if (client.connect(clientId.c_str()))
{
client.subscribe("LEDtopic");
} 
else 
{
delay(6000);
}
}
}
void callback(char* topic, byte* payload, unsigned int length) 
{
payload[length] = '\0';
String strTopic = String(topic);
String strPayload = String((char * ) payload);
if(strTopic == "LEDtopic") 
{
if(strPayload == "false") 
{
digitalWrite(Led, LOW);
}
if(strPayload == "true") 
{
digitalWrite(Led, HIGH);
}
}
}
'; String strTopic = String(topic); String strPayload = String((char * ) payload); if(strTopic == "LEDtopic") { if(strPayload == "false") { digitalWrite(Led, LOW); } if(strPayload == "true") { digitalWrite(Led, HIGH); } } }

Lassen wir uns schnell hochladen auf NodeMCU Esp8266 , und das Ergebnis sehen.

das neue Gerät im MQTT-Adapter
das neue Gerät im MQTT-Adapter

Unser Gerät wurde freigegeben, jetzt können wir es steuern. Geben wir in das Textfeld „true“ ein, zum einzuschalten, oder „false“, zum auszuschalten.


Mit dieser einfachen kleinen MQTT- Client-App können wir von unsere Android-Handy zum MQTT-Server verbinden

Die MQTT-Client-App ist auf Google Play verfügbar
MQTT-Client-App ist auf Google Play

Mehr über iobroker hier.

blank

Das MQTT-Praxisbuch: Mit ESP8266 und Node-RED

Das MQTT-Praxisbuch führt Schritt für Schritt in die praktische Arbeit mit diesem ressourcensparenden Protokoll ein. Dabei widmet der Autor Walter Trojan dem Thema IoT-Sicherheit ein ausführliches Kapitel. Anhand von abgeschlossenen Projekten zum Nachbauen stellt der Autor in beeindruckender Weise die praktische Bedeutung des MQTT-Protokolls in modernen IoT-Anwendungen dar

werbung – amazon.de