更新时间:2024-09-23 GMT+08:00

MQTT.fx模拟智慧路灯与平台通信

视频指导

通过MQTT.fx模拟智慧路灯连接平台

使用MQTT.fx工具激活在物联网平台上注册的设备。

  1. 下载MQTT.fx(默认是64位操作系统,如果是32位操作系统,单击此处下载MQTT.fx),安装MQTT.fx工具。
  2. 进入设备详情页面,找到“MQTT连接参数”,单击“查看”,查看其中的clientId、username、password和hostname。

    图1 设备-设备详情
    图2 设备-设备详情-MQTT连接参数

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

    图3 MQTT.fx设置

  4. 单击“User Credentials”,参考下表配置鉴权参数。

    图4 配置鉴权参数
    表1 参数说明

    参数名称

    说明

    Broker Address

    即hostname,请参考2中获取。此接入地址为域名信息。不能通过域名接入的设备,通过在cmd命令框中执行“ping 域名”获取IP地址,用IP地址接入平台。由于IP地址不固定,您需要将IP地址做成可配置项。

    Broker Port

    8883,本次快速入门实践采用8883安全连接port。

    Cliend ID

    设备cliendID,请参考2中获取。

    User Name

    即设备ID,请参考2中获取。

    Password

    加密后的设备密钥,请参考2中获取。

  5. 单击“SSL/TLS”,然后单击“Enable SSL/TLS”,“Protocol”推荐选择“TLSv1.2”。选择“CA certificate file”,前往证书资源下载您对应Region和实例版本的证书文件,将证书文件的完整本地路径填入栏目中。最后单击“Apply”,再单击“Cancel”退出配置界面。

    图5 配置SSL/TLS参数

  6. 单击“Connect”,看到MQTT.fx界面右上角圆圈转为绿色,即说明设备模拟器鉴权连接成功。设备连接成功后,在物联网平台可以看到设备处于在线状态。

    图6 设备模拟器连接成功
    图7 设备在线

光照强度数据上报

使用MQTT.fx工具向物联网平台上报光照强度数据。设备若通过MQTT通道上报数据,需要发给指定的topic,上报消息的topic格式为:$oc/devices/{device_id}/sys/properties/report,其中对于一机一密设备,使用deviceId接入时需填写为设备注册成功后返回的deviceId值。

  1. 填写接口地址,此处以$oc/devices/{device_id}/sys/properties/report为例。

    图8 填写接口地址

  2. 在工具中间的空白处填写上报的数据后,单击“Publish”

    表2 设备服务数据列表

    字段名

    必选/可选

    类型

    参数描述

    services

    必选

    List<ServiceProperty>

    设备服务数据列表(具体结构参考下表ServiceProperty定义表)

    表3 ServiceProperty定义表

    字段名

    必选/可选

    类型

    参数描述

    service_id

    必选

    String

    设备服务的ID。

    properties

    必选

    Object

    设备服务的属性列表,具体字段在设备关联的产品模型中定义。

    eventTime

    可选

    String

    设备采集数据UTC时间(格式:yyyyMMddTHHmmssZ),如:20161219T114920Z。

    设备上报数据不带该参数或参数格式错误时,则数据上报时间以平台时间为准。

    请求示例如下:

    {
        "services": [{
                "service_id": "BasicData",
                "properties": {
                    "luminance": 30
            }
          }
       ]
    }

  3. 可以在设备详情页中查看设备是否成功上报数据。如下图,显示光照强度luminance已更新为30。

    图9 查看上报数据-MQTT

远程下发开灯命令

在管理控制台下发开灯命令,远程控制智慧路灯。

  1. 选择设备 > 所有设备,找到新建的设备,单击“详情”进入设备详情页面。
  2. 单击“云端下发”页签,单击“命令下发”,选择命令为LightControl: Switch,value为ON,下发开灯命令。

    图10 命令下发-同步命令下发
    图11 命令下发-LightControl

    MQTT协议设备仅支持同步命令下发,NB-IoT设备仅支持异步命令下发。

  3. MQTT.fx模拟器中选择Subscribe,输入命令下发Topic,订阅后则可以查看到下发的命令参数。命令下发Topic格式为:$oc/devices/{device_id}/sys/commands/#。如下图所示,MQTT.fx模拟器成功收到command_name为Switch的命令,value为ON。

    图12 查看下发的命令参数

    如果Console界面提示命令请求超时,是因为下发的同步命令需要设备侧及时回报响应消息,而MQTT.fx并无自动上报命令响应消息的功能。命令响应内容请参考平台命令下发