ioBroker és az MQTT adapter

MQTT

Sajátkészítésű Smart Home eszközeink egyik legfontosabb kelléke az ioBroker MQTT adapter. Az MQTT kis erőforrásigényű kétirányú kommunikációt tesz lehetővé, ezért az MQTT protokoll jó lehetőség szerver és mikrokontroller közti adatcserére.

Ha még nincs telepítve az ioBroker kattints ide.

Elöször telepíteni kell az MQTT adaptert. Ehez az adapter panelon írjuk be a keresőbe MQTT, majd válasszuk az MQTT Broker/Client adaptert.

ioBroker Adapter panel
ioBroker Adapter panel

Kattints „+” gombra:

MQTT Adapter telepítése
MQTT Adapter telepítése
MQTT Adapter telepítése folyamatban...
MQTT Adapter telepítése folyamatban…

Ha kész, válaszd a Server/broker lehetőséget, alább válaszd ki az IP címet. Állíthatsz be felhasználónevet és jelszót, de belső hálózaton ez nem feltétlenül szükséges.

MQTT beállítások
MQTT beállítások

Kész is vagyunk. Használatba vehetjük az MQTT adaptert. Kattints a „Play” gombra.

Indítsuk el az MQTT adaptert...
Indítsuk el az MQTT adaptert…

Az Objekte panelon az MQTT adapter, még nem csatlakozik semmi.

Az Objekte panelon az MQTT adapter
Az Objekte panelon az MQTT adapter

Lássuk az első eszközünket, pédául ezt.

NodeMCU Esp8266 és egy LED
NodeMCU Esp8266 és egy LED

És a kód:

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

const char* ssid = "SSID";
const char* password = "Wifi Jelszó";
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 Jelszó";
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);    }  } }

Gyorsan tötsük fel a NodeMCU Esp8266-ra és lássuk az eredményt.

az új eszköz az MQTT adapterben
az új eszköz az MQTT adapterben

Megjelent az eszközünk, most már vezérelhetjük is. A szöveges mezőbe írjuk a bekapcsoláshoz „true” vagy a kikapcsoláshoz „false”.


Android telefonról kapcsolódhatunk az MQTT szerverhez ezzel az egyszerű kis alkalmazással.

MQTT Kliens App elérhető a Google Play-en
MQTT Kliens App A Google Play-en

Remélem tetszett a cikk, és hasznos információ volt a számodra. 

MINISFORUM GK41 Mini-PC

MINISFORUM GK41 Mini-PC

Mini asztali számítógép Windows 11 Pro rendszerrel. 8 GB DDR4, 128 GB SSD négymagos Celeron J4125 processzorral (2,7 GHz-ig) 4xUSB 3.0 port 2xGigabit Ethernet 4K HDMI/DP WiFi Dual BT 4.2

Optimális Smarthome, Mosquitto, ioBroker vagy médiaszerver számára.

hirdetés