MQTT筆記

mosquitto官網(wǎng): http://mosquitto.org/man/mqtt-7.html

在macOS安裝mosquitto: http://m.itdecent.cn/p/4b545332b495

安裝MQTT.Fx:http://www.jensd.de/apps/mqttfx/1.7.1/

MQTT.fx的安裝和使用:https://blog.csdn.net/tiantang_1986/article/details/85101366

Arduino Client for MQTT pubsubclient

Arduino Client for MQTTAPI Documentation https://pubsubclient.knolleary.net/api

代碼參考: https://gist.github.com/boverby/d391b689ce787f1713d4a409fb43a0a4

arduino, Wemos D1測試訂閱topic代碼:

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

const char* ssid = "xxx";  // wifi名稱
const char* password = "xxxxxx"; // wifi密碼
const char* mqtt_server = "192.168.0.3";  // mqtt服務(wù)器地址

int status = WL_IDLE_STATUS;     // the starting Wifi radio's status

WiFiClient wifiClient;
PubSubClient client(wifiClient);
 
const byte ledPin = D8; // 需要控制的led燈
 
void callback(char* topic, byte* payload, unsigned int length) 
{
  Serial.print("Message arrived [");
  Serial.print(topic);
  Serial.print("] ");
  
  for (int i=0;i<length;i++) 
  {
    char receivedChar = (char)payload[i];
    Serial.print(receivedChar); // 打印mqtt接收到消息
    
    if (receivedChar == '1') {  // 收到消息是 '1' 點亮LED燈
      digitalWrite(ledPin, HIGH);
    }
    if (receivedChar == '0')    // 收到消息是 '0' 關(guān)閉LED燈
     digitalWrite(ledPin, LOW);
  }
  Serial.println();
}
 
 
void reconnect() {
 while (!client.connected()) 
 {
   Serial.print("Attempting MQTT connection...");
   
   if (client.connect("Stormer")) 
   {
    Serial.println("connected");
    client.subscribe("light");  // 訂閱topic
   } 
   else 
   {
     Serial.print("failed, rc=");
     Serial.print(client.state());
     Serial.println(" try again in 5 seconds");
     delay(5000);
   }
 }
}

 
void setup()
{
 Serial.begin(115200);
 pinMode(ledPin, OUTPUT);

  delay(10);
  // We start by connecting to a WiFi network
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
 
 client.setServer(mqtt_server, 1883); // 連接mqtt
 client.setCallback(callback);        // 設(shè)置回調(diào),控制led燈
 
 
}
 
void loop()
{
 if (!client.connected()) 
 {
  reconnect();
 }
 
 client.loop();
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容