需求:需要控制240个灯的亮和灭。
设备清单:
设备 | 数量 | 规格 |
---|---|---|
灯光控制板 | 1 | rs485,12v |
48路灯光驱动版 | 5 | 12v |
网关 | 1 | 数据转发,采集modbus,mqtt指令下发 |
电源 | 1 | ac转dc, 12v |
方案流程图
mqtt broker 信息
地址 1.2.3.4:1883 (不开启 SSL)
topic
目前有三个设备,三个设备的id分别是
lighting
1095个灯信号
io1
第1个io模块 存储了40个接近开关讯号
io2
第2个io模块 存储了40个接近开关讯号
共用获取设备讯号的topic
SBOX/e1a2321e0990/ /device/data/push
其中,e1a2321e0990
是网关设备的id,如果换了网关需要更换该id。
(目前我使用的网关id是e1a2321e0990
,邮寄给你们的是95f74b5f26d2
。网关信息使用网线连接电脑,进入http://192.168.100.1/ 登录 账号admin,密码admin。即可查看)。
为通配符,代表设备id
三个设备的信号可以通过订阅该topic来获取。
如果只想获取灯的讯号 只需要这样订阅 SBOX/e1a2321e0990/lighting/device/data/push
只订阅io1的讯号 SBOX/e1a2321e0990/io1/device/data/push
订阅设备讯号示例
订阅灯的讯号
订阅 SBOX/e1a2321e0990/lighting/device/data/push 灯光控制返回示例
代码语言:javascript复制{
"time": 1704801337715,
"params": {
"AA01-G": true,
"AA01-R": false,
"AA01-Y": true,
"AA02-G": true,
"AA02-R": true,
"AA02-Y": true,
"AA03-G": false,
"AA03-R": true,
"AA03-Y": false,
"AA04-G": false,
"AA04-R": false,
"AA04-Y": false,
"AA05-G": false,
"AA05-R": false,
"AA05-Y": false,
// 省略n个灯讯号
"EH08-Y": false,
"EH09-G": false,
"EH09-R": false,
"EH09-Y": false,
"EH10-G": false,
"EH10-R": false,
"EH10-Y": false,
"ID": 1,
"REG_BIT": 16,
"RESERVE": 0,
"STA_MODE": 1,
"TM_GRAY": 255
}
}
解释: 1095个灯的标识 AA01-R至EH10-G
订阅接近开关的信号
订阅io1的讯号 SBOX/e1a2321e0990/io1/device/data/push 返回值
代码语言:javascript复制{
"time": 1704802046842,
"params": {
"AA01-SWITCH": true,
"AA02-SWITCH": false,
"AA03-SWITCH": false,
"AA04-SWITCH": false,
"AA05-SWITCH": false,
"AA06-SWITCH": false,
"AA07-SWITCH": false,
"AA08-SWITCH": false,
"AA09-SWITCH": false,
"AA10-SWITCH": false,
"AB01-SWITCH": false,
"AB02-SWITCH": false,
"AB03-SWITCH": false,
"AB04-SWITCH": false,
"AB05-SWITCH": false,
"AB06-SWITCH": false,
"AB07-SWITCH": false,
"AB08-SWITCH": false,
"AB09-SWITCH": false,
"AB10-SWITCH": false,
"AC01-SWITCH": false,
"AC02-SWITCH": false,
"AC03-SWITCH": false,
"AC04-SWITCH": false,
"AC05-SWITCH": false,
"AC06-SWITCH": false,
"AC07-SWITCH": false,
"AC08-SWITCH": false,
"AC09-SWITCH": false,
"AC10-SWITCH": false,
"AD01-SWITCH": false,
"AD02-SWITCH": false,
"AD03-SWITCH": false,
"AD04-SWITCH": false,
"AD05-SWITCH": false,
"AD06-SWITCH": false,
"AD07-SWITCH": false,
"AD08-SWITCH": false,
"AD09-SWITCH": false,
"AD10-SWITCH": false
}
}
修改灯的状态
修改灯的状态 topic: SBOX/e1a2321e0990/lighting/device/data/set
传入参数 json格式
代码语言:javascript复制{
"id": 1,
"deviceId": "lighting",
"data": {
"AA01-R": true,
"AA01-Y": true
}
}
id为本次请求的请求id,可以用于标识本次请求的唯一性,必须为数字 deviceId固定为lighting,lighting对应的是灯光控制板设备id。 data中存放的是 要开启,或关闭的灯的数据。可以多个,目前支持1095个信号
指令下发结果的 上报
topic SBOX/e1a2321e0990/ /device/data/setResult 示例 Topic: SBOX/e1a2321e0990/lighting/device/data/setResult {“id”:1,“result”:{“AA01-R”:{“success”:true},“AA01-Y”:{“success”:true}}}