下面介紹下如何接入OneNET平臺(tái),采用MQTT協(xié)議。
首先在百度當(dāng)中輸入OneNET,然后點(diǎn)擊進(jìn)入OneNET平臺(tái)后,就可以進(jìn)入到平臺(tái)端了。第一次使用需要注冊(cè),現(xiàn)在一般都是實(shí)名制要求,用戶注冊(cè)的時(shí)候,根據(jù)注冊(cè)需要,來進(jìn)行操作即可。

OneNET登錄界面
登錄進(jìn)入之后,就可以進(jìn)行設(shè)備產(chǎn)品添加了,注意這里的登錄協(xié)議采用MQTT協(xié)議,不是MQTTS,因?yàn)楝F(xiàn)在OneNET改版,推薦的是MQTTS,但是MQTTS目前不適用我們應(yīng)用。所以用戶在使用的時(shí)候,請(qǐng)務(wù)必選擇MQTT這個(gè)功能的類目接入平臺(tái)。

在產(chǎn)品服務(wù)里面,找到MQTT物聯(lián)網(wǎng)套件,然后點(diǎn)擊立即使用。進(jìn)入到MQTT產(chǎn)品界面端。

進(jìn)入到界面之后,因?yàn)檫@個(gè)界面我們有添加過很多設(shè)備,新注冊(cè)的用戶打開這個(gè)界面不一定一樣,不過可以看到下面有一行原MQTT產(chǎn)品接入遷移的說明,告知用戶需要使用MQTT協(xié)議可以點(diǎn)擊前往舊版的標(biāo)簽,這樣注冊(cè)的產(chǎn)品就是MQTT協(xié)議了。

點(diǎn)擊進(jìn)入之后,可以看到有很多的協(xié)議類型接入,根據(jù)不同的產(chǎn)品來實(shí)現(xiàn)。對(duì)于我們的用法來說,將采用MQTT協(xié)議接入,其他的協(xié)議是用不到的,有興趣的用戶可以選擇嘗試使用其他的方式來進(jìn)行數(shù)據(jù)接入。

然后用戶就可以添加產(chǎn)品了,在添加產(chǎn)品的地方,紅色星號(hào)都是要求用戶必須填寫的,一般最好都是用英文字符數(shù)字代替,盡量不要出現(xiàn)中文名稱。聯(lián)網(wǎng)方式選擇“移動(dòng)蜂窩網(wǎng)絡(luò)”,操作系統(tǒng)選擇“無”即可。

添加好產(chǎn)品之后,就可以添加設(shè)備了。點(diǎn)擊立即添加設(shè)備,因?yàn)楫a(chǎn)品下面可以包含多個(gè)設(shè)備,并且這樣的設(shè)備就是對(duì)應(yīng)的硬件。所以一定要添加設(shè)備方可使用。

添加設(shè)備里面的有個(gè)鑒權(quán)信息,這個(gè)非常重要,后面在設(shè)備登錄的時(shí)候,需要用到,顯示應(yīng)該是可以自己定義的數(shù)據(jù),具體鑒權(quán)信息用戶可以自己添加,使用數(shù)字與符號(hào),盡量不要用一些特殊字符代替。

這樣就注冊(cè)好了,然后設(shè)備會(huì)顯示“離線”,這時(shí)只要單片機(jī)端控制模塊發(fā)送數(shù)據(jù)到OneNET平臺(tái)進(jìn)行激活就可以了。
下面就是對(duì)照程序即可。這里采用的是EC20內(nèi)置的MQTT代碼規(guī)范來實(shí)現(xiàn)的。
MQTT服務(wù)器和端口號(hào):183.230.40.39,6002
MQTT協(xié)議用戶可以參考EC20 MQTT手冊(cè)來進(jìn)行學(xué)習(xí)。具體查看:
Quectel_EC2x&EG9x&EM05_MQTT_Application_Note_V1.1。

