大规模灯控技术方案

2024-05-25 08:57:54 浏览数 (1)

需求:需要控制240个灯的亮和灭。

设备清单:

设备

数量

规格

灯光控制板

1

rs485,12v

48路灯光驱动版

5

12v

网关

1

数据转发,采集modbus,mqtt指令下发

电源

1

ac转dc, 12v

方案流程图

在这里插入图片描述在这里插入图片描述

mqtt broker 信息

地址 1.2.3.4:1883 (不开启 SSL)

topic

目前有三个设备,三个设备的id分别是 lighting1095个灯信号 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}}}

0 人点赞