使用MQT為云的物聯網平臺
文章目錄
- 使用MQT為云的物聯網平臺
- 前言
- 一、MQTT.fx連接華為云需要什么
- 二、連接步驟
- 1.創建連接
- 2.訂閱主題與發布主題
- 3.實踐操作
- 總結
前言
上一篇說明了如何在華為云創建設備,并獲取到它的DeviceID和密鑰,通過這些操作,可以看出它與阿里云的不同,一下是我發覺的幾個不同:
- 阿里云支持虛擬設備進行仿真,華為云不支持
- 華為云需要額外的自己創建服務ID,阿里云沒有服務ID這一說法
- 華為云沒有deviceName,它的devicename=deviceid
- 華為云的域名獲取方式不同
- 華為云的日志叫做訊息跟蹤,需要自定義跟蹤多久
接下來使用MQTT.fx連接華為云
一、MQTT.fx連接華為云需要什么
連接華為云使用的是密鑰的方式,因此我們需要知道它的DeviceID,username,password,以及域名,當然還有發布的主題和訂閱的主題,
DeviceID,username,password在上一篇已經講解了如何獲取,使用MQTT連接華為云(一);
那么它的域名怎么獲取,與阿里云的不一樣,阿里云是有一定的規律組成的字串,而它是需要自己在 平臺的 總覽 上查看的


至于訂閱主題和發布主題可以在官網的開發檔案獲取
subscribe Topic:
/huawei/v1/devices/{deviceId}/command/{codecMode}
publish Topic
/huawei/v1/devices/{deviceId}/data/{codecMode}

二、連接步驟
1.創建連接
打開MQTT.fx打開配置頁面,將上述的內容放在對于的位置即可

然后保存連接

這樣就連接成功了
2.訂閱主題與發布主題
根據上述的主題格式進行訂閱與發布即可

發布主題的格式如下

設備向Topic發送的payload:
{
"msgType":"deviceReq",
"data": [
{
"serviceId":"******",
"serviceData":{
"temp": "29.3",
"humi":"56.5",
},
"eventTime":"20160503T121540Z"
}
]
}
平臺下發的格式如下

設備先訂閱Topic后才能收到命令推送,設備接收到的payload:
{
"msgType": "cloudReq",
"serviceId": "******",
"mid": 1,
"cmd": "LEVEL",
"paras": {
"value": 4
}
}
3.實踐操作
我在產品中定義了兩個屬性,一個溫度只讀,一個繼電器可讀可寫

根據上報的格式得以下內容
{
"msgType":"deviceReq",
"data": [
{
"serviceId":"qweq",
"serviceData":{
"TEMP": 29.3,
"DO":1
},
"eventTime":"20210724T030340Z"
}
]
}

設備屬性上報成功!
平臺下發的話需要借助平臺的在線除錯

根據mqtt.fx得到以下訊息
{
"msgType":"cloudReq",
"serviceId":"qweq",
"paras":{"DO":1},
"cmd":"繼電器控制",
"hasMore":0,
"mid":3
}
在這里呢還需要對下發命令做一個回應,當然也可以不在意,直接上報新資料即可,回應格式如下
設備向Topic發送的payload:
{
"msgType": "deviceRsp",
"mid": 1, //收到mid
"errcode": 0, //0成功 1失敗
"body": { //可以省略
"result": 0
}
}
注意:回應的命令不會更新到設備影子,即訊息回應后,哪怕回應了最新的資料,設備屬性的內容也不會進行更新,在這我是發了兩次,一次回應,一次屬性上報,
總結
提示:這里對文章進行總結:
這篇講的主要是對華為云設備的連接和命令的發送,可以看出雖然和阿里云操作不一樣,但基本內容還是一樣的,大家多練就熟悉了!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/290171.html
標籤:其他
上一篇:第一章:學習筆記說明!