上面的是MQTT設(shè)置指令,需要注意OneNET使用的版本是3.11版本的MQTT協(xié)議;默認(rèn)是3.1的,所以需要先設(shè)置下版本,否則是無法連接到OneNET平臺(tái)的。
設(shè)置好版本之后,就可以去連接OneNET的服務(wù)器了。其實(shí)這里的登錄服務(wù)器與TCP登錄沒有區(qū)別,所以這里采用TCP指令或者是MQTT指令實(shí)現(xiàn)的效果都是一樣的。
注意IP和端口,如果沒有錯(cuò)的話,就會(huì)返回登錄成功0,0。那么登錄到服務(wù)器的第一步是成功了。

登錄到服務(wù)器,需要輸入登錄驗(yàn)證,因?yàn)镺neNET為了規(guī)范,不可能讓任意一個(gè)非法的用戶登錄,也會(huì)讓每一個(gè)登錄的用戶找到自己的設(shè)備。所以需要輸入相關(guān)的參數(shù)來接入,這個(gè)在后面的阿里云接入也是一樣需要的。
這里的參數(shù)主要有設(shè)備ID,產(chǎn)品ID,鑒權(quán)三個(gè)元素組成。可以查看下OneNET平臺(tái)的參數(shù)找到這些參數(shù)。上面的參數(shù)值是我之前就設(shè)定好的設(shè)備,用戶需要根據(jù)自己的參數(shù)來改動(dòng)。

打開之后,我們看到了產(chǎn)品ID,產(chǎn)品ID是我們需要的參數(shù),所以要將其改到代碼里面的值。

在產(chǎn)品里面有個(gè)設(shè)備列表,打開設(shè)備列表可以看到設(shè)備ID。這個(gè)也是關(guān)鍵參數(shù),需要填入到代碼當(dāng)中。

在右邊的詳情里面有一個(gè)鑒權(quán)信息,這個(gè)鑒權(quán)信息就是我們自己設(shè)定的,所以如果用戶記不清了,就可以找到,然后填入進(jìn)去。
這樣三個(gè)參數(shù)就找完并填好后,編譯代碼即可。登錄驗(yàn)證成功后,就可以發(fā)布數(shù)據(jù)到服務(wù)器端了。

以上代碼是獲取到溫濕度數(shù)據(jù)之后,然后拼接成JSON格式數(shù)據(jù),然后發(fā)到服務(wù)器,注意MQTT發(fā)送數(shù)據(jù)都要帶主題內(nèi)容的。而OneNET上顯示的主題名稱必須是”$dp”,這個(gè)在OneNET的數(shù)據(jù)實(shí)現(xiàn)的教程里面有介紹,用戶可以看他的手冊(cè)來掌握設(shè)計(jì)的原理。

上面就是提交到OneNET的數(shù)據(jù)格式,是完全遵照J(rèn)SON格式來進(jìn)行設(shè)計(jì)的,分為數(shù)據(jù)流,ID號(hào),數(shù)據(jù)點(diǎn),數(shù)據(jù)值這樣的表達(dá)方式。
發(fā)送成功后,會(huì)有發(fā)送數(shù)據(jù)成功響應(yīng),并可以在OneNET端看到數(shù)據(jù)了。那么可以驗(yàn)證下效果。

好的,在數(shù)據(jù)展現(xiàn)區(qū)里面看到了數(shù)據(jù),也有歷史曲線圖,非常的方便。用戶只要根據(jù)上面的說明,更改下參數(shù)即可顯示板子自帶的溫濕度傳感器采集到的溫濕度數(shù)據(jù)了。
最后借助網(wǎng)絡(luò)調(diào)試助手進(jìn)行調(diào)試(連接MQTT的服務(wù)器和端口):

MQTT的數(shù)據(jù)報(bào)包括三部分:固定頭+可變頭+負(fù)載(也就是數(shù)據(jù))。
已知:
設(shè)備ID:602906218--->將字符串轉(zhuǎn)成十六進(jìn)制:
0x36 0x30 0x32 0x39 0x30 0x36 0x32 0x31 0x38
產(chǎn)品ID:352202--->將字符串轉(zhuǎn)成十六進(jìn)制:
0x33 0x35 0x32 0x32 0x30 0x32
APIKEY:KFBKEY--->將字符串轉(zhuǎn)成十六進(jìn)制:
0x4B 0x46 0x42 0x4B 0x45 0x59

