使用MQTT.fx對接華為物聯網平臺——實踐操作過程
根據參考文檔實現,個人能力有限,如有不足或者錯誤之處,請批評指正。
參考文檔:開發文檔?。
實踐簡述:通過MQTT.fx工具,以MQTT協議接入華為物聯網平臺。給大家分享一下過程總結。
目錄
一、平臺創建設備
獲取ip地址
創建MQTT產品
注冊設備
二、安裝MQTT.fx、生成連接信息
安裝MQTT.fx工具
獲取鑒權信息
三、與平臺連接
一、平臺創建設備
進入iot物聯網->設備管理->立即使用,即可進入物聯網平臺控制臺
首先查看自己的應用和設備接入地址。保存自己的MQTT的協議地址以及端口號即可。(用于建立TCP連接)
創建MQTT產品
a.在快捷操作中,點擊“創建產品”進入"IoT Platform"界面
b.點擊“新增產品模型”進行MQTT模型添加(即創建產品)
點擊手動創建,填入自己相應的信息即可(用于測試,可以隨意填入)
注冊設備
在左側導航欄中,選擇設備->設備注冊,在設備注冊頁面點擊“+創建”,進行設備添加。
注意:設備識別碼可以隨意填入,但是要求唯一。
完成后,記得保存自己的設備ID以及密碼哦。
至此,平臺端設備創建完成。可在IoT Platform頁面查看設備相關信息。
二、安裝MQTT.fx、生成連接信息
參考:鑒權信息
安裝MQTT.fx
訪問?MQTT.fx下載網頁,下載并安裝MQTT.fx(最新版本即可)。
運行mqttfx.exe即可。
獲取鑒權信息
a.通過jar工具生成
下載?工具jar包,然后在相應目錄的cmd運行jar包 (java -jar 包名.jar)
填入剛剛保存的設備ID以及密碼,即可生成
注意:cmd一定要是對應的jar包目錄;需要java環境。
b.自己手動生成
當自己沒有java環境時,可以手動生成。一定要參考官方文檔。
clientId : 設備ID_0_0_當前時間戳(如:2020040821);
username :設備ID
password采用的是“HMACSHA256”加密,密鑰為時間戳(如:2020040821),當然,我們設置的是不檢驗時間戳的正確性,但時間戳不能少。
三、與平臺連接
當以及獲取鑒權信息后,即可通過MQTT協議接入華為物聯網平臺。
打開MQTT.fx,填入相關信息。
完成后,點擊Connect,即可連接。
查看平臺設備信息,顯示在線,成功接入。
注意:本次沒有進行時間戳校驗,因此接入相對簡單容易。
四.Pulish
(1)Pulish,顧名思義就是發布主題。連接MQTT服務器后,發布自己的消息主題,可推送給訂閱者。
(2)三種服務質量等級
注:??為16進制消息體
華為云物聯網平臺不支持QoS2。個人認為,應該是Qos2沒有必要,占用資源多,且數據可以通過軟件判斷是否到達。
上報數據示例:
{ ????"services":?[{ ????????????"service_id":?"Temperature", ????????????"properties":?{ ????????????????"value":?23 ????????????}, ????????????"event_time":?"20151212T121212Z" ????????}, ????????{ ????????????"service_id":?"Battery", ????????????"properties":?{ ????????????????"level":?80 ????????????}, ????????????"event_time":?"20151212T121212Z" ????????} ????] }
(3)在華為云物聯網平臺操作注意事項
發布的topic需要有固定的開頭,形式為$oc/devices/{device_id}/sys/properties/report。
device_id:設備ID
分隔符用"/"
五.Subcribe
Subcribe的操作和Pulish差不多。只不過是訂閱別人的主題。當訂閱的topic有消息發布時,服務器會推送給訂閱者。
同理,也和publish一樣有Qos0,Qos1,Qos2。
使用華為云物聯網平臺,訂閱topic時,topic名稱是$oc/devices/{device_id}/sys/command/#。
六.retain
注:華為物聯網平臺不支持retian msg
retain,即持久消息,消息一直保留在服務器上,不僅推送給當前訂閱者,且當此后有新的訂閱者訂閱時,也是推送此消息。
也就是可以讓新的訂閱者獲取上一次的topic信息。
七.will
注:華為物聯網平臺不支持will
will,遺囑。
當設備與服務器建立連接時約定好了遺囑消息,服務器會存儲此消息。當客戶端異常斷開(非自動斷開)時,會向服務端發送約定好的遺囑消息。
最后,再說一遍(踩坑經驗),設備通過MQTT協議接入華為IoTDA后,topic格式需要是固定的,用戶不能自定義,不然設備訂閱/發布topic時會出錯。
設備接入 IoTDA IoT 設備管理 IoTDM
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。