下面介紹下如何接入OneNET平臺,采用MQTT協議。
首先在百度當中輸入OneNET,然后點擊進入OneNET平臺后,就可以進入到平臺端了。第一次使用需要注冊,現在一般都是實名制要求,用戶注冊的時候,根據注冊需要,來進行操作即可。
OneNET登錄界面
登錄進入之后,就可以進行設備產品添加了,注意這里的登錄協議采用MQTT協議,不是MQTTS,因為現在OneNET改版,推薦的是MQTTS,但是MQTTS目前不適用我們應用。所以用戶在使用的時候,請務必選擇MQTT這個功能的類目接入平臺。
在產品服務里面,找到MQTT物聯網套件,然后點擊立即使用。進入到MQTT產品界面端。
進入到界面之后,因為這個界面我們有添加過很多設備,新注冊的用戶打開這個界面不一定一樣,不過可以看到下面有一行原MQTT產品接入遷移的說明,告知用戶需要使用MQTT協議可以點擊前往舊版的標簽,這樣注冊的產品就是MQTT協議了。
點擊進入之后,可以看到有很多的協議類型接入,根據不同的產品來實現。對于我們的用法來說,將采用MQTT協議接入,其他的協議是用不到的,有興趣的用戶可以選擇嘗試使用其他的方式來進行數據接入。
然后用戶就可以添加產品了,在添加產品的地方,紅色星號都是要求用戶必須填寫的,一般最好都是用英文字符數字代替,盡量不要出現中文名稱。聯網方式選擇“移動蜂窩網絡”,操作系統選擇“無”即可。
添加好產品之后,就可以添加設備了。點擊立即添加設備,因為產品下面可以包含多個設備,并且這樣的設備就是對應的硬件。所以一定要添加設備方可使用。
添加設備里面的有個鑒權信息,這個非常重要,后面在設備登錄的時候,需要用到,顯示應該是可以自己定義的數據,具體鑒權信息用戶可以自己添加,使用數字與符號,盡量不要用一些特殊字符代替。
這樣就注冊好了,然后設備會顯示“離線”,這時只要單片機端控制模塊發送數據到OneNET平臺進行激活就可以了。
下面就是對照程序即可。這里采用的是EC20內置的MQTT代碼規范來實現的。
MQTT服務器和端口號:183.230.40.39,6002
MQTT協議用戶可以參考EC20 MQTT手冊來進行學習。具體查看:
Quectel_EC2x&EG9x&EM05_MQTT_Application_Note_V1.1。
上面的是MQTT設置指令,需要注意OneNET使用的版本是3.11版本的MQTT協議;默認是3.1的,所以需要先設置下版本,否則是無法連接到OneNET平臺的。
設置好版本之后,就可以去連接OneNET的服務器了。其實這里的登錄服務器與TCP登錄沒有區別,所以這里采用TCP指令或者是MQTT指令實現的效果都是一樣的。
注意IP和端口,如果沒有錯的話,就會返回登錄成功0,0。那么登錄到服務器的第一步是成功了。
登錄到服務器,需要輸入登錄驗證,因為OneNET為了規范,不可能讓任意一個非法的用戶登錄,也會讓每一個登錄的用戶找到自己的設備。所以需要輸入相關的參數來接入,這個在后面的阿里云接入也是一樣需要的。
這里的參數主要有設備ID,產品ID,鑒權三個元素組成??梢圆榭聪翺neNET平臺的參數找到這些參數。上面的參數值是我之前就設定好的設備,用戶需要根據自己的參數來改動。
打開之后,我們看到了產品ID,產品ID是我們需要的參數,所以要將其改到代碼里面的值。
在產品里面有個設備列表,打開設備列表可以看到設備ID。這個也是關鍵參數,需要填入到代碼當中。
在右邊的詳情里面有一個鑒權信息,這個鑒權信息就是我們自己設定的,所以如果用戶記不清了,就可以找到,然后填入進去。
這樣三個參數就找完并填好后,編譯代碼即可。登錄驗證成功后,就可以發布數據到服務器端了。
以上代碼是獲取到溫濕度數據之后,然后拼接成JSON格式數據,然后發到服務器,注意MQTT發送數據都要帶主題內容的。而OneNET上顯示的主題名稱必須是”$dp”,這個在OneNET的數據實現的教程里面有介紹,用戶可以看他的手冊來掌握設計的原理。
上面就是提交到OneNET的數據格式,是完全遵照JSON格式來進行設計的,分為數據流,ID號,數據點,數據值這樣的表達方式。
發送成功后,會有發送數據成功響應,并可以在OneNET端看到數據了。那么可以驗證下效果。
好的,在數據展現區里面看到了數據,也有歷史曲線圖,非常的方便。用戶只要根據上面的說明,更改下參數即可顯示板子自帶的溫濕度傳感器采集到的溫濕度數據了。
最后借助網絡調試助手進行調試(連接MQTT的服務器和端口):
MQTT的數據報包括三部分:固定頭+可變頭+負載(也就是數據)。
已知:
設備ID:602906218--->將字符串轉成十六進制:
0x36 0x30 0x32 0x39 0x30 0x36 0x32 0x31 0x38
產品ID:352202--->將字符串轉成十六進制:
0x33 0x35 0x32 0x32 0x30 0x32
APIKEY:KFBKEY--->將字符串轉成十六進制:
0x4B 0x46 0x42 0x4B 0x45 0x59
格式為:2字節字串長度 + utf8字串
602906218是:
0x00 0x09(長度)0x36 0x30 0x32 0x39 0x30 0x36 0x32 0x31 0x38(數據)
負載部分則為:
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
負載: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
*/
/*??=可變頭長度+負載長度=0x25*/
//于是,用于連接服務器所發送的數據報為:
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;平臺不允許匿名登陸,因此這兩個標志位在連接時必須設置為1。
WillRetainFlag=0;WillQosFlag=0;WillFlag=0;
CleanSessionFlag=1;
服務器返回:20 02 01 00
20:服務器返回類型編號;
02:長度;
01:session信息在服務器已保持;
00:成功。
-
物聯網
+關注
關注
2909文章
44557瀏覽量
372779 -
MQTT
+關注
關注
5文章
650瀏覽量
22487 -
OneNET
+關注
關注
1文章
51瀏覽量
12800
原文標題:EC20采用MQTT協議接入OneNET平臺
文章出處:【微信號:雨飛工作室,微信公眾號:雨飛工作室】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論