格式為:2字節(jié)字串長度 + utf8字串
602906218是:
0x00 0x09(長度)0x36 0x30 0x32 0x39 0x30 0x36 0x32 0x31 0x38(數(shù)據(jù))
負(fù)載部分則為:
00 09 36 30 32 39 30 36 32 31 38 00 06 33 35 32 32 30 32 00 06 4B 46 42 4B 45 59
/*綜上所述:
固定頭:10 ??
可變頭:00 04 4D 51 54 54 04 C2 00 78
負(fù)載:00 09 36 30 32 39 30 36 32 31 38 00 06 33 35 32 32 30 32 00 06 4B 46 42 4B 45 59
*/
/*??=可變頭長度+負(fù)載長度=0x25*/
//于是,用于連接服務(wù)器所發(fā)送的數(shù)據(jù)報(bào)為:
10 25 00 04 4D 51 54 54 04 C2 00 78 00 09 36 30 32 39 30 36 32 31 38 00 06 33 35 32 32 30 32 00 06 4B 46 42 4B 45 59

注:byte8=0xC2,則:
Userflag=1;Passwordflag=1;平臺(tái)不允許匿名登陸,因此這兩個(gè)標(biāo)志位在連接時(shí)必須設(shè)置為1。
WillRetainFlag=0;WillQosFlag=0;WillFlag=0;
CleanSessionFlag=1;
服務(wù)器返回:20 02 01 00
20:服務(wù)器返回類型編號(hào);

02:長度;
01:session信息在服務(wù)器已保持;

00:成功。
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2938文章
47113瀏覽量
405137 -
MQTT
+關(guān)注
關(guān)注
5文章
712瀏覽量
24658 -
OneNET
+關(guān)注
關(guān)注
1文章
52瀏覽量
13744
原文標(biāo)題:EC20采用MQTT協(xié)議接入OneNET平臺(tái)
文章出處:【微信號(hào):雨飛工作室,微信公眾號(hào):雨飛工作室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
#硬聲創(chuàng)作季 #物聯(lián)網(wǎng) OneNET教程-17 基于模擬器使用TCP協(xié)議接入OneNET平臺(tái)實(shí)例-1
#硬聲創(chuàng)作季 #物聯(lián)網(wǎng) OneNET教程-17 基于模擬器使用TCP協(xié)議接入OneNET平臺(tái)實(shí)例-2
#硬聲創(chuàng)作季 #物聯(lián)網(wǎng) OneNET教程-19 基于模擬器使用TCP協(xié)議接入OneNET平臺(tái)實(shí)例-1
#硬聲創(chuàng)作季 #物聯(lián)網(wǎng) OneNET教程-19 基于模擬器使用TCP協(xié)議接入OneNET平臺(tái)實(shí)例-2
[MicroPython]TPYBoard v202 MQTT協(xié)議2:上傳數(shù)據(jù)點(diǎn)到OneNET平臺(tái)
探索者+GPRS模塊接入OneNET平臺(tái)程序燒進(jìn)去后設(shè)備一直顯示離線
鴻蒙篇:鴻蒙開發(fā)板接入OneNet 并使用C#上位機(jī)、微信小程序進(jìn)行控制
基于MCU對(duì)接oneNET流程講解
M5310-A MQTT接入OneNET平臺(tái)的指導(dǎo)手冊(cè)資料免費(fèi)下載
LwM2M協(xié)議及NB-IoT設(shè)備接入OneNET平臺(tái)的流程詳細(xì)說明
智能電力物聯(lián)網(wǎng)儀表ADW300接入ONENET平臺(tái)
【IoT】基于MCU實(shí)現(xiàn)NB-IoT設(shè)備對(duì)接移動(dòng)oneNET平臺(tái)
STM32接入OneNET平臺(tái)遠(yuǎn)程控制風(fēng)扇
【教程】設(shè)備通過MQTT協(xié)議接入OneNET平臺(tái),建立可視化界面

如何接入OneNET平臺(tái)
評(píng)論