title: 中移M5311與onenet資料總結
tags: NBIOT
date: 2019-4-29 23:32:00
中移onenet再度學習
今天有個朋友問我NB模組M5311連接onenet服務器的問題,他已經成功連接了,就是數據下發的時候出現了問題,其實都是小問題,我一看便知,他是在處理按鈕的下發邏輯時除了問題,我很快幫他解決了,但是同時我有發現了新的問題。讓我對onenet恍然大悟!!
首先利用這個機會再次總結一下M5311的onenet指令集:
系統設置相關:
指令 | 功能 | 備註 |
---|---|---|
AT+CMRB | 復位模組 | |
AT+CMSYSCTRL=0,2 | 打開指示燈 | |
AT+CEREG? | 掃描IP | 可用於開機準備 |
AT+CSQ | 信號指令 | |
AT+SM=LOCK_FOREVER | 關閉睡眠 |
普通MQTT指令:
指令 | 功能 | 備註 |
---|---|---|
AT+MQTTCFG=“60.205.203.64”,1883,“zyNot”,120,“759”,“IIOuz”,1 | MQTT配置 | |
AT+MQTTOPEN=1,1,1,1,1,“mywill”,“001bye” | 連接並設置,遺囑(可選) | |
AT+MQTTPUB=“device/nb/citc”,1,1,0,0,“hello” | 發佈消息 | 可對任意主題發佈消息 |
AT+MQTTSUB=“/device/NB/zx11111111111111_back”,1 | 訂閱消息 | 接收數據回傳 |
針對 onenet MQTT指令:
指令 | 功能 | 備註 |
---|---|---|
AT+MQTTCFG=“183.230.40.39”,6002,“設備ID”,120,“產品ID”,“APIKEY”,1 | MQTT配置 | |
AT+MQTTOPEN=1,1,0,0,0,"","" | 連接並設置,無遺囑 | |
AT+MQTTPUB=$dp,0,1,0,28,0300197b2231223a312c2232223a312c2233223a312c2234223a357d | ||
其中28爲發送的數據長度,03爲第三種json數據格式,0019爲數據包的長度 | 數據包爲:{“1”:1,“2”:1,“3”:1,“4”:1} |
關於Onenet的數據下發:
如圖,由於Onenet 按鈕下發數據的時候有一個默認值,所以很多人電機按鈕的時候都是發送0和1,所以很多人就比較迷茫,怎麼區分多個按鈕的下發指令,其實這很好解決的,onenet是支持自定義數據點的,不同的按鈕開和關都可以設置成不同的數據命令,這樣就很好辦了對吧!
- onenet 的NB快速連接方法,不是使用LWM2M! 而是依舊使用wifi方案的MQTT!!
- onenet的安卓開發有多重方法,一是使用onenet官方提供的SDK和API,另外一種更簡單粗暴的就是使用安卓的mqtt協議(之前多次失敗的原因終於找到了)就是發佈消息時的格式問題,普通的MQTT客戶端和平臺都是支持發送字符串的,,比如publish(“T”,“20”),但是onenet是不允許的,而且你強制發送的話,發武器會使你掉線!這就是我很久之前遇到的問題,今天看了一個博客恍然大悟:參考鏈接見文末。
- onenet支持的MQTT數據流都是16進制的。而且他的數據下發是不需要訂閱的,而且是不支持訂閱系統$開頭的主題的。
OK先總結到這裏,有問題歡迎下方留言或者諮詢:QQ羣:476840321
參考鏈接:
1、onenet利用MQTT協議的開發邏輯
2、不支持MQTT的NB模組利用TCP強行mqtt通訊
3、高新興ME3616調試Onenet筆記