MQTT.fx模拟智慧路灯与平台通信
视频指导
通过MQTT.fx模拟智慧路灯连接平台
使用MQTT.fx工具激活在物联网平台上注册的设备。
- 下载MQTT.fx(默认是64位操作系统,如果是32位操作系统,单击此处下载MQTT.fx),安装MQTT.fx工具。
- 进入设备详情页面,找到“MQTT连接参数”,单击“查看”,查看其中的clientId、username、password和hostname。
图1 设备-设备详情
图2 设备-设备详情-MQTT连接参数
- 打开MQTT.fx软件,单击设置图标。
图3 MQTT.fx设置
- 单击“User Credentials”,参考下表配置鉴权参数。
图4 配置鉴权参数
- 单击“SSL/TLS”,然后单击“Enable SSL/TLS”,“Protocol”推荐选择“TLSv1.2”。选择“CA certificate file”,前往证书资源下载您对应Region和实例版本的证书文件,将证书文件的完整本地路径填入栏目中。最后单击“Apply”,再单击“Cancel”退出配置界面。
图5 配置SSL/TLS参数
- 单击“Connect”,看到MQTT.fx界面右上角圆圈转为绿色,即说明设备模拟器鉴权连接成功。设备连接成功后,在物联网平台可以看到设备处于在线状态。
图6 设备模拟器连接成功
图7 设备在线
光照强度数据上报
使用MQTT.fx工具向物联网平台上报光照强度数据。设备若通过MQTT通道上报数据,需要发给指定的topic,上报消息的topic格式为:$oc/devices/{device_id}/sys/properties/report,其中对于一机一密设备,使用deviceId接入时需填写为设备注册成功后返回的deviceId值。
- 填写接口地址,此处以$oc/devices/{device_id}/sys/properties/report为例。
图8 填写接口地址
- 在工具中间的空白处填写上报的数据后,单击“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 } } ] }
- 可以在设备详情页中查看设备是否成功上报数据。如下图,显示光照强度luminance已更新为30。
图9 查看上报数据-MQTT
远程下发开灯命令
在管理控制台下发开灯命令,远程控制智慧路灯。
- 选择“详情”进入设备详情页面。 ,找到新建的设备,单击
- 单击“云端下发”页签,单击“命令下发”,选择命令为LightControl: Switch,value为ON,下发开灯命令。
图10 命令下发-同步命令下发
图11 命令下发-LightControl
MQTT协议设备仅支持同步命令下发,NB-IoT设备仅支持异步命令下发。
- MQTT.fx模拟器中选择
,输入命令下发Topic,订阅后则可以查看到下发的命令参数。命令下发Topic格式为:$oc/devices/{device_id}/sys/commands/#。如下图所示,MQTT.fx模拟器成功收到command_name为Switch的命令,value为ON。图12 查看下发的命令参数
如果Console界面提示命令请求超时,是因为下发的同步命令需要设备侧及时回报响应消息,而MQTT.fx并无自动上报命令响应消息的功能。命令响应内容请参考平台命令下发。