Onenet 物聯(lián)網(wǎng)Mqtt初探(MQTT.fx模擬登陸與數(shù)據(jù)收發(fā))
第一步、在onenet平臺(tái)上建立基于mqtt產(chǎn)品與設(shè)備





添加設(shè)備



開始模擬鏈接:
MQTT客戶端1.7.1下載:https://open.iot.10086.cn/doc/mqtt/book/get-start/connect.html

下載完成,雙擊開始安裝:



我的空間不多了自定義安裝在D盤,下一步

下一步



安裝完成,打開。


添加新設(shè)備信息:
?
開始修改參數(shù)(先看官方截圖):

Broker Address:183.230.40.96
Broker Address連接地址也可以是域名:mqtts.heclouds.com
Broker Prot(端口):1883
Client ID: 設(shè)備名稱
User Name:產(chǎn)品的數(shù)字ID
注:我們這里用的是非加密接口,加密接口需要下載安裝證書。

Password:看以下生成方法
?
OneNET提供token生成工具(點(diǎn)擊下載)
https://open.iot.10086.cn/doc/mqtt/images/tools/token.exe
?

1、填入products/產(chǎn)品ID/devices/設(shè)備名稱
2、填入以上獲得的時(shí)間戳
在線時(shí)間戳:https://tool.chinaz.com/Tools/unixtime.aspx
當(dāng)然理論上你設(shè)置大多少都可以的,只要比當(dāng)前時(shí)間大

3、設(shè)備key
點(diǎn)擊generate按鍵生成:
version=2018-10-31&res=products%2F448854%2Fdevices%2Fmy_pc1&et=1752940800&method=md5&sign=PefA%2BfTBddIACekb0EBvhg%3D%3D
復(fù)制填入mqtt測試工具,點(diǎn)擊ok:

開始連接:


去onenet平臺(tái)查看設(shè)備情況

顯示在線,運(yùn)行成功!歡呼~~~~!?。?/p>
?
以下完全根據(jù)onenet文檔操作:
上傳數(shù)據(jù)點(diǎn)
訂閱上傳結(jié)果通知消息
?
為了確保設(shè)備上傳消息確實(shí)被平臺(tái)所接受處理,設(shè)備可以訂閱系統(tǒng) topic 獲取上傳數(shù)據(jù)點(diǎn)結(jié)果消息;
?
選擇Subscribe項(xiàng),輸入訂閱topic名稱
?
??? topic 命名規(guī)則如下:
??? $sys/{pid}/{device-name}/dp/post/json/+
??? 本例中,訂閱topic為:
$sys/448854/my_pc1/dp/post/json/+
點(diǎn)擊 Subscribe,完成 topic 訂閱

設(shè)備數(shù)據(jù)點(diǎn)上傳
選擇Publish項(xiàng),輸入發(fā)布 topic
topic 命名規(guī)則如下:
$sys/{pid}/{device-name}/dp/post/json
本例中,發(fā)布 topic 名稱為:
$sys/448854/my_pc1/dp/post/json
payload示例如下:

點(diǎn)擊 Publish,上傳數(shù)據(jù)點(diǎn)至平臺(tái)
完成后,可以通過 Subscribe可以接收到平臺(tái)下發(fā)的上傳結(jié)果通知,若通過.../accepted topic接收到消息,則表明平臺(tái)處理消息成功

控制臺(tái)查看數(shù)據(jù)
上傳數(shù)據(jù)成功后,可以通過控制臺(tái) 設(shè)備列表 -> 數(shù)據(jù)流,查看設(shè)備上傳的數(shù)據(jù)點(diǎn)


?
?
接入實(shí)例 - 同步命令
本文將通過 MQTT.fx 實(shí)例,介紹如何通過設(shè)備同步命令下發(fā)命令與獲取設(shè)備應(yīng)答
MQTT客戶端1.7.1下載:
http://www.jensd.de/apps/mqttfx/1.7.1/
?
準(zhǔn)備條件
在上傳數(shù)據(jù)點(diǎn)前,請(qǐng)完成產(chǎn)品與設(shè)備的創(chuàng)建,并進(jìn)行設(shè)備連接,步驟參考
設(shè)備連接實(shí)例:https://open.iot.10086.cn/doc/mqtt/book/example/connect.html
訂閱設(shè)備命令topic
建立設(shè)備連接之后,獲取設(shè)備命令前,必須先訂閱系統(tǒng)命令topic:$sys/{pid}/{device-name}/cmd/request/{cmdid}
topic中{cmdid}為變量,為每條命令的唯一id,可通過通配符的方式進(jìn)行訂閱,比如:$sys/{pid}/{device-name}/cmd/request/+,或者$sys/{pid}/{device-name}/cmd/#
我這里是:
$sys/448854/my_pc1/cmd/#

控制臺(tái)下發(fā)命令
通過設(shè)備列表 -> 更多操作 -> 下發(fā)命令,打開命令調(diào)試工具



控制臺(tái)雖然返回錯(cuò)誤信息,但其實(shí)本地端數(shù)據(jù)已經(jīng)收到,目前若沒做響應(yīng)處理將導(dǎo)致的返回結(jié)果錯(cuò)誤。
使用MQTT.fx發(fā)布消息至對(duì)應(yīng)topic,模擬設(shè)備應(yīng)答(應(yīng)答內(nèi)容為abcd),如下圖所示:
本例中,應(yīng)答對(duì)應(yīng)的topic為:
$sys/448854/my_pc1/cmd/response/4c2f6f80-b204-4a27-8848-edeaa1e97e02

返回成功,好了,這次簡單試運(yùn)行就到此結(jié)束了。