MQTT協議分析對接華為云體驗整個通信流程

      網友投稿 1282 2022-05-29

      本章帶領大家使用MQTT.fx作為客戶端采用MQTT協議連接華為IoT中的IoTDA服務,體驗整個MQTT的使用流程。

      一、創建產品

      進入控制臺,選擇“設備接入IoTDA”服務。

      點擊左側“產品”。

      點擊右上角“創建創建產品”。

      我們創建一個名為MQTT_TEST的產品,協議類型選擇“MQTT”,數據格式選擇“JSON”,設備類型是傳感器“Sensor”,填寫完點擊右下角“立即創建”,即可看到如下圖所示的產品。

      點擊上圖產品名稱“MQTT_TEST”,選擇“模型定義”,點擊自定義模型,如下圖

      我們新建一個Sensor名稱的服務,如下圖,點擊“確認”。

      在Sensor服務中添加一個Temperature名稱的屬性,數據類型為小數,勾選“必選”,待會我們通過MQTT.fx客戶端模擬上傳,如下圖。

      添加一個名為“Power_Control”的命令,新增一個名為Status的參數,數據類型為字符串,長度為3,添加ON和OFF兩個枚舉值,用,隔開,點擊“確認”即可完成添加

      二、注冊設備

      MQTT協議分析—對接華為云體驗整個通信流程

      點擊左側“設備”,選擇右上角“注冊設備”,如上圖。

      選擇剛才創建產品使用的資源空間及產品,任意填寫標識碼,在產品中我們一般使用設備的MAC地址、IMEI號、串碼等獨一無二的信息作為設備的標識碼,這里隨意填寫,只要記得就行,設備名稱可以隨意填寫,密鑰為了方便我這里填寫123456,填寫完成之后點擊“確定“出現如下圖所示的信息界面。

      三、使用MQTT.fx作為客戶端連接

      MQTT協議規定進行連接或者通訊時需要的“接入地址”、“端口”、“Client ID“、“用戶名”、“密碼”等信息,這些信息的獲取方法每個平臺都不一樣,具體如何獲取取決于平臺的要求,華為云IoTDA對“Client ID“、“用戶名”、“密碼”等信息的詳細要求可以查閱下面這個幫助文檔:https://support.huaweicloud.com/api-iothub/iot_06_v5_3009.html,這三項信息主要用于鑒權,我們可以通過根據下面的文檔將需要的數據手動計算出來或者使用一個小工具直接生成,這個小工具的-:https://developer.obs.cn-north-4.myhuaweicloud.com/hub/mqttClientIdGenerator-19.2.0.zip

      打開下載好的“mqttClientIdGenerator-19.2.0”,填入之前我們設置和系統生成的信息:

      設備ID?? 5f223ea2f958e402cae7c76e_1023405741

      密鑰?????? 12345678

      點擊“Generate”,即可得到鑒權所需的clientID、username和password

      打開安裝好的MQTT.fx軟件,點擊“設置”,如下圖:

      根據IoTDA中“總覽”界面的接入域名、非加密端口1883和上面的三個鑒權信息填寫,注意這里的Password是那個軟件生成的并不是直接填寫12345678,最終如下圖:

      點擊ok,然后點擊“connect”,可以在IoTDA設備中看到剛才我們的設備的狀態由“未激活”變為“在線”,如下圖:

      到這一步說明連接成功了!

      四、觀察數據上報和命令下發

      在IoTDA服務中MQTT的topic被劃分為如下:

      設備消息:設備向該topic發布一些消息,例如傳感器異常等

      設備屬性:設備向該topic發布自身屬性。例如溫濕度。

      命令下發:設備訂閱了該topic可以收到服務器下發的命令。

      自定義topic:我們可以自定義一些topic以滿足不同的需求。

      要如何上報數據呢?這就是MQTT中的發布機制,我們需要查看IoTDA的幫助文檔,從而確定Temperature這個屬性需要發布到哪一個topic中以及JSON數據的格式,詳細文檔可以參考:

      https://support.huaweicloud.com/api-iothub/iot_06_v5_3010.html?設備屬性上報格式。https://support.huaweicloud.com/api-iothub/iot_06_v5_3004.html?topic定義

      主要信息:

      我們需要將{device_id}字段替換為5f223ea2f958e402cae7c76e_1023405741,最終使用的topic為:$oc/devices/5f223ea2f958e402cae7c76e_1023405741/sys/properties/report。

      數據格式為:

      根據以上信息組成一個JSON格式的數據,Services為一個列表,可以在其中存放我們在產品中定義的全部屬性,例如:service_id為Sensor的這個服務,其中由名為Temperature的屬性,最終效果如下圖:

      在MQTT.fx軟件中填寫topic和JSON數據格式,點擊publish發布,如下圖:

      這時可以看到IoTDA設備界面中收到了數據,如下圖:

      如何收到服務器下發的命令呢?使用MQTT協議的訂閱機制,根據topic定義和如下文檔:https://support.huaweicloud.com/api-iothub/iot_06_v5_3014.html

      我們可以訂閱一個topic,因為每次命令下發時topic中最后一級字符串是指request_id,代表每次請求的編號是獨一無二的,還可以用于向服務器request_id對應的命令執行,我們無法提前預知其內容,所以使用*通配符,無論什么request_id都能收到,我們訂閱:$oc/devices/5f223ea2f958e402cae7c76e_1023405741/sys/commands/#,如下圖:

      在文本框內填入topic點擊Subscribe即可訂閱,這時打開IoTDA設備界面選擇MQTT_TEST設備,點擊“命令下發”,發送一個ON指令,如下圖:

      立馬可以在MQTT.fx中看到如下信息,說明下發成功了:

      體驗到這里就算結束了!

      IoT MQTT

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:android開發出現錯誤:Failed to find configured root that contains
      下一篇:《Office 2019高效辦公三合一從入門到精通 : 視頻自學版》 —3.2.3設置文本效果
      相關文章
      国产精品亚洲一区二区在线观看| 精品国产亚洲第一区二区三区| 亚洲A∨精品一区二区三区| 亚洲sss综合天堂久久久| 亚洲网站在线播放| 久久精品国产亚洲77777| 亚洲第一中文字幕| 久久91亚洲精品中文字幕| 久久久影院亚洲精品| 亚洲国产精品婷婷久久| 亚洲国产精品自在线一区二区| 久久精品7亚洲午夜a| 亚洲精品福利视频| 91精品国产亚洲爽啪在线影院| 亚洲一区中文字幕久久| 亚洲一级二级三级不卡| 亚洲美女aⅴ久久久91| 亚洲人成电影在线观看青青| 亚洲一区二区三区播放在线 | 亚洲性在线看高清h片| 久久亚洲国产成人精品无码区| 国产自偷亚洲精品页65页| 亚洲国产一二三精品无码| 亚洲福利视频一区| 亚洲理论片在线中文字幕| 亚洲AV成人噜噜无码网站| 亚洲色欲啪啪久久WWW综合网| 亚洲av无码专区青青草原| 国产av无码专区亚洲av毛片搜| 亚洲第一成人影院| 国产国拍精品亚洲AV片| 亚洲国产婷婷六月丁香| 亚洲嫩模在线观看| 亚洲人成毛片线播放| 亚洲熟女综合色一区二区三区| 337p日本欧洲亚洲大胆艺术| 亚洲国产视频一区| 亚洲av无码电影网| 亚洲第一成年免费网站| 亚洲乱码国产一区网址| 国产精品亚洲аv无码播放|