天天看點

使用MQTT連接配接華為雲的物聯網平台(二)使用MQTT連接配接華為雲IOT平台前言一、MQTT.fx連接配接華為雲需要什麼二、連接配接步驟總結

使用MQTT連接配接華為雲IOT平台

文章目錄

  • 使用MQTT連接配接華為雲IOT平台
  • 前言
  • 一、MQTT.fx連接配接華為雲需要什麼
  • 二、連接配接步驟
    • 1.建立連接配接
    • 2.訂閱主題與釋出主題
    • 3.實踐操作
  • 總結

前言

上一篇說明了如何在華為雲建立裝置,并擷取到它的DeviceID和密鑰,通過這些操作,可以看出它與阿裡雲的不同,一下是我發覺的幾個不同:

  1. 阿裡雲支援虛拟裝置進行仿真,華為雲不支援
  2. 華為雲需要額外的自己建立服務ID,阿裡雲沒有服務ID這一說法
  3. 華為雲沒有deviceName,它的devicename=deviceid
  4. 華為雲的域名擷取方式不同
  5. 華為雲的日志叫做消息跟蹤,需要自定義跟蹤多久

接下來使用MQTT.fx連接配接華為雲

一、MQTT.fx連接配接華為雲需要什麼

連接配接華為雲使用的是密鑰的方式,是以我們需要知道它的DeviceID,username,password,以及域名,當然還有釋出的主題和訂閱的主題。

DeviceID,username,password在上一篇已經講解了如何擷取,使用MQTT連接配接華為雲(一);

那麼它的域名怎麼擷取,與阿裡雲的不一樣,阿裡雲是有一定的規律組成的字元串,而它是需要自己在 平台的 總覽 上檢視的

使用MQTT連接配接華為雲的物聯網平台(二)使用MQTT連接配接華為雲IOT平台前言一、MQTT.fx連接配接華為雲需要什麼二、連接配接步驟總結
使用MQTT連接配接華為雲的物聯網平台(二)使用MQTT連接配接華為雲IOT平台前言一、MQTT.fx連接配接華為雲需要什麼二、連接配接步驟總結

至于訂閱主題和釋出主題可以在官網的開發文檔擷取

subscribe Topic:

publish Topic

使用MQTT連接配接華為雲的物聯網平台(二)使用MQTT連接配接華為雲IOT平台前言一、MQTT.fx連接配接華為雲需要什麼二、連接配接步驟總結

二、連接配接步驟

1.建立連接配接

打開MQTT.fx打開配置頁面,将上述的内容放在對于的位置即可

使用MQTT連接配接華為雲的物聯網平台(二)使用MQTT連接配接華為雲IOT平台前言一、MQTT.fx連接配接華為雲需要什麼二、連接配接步驟總結

然後儲存連接配接

使用MQTT連接配接華為雲的物聯網平台(二)使用MQTT連接配接華為雲IOT平台前言一、MQTT.fx連接配接華為雲需要什麼二、連接配接步驟總結

這樣就連接配接成功了

2.訂閱主題與釋出主題

根據上述的主題格式進行訂閱與釋出即可

使用MQTT連接配接華為雲的物聯網平台(二)使用MQTT連接配接華為雲IOT平台前言一、MQTT.fx連接配接華為雲需要什麼二、連接配接步驟總結
使用MQTT連接配接華為雲的物聯網平台(二)使用MQTT連接配接華為雲IOT平台前言一、MQTT.fx連接配接華為雲需要什麼二、連接配接步驟總結

釋出主題的格式如下

使用MQTT連接配接華為雲的物聯網平台(二)使用MQTT連接配接華為雲IOT平台前言一、MQTT.fx連接配接華為雲需要什麼二、連接配接步驟總結
裝置向Topic發送的payload: 
{ 
   "msgType":"deviceReq", 
   "data": [ 
   { 
      "serviceId":"******", 
      "serviceData":{ 
        "temp": "29.3", 
        "humi":"56.5", 
       },
      "eventTime":"20160503T121540Z" 
   }
   ] 
}

           

平台下發的格式如下

使用MQTT連接配接華為雲的物聯網平台(二)使用MQTT連接配接華為雲IOT平台前言一、MQTT.fx連接配接華為雲需要什麼二、連接配接步驟總結
裝置先訂閱Topic後才能收到指令推送,裝置接收到的payload: 
{ 
   "msgType": "cloudReq", 
   "serviceId": "******", 
   "mid": 1, 
   "cmd": "LEVEL", 
   "paras": { 
     "value": 4 
   } 
}

           

3.實踐操作

我在産品中定義了兩個屬性,一個溫度隻讀,一個繼電器可讀可寫

使用MQTT連接配接華為雲的物聯網平台(二)使用MQTT連接配接華為雲IOT平台前言一、MQTT.fx連接配接華為雲需要什麼二、連接配接步驟總結

根據上報的格式得以下内容

{ 
   "msgType":"deviceReq", 
   "data": [ 
   { 
      "serviceId":"qweq", 
      "serviceData":{ 
        "TEMP": 29.3, 
        "DO":1
       },
      "eventTime":"20210724T030340Z" 
   }
   ] 
}

           
使用MQTT連接配接華為雲的物聯網平台(二)使用MQTT連接配接華為雲IOT平台前言一、MQTT.fx連接配接華為雲需要什麼二、連接配接步驟總結

裝置屬性上報成功!

平台下發的話需要借助平台的線上調試

使用MQTT連接配接華為雲的物聯網平台(二)使用MQTT連接配接華為雲IOT平台前言一、MQTT.fx連接配接華為雲需要什麼二、連接配接步驟總結

根據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 
   } 
}

           

注意:響應的指令不會更新到裝置影子,即消息響應後,哪怕響應了最新的資料,裝置屬性的内容也不會進行更新,在這我是發了兩次,一次響應,一次屬性上報。

總結

提示:這裡對文章進行總結:

這篇講的主要是對華為雲裝置的連接配接和指令的發送,可以看出雖然和阿裡雲操作不一樣,但基本内容還是一樣的,大家多練就熟悉了!

繼續閱讀