基於MQTT協議的WZ指令開發

2021-09-10 22:10:53 字數 1933 閱讀 5290

title: 基於mqtt協議的wz指令開發

tags: wz指令

這是一款真正的基於mqtt的at指令

目前市面上能找到的相容mqtt的at指令少之又少

而且安信可和樂鑫官方也沒有開發這個at指令,基本上都是基於mcu端的處理,同時mqtt是基於tcp轉化而來,

如果想要用mqtt就把tcp資料封包成為mqtt協議,就可以用tcp發出mqtt的資料。

這是arduino中文社群的一篇帖子,感覺講的非常好

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

最終效果:

使用說明:

****************************

特點: 簡單到只需要一行**就可以將資料點推送至mqtt伺服器

可用於個人emq伺服器,或者樹莓派搭建的區域網伺服器(暫不支援onenet等商用平台)

預設埠:1883

支援wifi掉線重連、支援伺服器掉線重連。

版本號:v2.0

**:wenzheng.club

*****************************

燒寫位置:0x00000000

建議將esp01清除快取後再燒寫

at指令:僅此一條json資料,沒有繁瑣的其他配置環節,簡單粗暴

at指令說明:

1、"wz":"wenzheng.club" 為必填項!無此字段無法使用此指令。

2、伺服器連線:第一次傳送這條at指令時會進行伺服器連線,

3、訊息發布:後續傳送這條at指令則代表傳送指定主題的訊息。message目前最大支援200位元組。

3、主題訂閱:目前暫不支援使用者自定義訂閱主題,

但是系統開機預設訂閱主題名為:wz_server 的主題!

4、訊息接收:wz_server 發布的訊息會在串列埠中列印出來,

如:wz:[hello world!]

使用者可對此進行處理然後執行相關動作。

後續版本會支援使用者自定義。

**舉例:

**arduino**

void setup()

void loop() ");

//真正的只需要一行**實現資料傳送!!使用者只需要拼接字元即可!

delay(1000);

}**stm32**

微控制器配置好串列埠直接

printf("");

即可!///**************///

更新日誌:

2023年2月13日晚上製作v2.0版本

新增mqtt_user驗證

新增mqtt_passward驗證

2023年2月13日上午製作v1.0版本

實現基本通訊

2023年初有初步想法

stm32串列埠測試:

總結,經過我的測試,還是相對穩定的,無論是arduino還是stm32進行資料傳送,都是可以的。經測試arduino不間斷傳送3000+資料,伺服器接收依然正常!

基於MQTT的RPC協議

rpc 是一種基於request response 模式的分布式協議。而mqtt 是基於pub sub模式的協議。是否能夠將這兩種協議相結合,實現rpc over mqtt 我並沒有發現由比較知名的rpc over mqtt協議。於是,自己著手設計乙個極簡的rpc over mqtt 協議。本文介紹...

MQTT協議開發心得

公司這幾天在做關於mqtt的一些事情,現在大部分的工作算是完成了,下面就寫幾篇部落格,關於這半個月對於mqtt學習的一些心得體會。還是老慣例,先是了解一些什麼是mqtt。1.1 mqtt協議的特點 mqtt message queuing telemetry transport,訊息佇列遙測傳輸 是...

MQTT協議詳解及開發教程(一)MQTT協議概述

推薦一款穩定的基於c編寫的mqtt client開源庫 cmqtt mqtt協議目前在物聯網技術中應用非常廣泛,各種公有雲的iot平台通訊基本上都是按照該協議來實現的,這裡先簡單的做個總結 1 mqtt協議框架及內容比較標準,可以認為是 物聯網行業的modbus協議 2 不同廠家的mqtt 伺服器或...