更新时间:2024-09-04 GMT+08:00
分享

设备接入边缘节点(MQTT)

IoT边缘应用部署完成后,边缘节点即作为远端物联网平台在设备侧的延伸,云边协同,共同完成设备管理。边缘节点可以为近端连接的设备就近提供计算和管理服务,如低时延业务本地管理、与云端断链时的本地控制和规则执行等。设备通过接入边缘节点,最终通过边缘节点将数据上传到远端物联网平台。

创建产品

对于设备通过边缘节点上报至物联网平台的数据,云端物联网平台要能够解析设备上报的数据。故需要在设备接入服务侧完成设备的产品模型,编解码插件的开发。

  1. 访问IoT边缘,进入IoT边缘控制台。
  2. 选择左侧导航栏“边缘节点 > 设备建模 ”进入页面。
  3. 单击右上角的“创建产品”,按照页面提示填写信息,然后单击“立即创建”。

    参数名称

    说明

    所属资源空间

    所属资源空间:选择创建边缘节点时,绑定设备接入服务时选择的设备归属资源空间,如edge。

    产品名称

    自定义,如iot_edge。

    协议类型

    MQTT。

    数据格式

    JSON。

    厂商名称

    自定义,如test。

    设备类型

    自定义,如MQTT_Device。

  4. 单击“产品名称”下的产品iot_edge进入产品详情页面。
  5. 在“模型定义”页签下,单击“自定义模型”。

    产品模型是用来描述设备能力的文件,通过JSON的格式定义了设备的基本属性、上报数据和下发命令的消息格式。定义产品模型,即在物联网平台构建一款设备的抽象模型,使平台理解该款设备支持的属性信息。

  6. 填写服务ID、服务类型,单击“确认”。

    服务ID/服务类型:自定义,如sensor

  7. 展开服务列表,单击“添加属性”,分别添加温度、湿度两个属性。

    添加“温度”属性,属性名称为“temp”,如下图所示:

    添加“湿度”属性,属性名称为“humi”,如下图所示:

  8. 单击“添加命令”,添加一条控制命令。

    1. 填写命令名称,自定义,如control_light

    2. 单击“新增下发参数”,填写参数信息,并单击“确认”。
      • 参数名称:light
      • 数据类型:string(字符串)
      • 长度:3
      • 枚举值:ON,OFF

    3. 单击“新增响应参数”,填写参数信息,并单击“确认”。
      • 参数名称:light_state
      • 数据类型:int(整型)
      • 取值范围:0-1

    4. 在“新增命令”窗口,单击“确认”,完成命令添加。

  9. 模型定义完成,参数信息预览如下图所示。

添加边缘设备

  1. 访问IoT边缘,单击“管理控制台”进入IoT边缘控制台。
  2. 选择左侧导航栏的“边缘节点 > 节点管理”,选择您的边缘节点名称,进入节点详情页。
  3. 选择左侧导航栏“边缘设备”页签,单击“添加边缘设备”,填写参数后,单击“确认”。

    • 所属产品:已创建的产品,如iot_edge
    • 设备标识码:自定义,如iot_edge_test_0319
    • 设备名称:自定义,如iot_edge_test_0319
    • 模块ID:不填 添加边缘设备的什么时候填写模块ID?
    • password:自定义,如12345678

  4. 添加设备成功,请保存好设备ID和密钥,用于设备接入平台认证。

  5. 完成添加设备后,可以在设备列表中查看设备状态,并管理边缘设备。

    图1 边缘设备列表

    也可以单击“设备ID(单击进入设备详情)”跳转至“设备接入服务控制台”进行设备管理。

    边缘设备是作为子设备挂在节点设备下的。

设备接入调测

本章节以MQTT.fx为例,介绍以MQTT原生协议接入IoT边缘节点,通过边缘节点上报设备属性至物联网平台。MQTT.fx是目前主流的MQTT客户端,可以快速验证是否可以与物联网平台服务交互发布或订阅消息。

  1. 访问这里,填写添加边缘设备后生成的设备ID和设备密钥,生成连接信息(ClientId、Username、Password)。

  2. 打开MQTT.fx软件,单击设置图标。

  3. 参考截图中配置鉴权参数,然后单击截图中“Apply”。

    • Broker Address:填写边缘节点服务器公网IP地址
    • Broker Port:填写边缘节点提供给南向MQTT(S)设备接入的端口,即7883
    • Cliend ID:设备cliendID,参考1获取
    • User Name:即设备ID,参考1获取
    • Password:加密后的设备密钥,参考1获取

    在设备对接边缘节点场景中,需要在设备侧集成相应证书(证书文件),用于设备校验边缘节点的身份。

  4. 单击“Connect”,设备鉴权成功后,在IoT边缘控制台和物联网平台可以看到设备处于在线状态。如果模拟器右侧的红灯变成绿灯,说明与物联网平台的连接成功。

    IoTEdge云服务上边缘节点显示子设备在线:

    物联网平台显示边缘节点、子设备在线:

  5. 通过MQTT.fx模拟设备上报属性,并在物联网平台查看设备上报数据。

    在Publish页签,填写设备属性上报Topic,及JSON消息体,单击“Publish”完成上报。

    • Topic:$oc/devices/iot_edge_test_0219/sys/properties/report

      其中,iot_edge_test_0219为设备ID,请替换为实际值。

    • 消息体:
      {
          "services" : [{
                  "service_id" : "sensor",
                  "properties" : {
                      "temp" : 25,
                      "humi" : 11
                  },
                  "event_time" : "20210212T121212Z"
              }
          ]
      }

    在物联网平台查看设备上报数据。

  6. 通过MQTT.fx订阅命令下发Topic,并在物联网平台下发控制命令,查看设备是否收到平台下发的命令。

    1. 在Subscribe页签,填写命令下发Topic,并单击“Subscribe”完成订阅。

      Topic:$oc/devices/iot_edge_test_0219/sys/commands/#

      其中,iot_edge_test_0219为设备ID,请替换为实际值。

    2. 在物联网平台执行命令下发。

      进入设备详情页,选择“命令”页签,单击同步命令下发区域的“命令下发”,设置参数并单击“确定”完成命令下发。

      • 选择命令:sensor: control_light
      • light:ON

      在MQTT.fx客户端查看,平台下发命令接收成功。

相关文档