兩個ESP8266通過雲端實現遠程數據交互


兩個ESP8266通過雲端遠程數據交互

原理講解

原理簡述:利用發布訂閱模式。一個ESP8266作為消息發布者,另一個ESP8266作為消息訂閱者,由於訂閱者可以接收消息發布者發布的消息,從而實現兩個ESP8266通過雲端的遠程數據交互。兩個ESP8266在遠端通過主題(topic)進行消息耦合,也就是說 訂閱者訂閱了這個主題,發布者往這個主題發布消息,訂閱者就可以收到消息了。

關於發布訂閱:

訂閱(訂閱):訂閱給定的一個主題/頻道的信息。
發布(發布)將信息發送到指定的主題/頻道。

只有訂閱該主題的設備才可以收到發往該主題的消息。

通俗的來講:就是像郵件訂閱的場景,什么意思呢,也就是說100個人訂閱了你的博客,如果博主發表了文章,那么100個人就會同時收到通知郵件,訂閱/發布模式就是這樣的原理。

如果還不理解的話再通俗講一下,就像生活中聽收音機,要想聽收音機,肯定就是調頻啦,只有在正確的頻道上面,我們才能聽得到好聽的節目,所以說訂閱首先要訂閱一個頻道/主題,只有訂閱了該主題,我們才能收到發往該頻道/主題的消息。

在這里插入圖片描述

例程下載

點擊下載

本demo 是利用arduino IDE開發,關於arduino IDE 的ESP8266環境配置可參考:環境配置: 點擊跳轉

需要修改的地方:

///****************需要修改的地方*****************///

//WIFI名稱,區分大小寫,不要寫錯
#define DEFAULT_STASSID  "PDCN"
//WIFI密碼
#define DEFAULT_STAPSW "air123456"
//用戶私鑰,可在控制台獲取,修改為自己的UID
String UID = "4d9ec352e0376f2110a0c601a2857225";
//主題名字,可在控制台新建
String TOPIC = "mysender";


///*********************************************///

兩個程序都應該修改的,WIFI名稱和密碼區分大小寫,主題topic也區分大小寫,兩個程序主題應該保持一致,這樣才可以一個往主題發消息,一個接收主題消息。

巴法創客雲控制台 新建一個主題,主題名字隨意,例如mysender,本實例用用mysender,使用示例代碼時應修改為自己的主題名字,字母或數字或字母加數字組合。UID為用戶私鑰,在 巴法創客雲控制台 注冊登陸后可獲得。
登陸完成后,可在控制台看到自己的私鑰UID,如圖所示:

在這里插入圖片描述

創建主題,在控制台,可創建主題。

  • 第一輸入主題,字母或數字或字母+數字組合。
  • 點擊創建主題。

在這里插入圖片描述

WIFI名稱為自己的路由器WIFI名稱,區分大小寫,寫錯會導致連接不上網絡的。

例程中,每兩秒上傳一次數據:

    if(millis() - predataTick >= upDataTime){//上傳數據
      predataTick = millis();
      
      String upstr = "";
      upstr = "cmd=2&uid="+UID+"&topic="+TOPIC+"&msg=hello_i_am_sender"+intNumber+"\r\n";
      intNumber++;
      sendtoTCPServer(upstr);
      upstr = "";
      
    }

接收者接收打印數據:

  if((TcpClient_Buff.length() >= 1) && (millis() - TcpClient_preTick>=200))
  {//data ready
    TCPclient.flush();
    Serial.println("Recieve: ");
    Serial.println(TcpClient_Buff);
   TcpClient_Buff="";
   TcpClient_BuffIndex = 0;
  }

如果路由器有網絡的話,兩個ESP8266就會連接到網絡中,一個往服務器的一個主題發送消息,一個從雲端的主題中接收數據,從而實現了兩個ESP8266通過雲端的遠程數據交互。

可以通過串口調試助手查看兩個ESP8266數據發送和數據接收的日志情況,如下圖:
波特率115200

在這里插入圖片描述

具體應用就要靠大家發散思維了,可以用在遠程控制、設備聯動、智能家居、智能玩具等等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM