使用MQTT連接配接華為雲IOT平台
文章目錄
- 使用MQTT連接配接華為雲IOT平台
- 前言
- 一、MQTT.fx連接配接華為雲需要什麼
- 二、連接配接步驟
-
- 1.建立連接配接
- 2.訂閱主題與釋出主題
- 3.實踐操作
- 總結
前言
上一篇說明了如何在華為雲建立裝置,并擷取到它的DeviceID和密鑰,通過這些操作,可以看出它與阿裡雲的不同,一下是我發覺的幾個不同:
- 阿裡雲支援虛拟裝置進行仿真,華為雲不支援
- 華為雲需要額外的自己建立服務ID,阿裡雲沒有服務ID這一說法
- 華為雲沒有deviceName,它的devicename=deviceid
- 華為雲的域名擷取方式不同
- 華為雲的日志叫做消息跟蹤,需要自定義跟蹤多久
接下來使用MQTT.fx連接配接華為雲
一、MQTT.fx連接配接華為雲需要什麼
連接配接華為雲使用的是密鑰的方式,是以我們需要知道它的DeviceID,username,password,以及域名,當然還有釋出的主題和訂閱的主題。
DeviceID,username,password在上一篇已經講解了如何擷取,使用MQTT連接配接華為雲(一);
那麼它的域名怎麼擷取,與阿裡雲的不一樣,阿裡雲是有一定的規律組成的字元串,而它是需要自己在 平台的 總覽 上檢視的
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHLzEkeORTSE9EeRpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLjNGMiVTYlFmMzYmY5EzYhJmN3QDM3QzN5YGZwgTMkR2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
至于訂閱主題和釋出主題可以在官網的開發文檔擷取
subscribe Topic:
publish Topic
二、連接配接步驟
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
}
}
注意:響應的指令不會更新到裝置影子,即消息響應後,哪怕響應了最新的資料,裝置屬性的内容也不會進行更新,在這我是發了兩次,一次響應,一次屬性上報。
總結
提示:這裡對文章進行總結:
這篇講的主要是對華為雲裝置的連接配接和指令的發送,可以看出雖然和阿裡雲操作不一樣,但基本内容還是一樣的,大家多練就熟悉了!