国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

thingsboard+ESP8266+MQTT實現(xiàn)設備遠程控制

這篇具有很好參考價值的文章主要介紹了thingsboard+ESP8266+MQTT實現(xiàn)設備遠程控制。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

簡介:

本次主要想實現(xiàn)功能:thingsboard平臺遠程控制設備
設備(ESP8266上的燈作為一臺設備,模擬控制燈的開關)
指令傳輸通過thingsboard平臺集成的MQTT協(xié)議
利用thingsboard儀表盤庫的一個控制組件模擬發(fā)送指令來控制我們的
燈的開關

前期準備:

  1. 之前搭建好的thingsboard平臺
  2. NodeMCU開發(fā)板
  3. 開發(fā)NodeMCU的工具:Arduino
    thingsboard+ESP8266+MQTT實現(xiàn)設備遠程控制
    thingsboard+ESP8266+MQTT實現(xiàn)設備遠程控制

操作過程

1新建一個測試設備

新建一個租戶賬號進入到我們的thingsboard平臺后點擊設備管理新建一個設備。
thingsboard+ESP8266+MQTT實現(xiàn)設備遠程控制
新建成功后點擊設備進入詳情頁面,點擊復制設備訪問令牌,這個是后面MQTT訪問對應的用戶名,可以先保存下來
thingsboard+ESP8266+MQTT實現(xiàn)設備遠程控制

2在儀表盤庫新建一個開關

后面將用這個開關模擬發(fā)送指令控制設備
首先我們先要建一個儀表板,用于放置我們的開關組件。
thingsboard+ESP8266+MQTT實現(xiàn)設備遠程控制
新建成功后打開儀表板,點擊編輯選擇一個開關控制組件
thingsboard+ESP8266+MQTT實現(xiàn)設備遠程控制
thingsboard+ESP8266+MQTT實現(xiàn)設備遠程控制
thingsboard+ESP8266+MQTT實現(xiàn)設備遠程控制
然后保存退出,完成。
這里我們可以點擊開關,打開調(diào)試控制臺看它發(fā)出的指令
thingsboard+ESP8266+MQTT實現(xiàn)設備遠程控制

3編輯相關接收燈開關的指令對應代碼燒錄到我們的ESP8266開發(fā)板上。

這里我使用的是開關工具是:Arduino
開發(fā)之前要先確保我們的ESP8266連接上我們的Arduino
這個可以參考太極創(chuàng)客的官網(wǎng)進行相關學習操作,官網(wǎng)地址:
http://www.taichi-maker.com/
thingsboard+ESP8266+MQTT實現(xiàn)設備遠程控制
確保連接成功后,就可以編寫我們的程序了。
thingsboard+ESP8266+MQTT實現(xiàn)設備遠程控制
附上源代碼:

#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <ArduinoJson.h>
 
// 設置wifi接入信息(請根據(jù)您的WiFi信息進行修改)
const char* ssid = "WIFE名稱";
const char* password = "WIFE密碼";
const char* mqttServer = "MQTT服務端地址,我們搭建本地thingsboard成功后對應的就是我們網(wǎng)絡的ip地址";

// MQTT服務端連接用戶名密碼
const char* mqttUserName = "設備訪問令牌";
const char* mqttPassword = NULL;
 
 
WiFiClient wifiClient;
PubSubClient mqttClient(wifiClient);
const byte ledPin = LED_BUILTIN; // 需要控制的led燈
void setup() {
  Serial.begin(9600);
 
  //設置ESP8266工作模式為無線終端模式
  WiFi.mode(WIFI_STA);

  
  // 連接WiFi
  connectWifi();
  
  // 設置MQTT服務器和端口號
   mqttClient.setServer(mqttServer, 1883);
  // 連接MQTT服務器
    connectMQTTServer();
   mqttClient.setCallback(callback);        // 設置回調(diào),控制led燈
   pinMode(ledPin,OUTPUT);
}
 
void loop() { 
  if (mqttClient.connected()) { // 如果開發(fā)板成功連接服務器    
    mqttClient.loop();          // 保持客戶端心跳
  } else {                  // 如果開發(fā)板未能成功連接服務器
    connectMQTTServer();    // 則嘗試連接服務器
  }
}
 
void connectMQTTServer(){
  // 根據(jù)ESP8266的MAC地址生成客戶端ID(避免與其它ESP8266的客戶端ID重名)
  String clientId = "esp8266-" + WiFi.macAddress();
 
  // 連接MQTT服務器
  if (mqttClient.connect(clientId.c_str(), mqttUserName, mqttPassword)) { 
    //連接成功后就訂閱主題
    mqttClient.subscribe("v1/devices/me/rpc/request/+");//訂閱主題
    Serial.print("訂閱主題成功!!");
  } else {
    Serial.println(mqttClient.state());
    delay(3000);
  }   
}
 
// ESP8266連接wifi
void connectWifi(){
 
  WiFi.begin(ssid, password);
 
  //等待WiFi連接,成功連接后輸出成功信息
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi Connected!");  
  Serial.println(""); 
}
 
 
 //回調(diào)函數(shù)
void callback(char* topic, byte* payload, unsigned int length) {
   Serial.println("begin callback");
   char s[length];
   for (int i=0;i<length;i++) {
    s[i]=(char)payload[i];
   }
    std::string str;
    str=s;
    DynamicJsonDocument doc(1024);
    deserializeJson(doc, str);
    JsonObject obj = doc.as<JsonObject>();
   
    const char* methodName;
    bool value;
   
    methodName=obj["method"];

    value=obj["params"];
    Serial.println(methodName);
    Serial.println(value);
    
      if(value==1){
      Serial.println("開燈");
      digitalWrite(ledPin,HIGH);
    }else{
      Serial.println("關燈");
      digitalWrite(ledPin, LOW);
    }


}

4需要注意的幾個地方:

1首先要確保我們的ESP8266能夠連接上WIFE
2確保我們的MQTT訂閱成功,即
mqttClient.subscribe(“v1/devices/me/rpc/request/+”);//訂閱主題
這個對應thingsboard中文文檔里有詳細介紹:
thingsboard+ESP8266+MQTT實現(xiàn)設備遠程控制
3這里的methodName,value接收的thingsboard點擊開關后傳遞過來的指令,這里自己看情況編寫相應代碼,樓主這里只是測試,所以寫的比較簡單。
4mqttUserName這個對應我們設備之前的訪問令牌
5如果測試過程中一直失敗,可以先用MQTT客戶端工具測試看看能不能接收到訂閱的消息
thingsboard+ESP8266+MQTT實現(xiàn)設備遠程控制

5編寫程序完成后點擊編譯然后上傳燒錄到我們的開發(fā)板中,就可以進行測試了,大功告成?。?!

thingsboard+ESP8266+MQTT實現(xiàn)設備遠程控制

演示視頻

thingsboard模擬發(fā)送指令控制esp8266的燈開關

學習總結

本次過程只是簡單的模擬了一下設備遠程控制,其實里面還有好多的東西我們可以去實現(xiàn)的,有很多可以優(yōu)化的地方。
例如:可以寫一個微信小程序或者app去遠程控制我們的設備,
現(xiàn)在程序的wife和密碼都是固定的,不靈活,這里可以實現(xiàn)動態(tài)配置,也就是我們經(jīng)常提到的設備配網(wǎng),這個后面也會考慮寫一期記錄一下。還有很多很多,就先記錄到這里了,感興趣的小伙伴可以一起學習交流呀。文章來源地址http://www.zghlxwxcb.cn/news/detail-418447.html

到了這里,關于thingsboard+ESP8266+MQTT實現(xiàn)設備遠程控制的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包