支付宝红包
京东盲盒抽奖
幸运转盘
秒杀
自营热卖
支付宝红包

使用MQTT连接华为云的物联网平台(二)

星空的泪痕 1年前   阅读数 163 0

使用MQT为云的物联网平台



前言

上一篇说明了如何在华为云创建设备,并获取到它的DeviceID和密钥,通过这些操作,可以看出它与阿里云的不同,一下是我发觉的几个不同:

  1. 阿里云支持虚拟设备进行仿真,华为云不支持
  2. 华为云需要额外的自己创建服务ID,阿里云没有服务ID这一说法
  3. 华为云没有deviceName,它的devicename=deviceid
  4. 华为云的域名获取方式不同
  5. 华为云的日志叫做消息跟踪,需要自定义跟踪多久

接下来使用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 
   } 
}

注意:响应的命令不会更新到设备影子,即消息响应后,哪怕响应了最新的数据,设备属性的内容也不会进行更新,在这我是发了两次,一次响应,一次属性上报。


总结

提示:这里对文章进行总结:
这篇讲的主要是对华为云设备的连接和命令的发送,可以看出虽然和阿里云操作不一样,但基本内容还是一样的,大家多练就熟悉了!


注意:本文归作者所有,未经作者允许,不得转载

全部评论: 0

    我有话说: