MQTT閘道器連線華為雲物聯網平臺應用
ZLAN5143D是一款專門為工業環境設計的RS485裝置資料採集器/物聯網閘道器,兼具串列埠伺服器、Modbus閘道器、MQTT閘道器、RS485轉JSON等多種功能於一體。如圖 1所示,可以連線華為雲的還有MQTT閘道器5144J、8308、8305、8305L、7144等型號
華為雲物聯網平臺
裝置接入服務(IoTDA)是華為雲的物聯網平臺,提供海量裝置連線上雲、裝置和雲端雙向訊息通訊、批量裝置管理、遠端控制和監控、OTA升級、裝置聯動規則等能力,並可將裝置資料靈活流轉到華為雲其他服務。如圖2所示:
進入華為雲官網後,點選產品選項,下拉找到IoT物聯網,選擇物聯網雲服務,雙擊裝置接入IoTDA,進入下一個頁面
正常使用的時候需要購買使用,本次測試直接選擇立即使用進入下一頁面
這個頁面主要需要的是產品,裝置,平臺接入地址,首先通過平臺接入地址得到華為雲mqtt伺服器的域名和埠,得到域名為xxxxxx.iot-mqtts.cn-north-4.myhuaweicloud.com,(不同賬號不同)埠號為1883;
域名,埠如圖所示:
通過上一張圖我們看到還需要設定的還有產品,裝置兩個選項,首先設定產品,點選建立產品,引數設定如圖所示:
點選確定以後,出現產品列表,點選產品後面的檢視按鈕,出現如下頁面:模型定義,線上除錯,Topic管理,首先第一步需要自定義模型
新增服務,服務id等於說物模型id,這邊我們設定的是wenshidu,是溫溼度的拼音,服務型別和服務描述任意填
在剛剛新增的服務ID:wenshidu裡面新增2個屬性,因為採集的是溫溼度,所以分別新增2個屬性,分別是溫度,溼度,2條屬性詳細設定如圖所示
2條屬性配置完以後,物模型已基本設定完畢,下面進入Topic管理頁面
首先我們呼叫物模型的使用,需要用到的是裝置屬性相關Topic裡面的$oc/devices/{device_id}/sys/properties/report,即裝置上報屬性資料,可以自定義topic,但是自定義主題無法呼叫物模型,不建議使用
到這步為止,產品相關的配置已完成,下面進入裝置配置
2.3註冊裝置選擇單設備註冊,相關配置如下圖所示,務必記住金鑰一定要儲存好!!!
新建的裝置如圖所示,裝置影子類似於物模型狀態,訊息跟蹤類似於訊息追蹤,可以看到訊息日誌
使用VIRCOM軟體點選裝置管理,自動搜尋到裝置以後雙擊,進入如下頁面,ip模式選擇動態獲取,工作模式選擇TCP客戶端,目的ip和埠為華為雲物聯網平臺的ip和埠,具體的域名在第五頁有!!不設定也沒關係,設定mqtt引數就可以,然後點選韌體與配置
首先需要新建資料夾,新建後配置mqtt引數和json配置,
伺服器域名或者IP::xxxxxxxxx.iot-mqtts.cn-north-4.myhuaweicloud.com
具體的域名在第五頁有!!!裝置ID和金鑰在第九頁!!!
伺服器mqtt埠:1883
使用者名稱:通過裝置ID和金鑰計算
密碼:通過裝置ID和金鑰計算
客戶端ID:通過裝置ID和金鑰計算
訂閱主題:$oc/devices/{device_id}/sys/properties/set/request_id={request_id}
釋出主題:$oc/devices/{device_id}/sys/properties/report
{device_id}由實際的裝置ID來代替!!!
下面為計算網頁地址
https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/
第一頁總體設定如圖所示:
具體配置頁面JSON巢狀
固定字串
上發josn格式示例:
{"services":[{"service_id":"wenshidu","properties":{"Temperature":23,"humidity":54},"eventTime":"2021-04-30 14:42:50"}]}
3.3下位機模擬通過modbus slave模擬下位機溫溼度感測器資料,站地址為1,暫存器是40001,40002,40001存放的溫度的資料,40002存放的是溼度的資料
配置完成後,請點選下載,確保資料夾已經下載,觀察指示燈狀態LINK燈藍色,ACTIVE燈閃爍
點選訊息跟蹤重新整理後可以看到,平臺收到裝置的屬性上報,並且影子重新整理成功!!
通過概述頁面可以看到最新的上報資料,溫度為23度,溼度為54%,上報重新整理間隔為6秒,可以通過我們的json裡面的配置頁面自定義!!!
JSON格式CSV格式
業務詳情上發:
Device Id is:608b6b0ba6467502c03a7dc4_zlan000001,
topic is : $oc/devices/608b6b0ba6467502c03a7dc4_zlan000001/sys/properties/report, DatatoStringis
:{"services":[{"service_id":"wenshidu","properties":{"Temperature":23,"humidity":54},"eventTime":"2021-04-30 15:12:38"}]}