更新时间:2025-08-19 GMT+08:00
分享

使用mqttfx模拟物联网设备

操作步骤

  1. 访问智能设施云平台管理控制台,选择“设备管理 > 产品”,在对应产品分类下创建一个产品,注意产品ID要唯一,协议类型必须为MQTT

    图1 创建产品

  2. 创建产品成功后单击详情页面,在该页面下添加服务ID,一般默认固定填写为InfoService。

    图2 添加服务

  3. 添加服务成功后可以为该服务添加对应的设备属性,具体属性名称和属性类型根据实际的设备属性来,操作如下:

    图3 添加属性

  4. 接着在“设备”菜单注册对应设备,设备所属产品要选择上面创建的产品,设备类型为物联网设备,设备鉴权密码填写一个好记住的密码(后面连接mqtt需要用到),操作如下:

    图4 注册物联网设备

  5. 注册成功后会弹出关闭保持框,单击确认后就会下载一个DEVICES-KEY.txt的文件,该文件记录好了该设备的secret值(对应的就是设备鉴权密码)。同时去设备详情里面查看设备id并记录下来。
  6. 进入下面url下载安装MQTT.fx工具后进行安装:

    https://iotda-document.obs.cn-north-4.myhuaweicloud.com/mqttfx-1.7.1-windows-x64.exe

  7. 访问https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com这个地址,填写步骤4的设备ID(DeviceId)和设备的设备鉴权密码,密码签名类型为密钥认证,密码签名类型为不校验时间戳,生成连接信息(ClientId、Username、Password)。

    图5 clientID生成工具

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

    图6 设置按钮

  9. 参考下表配置鉴权参数,然后单击“Apply”。

    图7 mqtt连接配置
    表1 mqtt连接参数

    参数名称

    说明

    Broker Address

    设备对接地址,此地址为域名信息。北京四伙伴POC测试环境可以使用

    e6aeb02b19.st1.iotda-device.cn-north-4.myhuaweicloud.com

    Broker Port

    默认使用1883

    CliendID

    设备cliendID,请参考步骤7中获取。

    User Name

    即设备ID,请参考步骤7中获取。

    Password

    加密后的设备密钥,请参考步骤7中获取。

  10. 单击“Connect”,设备鉴权成功后,在设施云平台“设备”界面可以看到对应物联网设备处于在线状态就说明模拟设备连接成功了。
  11. 连接成功后就可以通过发布消息到对应设备的url就能上报该设备的点位数据,对应url如下:

    “$oc/devices/{device_id}/sys/properties/report”为例,如“$oc/devices/5e4e2e92ac-164aefa8fouquan1/sys/properties/report”。

    图8 上报点位

  12. 填写上报的数据格式如下:

    {
        "services": [
            {
                "event_time": "20240914T081438Z",
                "properties": {
                    "ElecQualitity": 10.1
                },
                "service_id": "InfoService"
            }
        ]
    }
    表2 表1 设备服务数据列表

    字段名

    必选/可选

    类型

    参数描述

    services

    必选

    List<ServiceProperty>

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

    表3 表2 ServiceProperty定义表

    字段名

    必选/可选

    类型

    参数描述

    service_id

    必选

    String

    设备服务的ID。固定填写为InfoService.

    properties

    必选

    Object

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

    eventTime

    可选

    String

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

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

  13. 单击“Publish”,可以在设施云设备详情界面上查看设备是否成功上报数据。

    图9 物联网设备点位

  14. 如果要模拟设置点位,在mqtt.fx模拟工具打开订阅功能,订阅的topic为$oc/devices/{device_id}/sys/properties/set/#,如下图所示:

    图10 订阅点位设置

  15. 接着在机电设备详情页面对应的属性管理页面,单击对应点位设置按钮来设置这个设备的点位进行下发:

    图11 设定点位值

  16. 设置成功后就可以监听到一个消息了,如下所示,可以看到一个后面有个request_id参数,获取这个参数值后,接着发布一个消息来响应设置点位成功。

    图12 监听点位设置信息

  17. 发布的topic为$oc/devices/{device_id}/sys/properties/set/response/request_id={request_id},速度要快,不然就容易响应超时导致设置失败了。

    图13 响应点位设置

  18. 如果需要进行其他IOTDA和设备的交互,IOTDA提供的基础topic可参照如下表格(仅适用于MQTT协议设备)。

    表4 topicy定义表

    Topic

    发布者

    订阅者

    用途

    $oc/devices/{device_id}/sys/messages/up

    设备

    平台

    设备消息上报

    $oc/devices/{device_id}/sys/messages/down

    平台

    设备

    平台下发消息给设备

    $oc/devices/{device_id}/sys/commands/request_id={request_id}

    平台

    设备

    平台下发命令给设备

    $oc/devices/{device_id}/sys/commands/response/request_id={request_id}

    设备

    平台

    设备返回命令响应

    $oc/devices/{device_id}/sys/properties/report

    设备

    平台

    设备上报属性数据

    $oc/devices/{device_id}/sys/gateway/sub_devices/properties/report

    设备

    平台

    网关批量上报属性数据

    $oc/devices/{device_id}/sys/properties/set/request_id={request_id}

    平台

    设备

    平台设置设备属性

    $oc/devices/{device_id}/sys/properties/set/response/request_id={request_id}

    设备

    平台

    属性设置的响应结果

    $oc/devices/{device_id}/sys/properties/get/request_id={request_id}

    平台

    设备

    平台查询设备属性

    $oc/devices/{device_id}/sys/properties/get/response/request_id={request_id}

    设备

    平台

    属性查询响应结果,这个结果不会对设备属性和影子产生影响

    $oc/devices/{device_id}/sys/shadow/get/request_id={request_id}

    设备

    平台

    设备侧主动获取平台的设备影子数据

    $oc/devices/{device_id}/sys/shadow/get/response/request_id={request_id}

    平台

    设备

    设备侧主动获取平台设备影子数据的响应

    $oc/devices/{device_id}/sys/events/up

    设备

    平台

    设备事件上报

    $oc/devices/{device_id}/sys/events/down

    平台

    设备

    平台事件下发

相关文档