基於MQTT協議的WZ指令開發


title: 基於MQTT協議的WZ指令開發
tags: WZ指令
date: 2018-10-11 10:53:00


這是一款真正的基於MQTT的AT指令

基於MQTT協議的MCU通訊指令-WZ指令
2.0版本已完結,可用於STM32的數據發送。
名稱:基於MQTT的萬能AT指令(名稱來源於本人名字故取名爲WZ指令)
特點: 簡單到只需要一行代碼就可以將數據點推送至MQTT服務器 可用於個人EMQ服務器,或者樹莓派搭建的局域網服務器(暫不支持onenet等商用平臺)
默認端口:1883
同時支持微信配網、安卓APP配網,支持掉電存儲、支持用戶名密碼校驗、 支持wifi掉線重連、支持服務器掉線重連。
版本號:V2.0
作者:阿正
網站:wenzheng.club
固件可以加羣下載:476840321

  1. 目前市面上能找到的兼容MQTT的AT指令少之又少
  2. 而且安信可和樂鑫官方也沒有開發這個AT指令,基本上都是基於MCU端的處理,同時MQTT是基於TCP轉化而來,
  3. 如果想要用MQTT就把TCP數據封包成爲MQTT協議,就可以用TCP發出MQTT的數據。

這是arduino中文社區的一篇帖子,感覺講的非常好https://www.arduino.cn/thread-82851-1-1.html


我的方法,與上面的方法不同,我是從用戶端的邏輯來進行的操作,以至於達到了很好的用戶體驗!

最終效果:

使用說明:

****************************
名稱:基於MQTT的萬能AT指令(名稱來源於本人名字故取名爲WZ指令)
特點:
   簡單到只需要一行代碼就可以將數據點推送至MQTT服務器
   可用於個人EMQ服務器,或者樹莓派搭建的局域網服務器(暫不支持onenet等商用平臺)
   默認端口:1883
   同時支持微信配網、安卓APP配網,支持掉電存儲、支持用戶名密碼校驗、
   支持wifi掉線重連、支持服務器掉線重連。
版本號:V2.0
作者:阿正
網站:wenzheng.club
*****************************
燒寫位置:0x00000000
建議將ESP01清除緩存後再燒寫
配網:微信智能配網(或者安卓APP配網),可掉電存儲,不需要AT指令單獨配置。
  AT指令:僅此一條json數據,沒有繁瑣的其他配置環節,簡單粗暴
  {"wz":"wenzheng.club","server":"60.205.203.64","user":"admin1","password":"public","topic":"20190213134505","message":"test2019"}
AT指令說明:
  1、"wz":"wenzheng.club" 爲必填項!無此字段無法使用此指令。
  2、服務器連接:第一次發送這條AT指令時會進行服務器連接,
  3、消息發佈:後續發送這條AT指令則代表發送指定主題的消息。message目前最大支持200字節。
  3、主題訂閱:目前暫不支持用戶自定義訂閱主題,
     但是系統開機默認訂閱主題名爲:wz_server 的主題!
  4、消息接收:wz_server 發佈的消息會在串口中打印出來,
     如:WZ:[Hello world!]
     用戶可對此進行處理然後執行相關動作。
     後續版本會支持用戶自定義。
  代碼舉例:
  **arduino**
  void setup() {
Serial.begin(9600);
}
void loop() {
 Serial.println({\"wz\":\"wenzheng.club\",\"server\":\"60.205.203.64\",\"user\":\"root\",\"password\":\"citc2018\",\"topic\":\"ZX1040300101000\",\"message\":\"T:226;H:232;\"}");
 //真正的只需要一行代碼實現數據發送!!用戶只需要拼接字符即可!
 delay(1000);
}
**STM32**
單片機配置好串口直接
printf("{\"wz\":\"wenzheng.club\",\"server\":\"60.205.203.64\",\"user\":\"root\",\"password\":\"citc2018\",\"topic\":\"ZX10403001010000\",\"message\":\"T:226;H:232;\"}");
即可!
///**************///
更新日誌:
2019年2月13日晚上製作V2.0版本
  添加mqtt_user驗證
  添加mqtt_passward驗證
2019年2月13日上午製作V1.0版本
  實現基本通訊
2019年初有初步想法

STM32串口測試:


總結,經過我的測試,還是相對穩定的,無論是Arduino還是STM32進行數據發送,都是可以的。經測試Arduino不間斷髮送3000+數據,服務器接收依然正常!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章