主题
硬件控制系统
涉及子系统:工控机(执行)、云端 API(指令路由)、管理后台(操作界面)
核心业务:提供对灯光、设备等非门禁硬件的远程监控与控制能力
系统概述
硬件控制系统是除 AB 门之外所有可控硬件的统一管理层,主要包括灯光控制、UPS 监控,以及未来可能扩展的其他设备。管理员可通过管理后台远程操作,工控机负责本地执行。
可控硬件清单
| 硬件 | 控制方式 | 当前状态 |
|---|---|---|
| 健身区灯光 | 工控机 GPIO + 继电器 | 规划中 |
| 隔离间灯光 | 工控机 GPIO + 继电器 | 规划中 |
| 前台/入口灯光 | 工控机 GPIO + 继电器 | 规划中 |
| UPS 电源 | 串口/RS485 读取状态 | 仅监控,不主动控制 |
| 淋浴热水阀 | 见淋浴系统文档 | 硬件方案待定 |
灯光控制
控制模式
| 模式 | 说明 |
|---|---|
| 手动模式 | 管理员通过管理后台手动开关 |
| 定时模式 | 工控机按预设时间表自动控制(如每天 6:00 开灯,23:00 关灯) |
| 联动模式 | 根据门禁状态自动联动(如有人进入时开灯,无人时延时关灯) |
灯光分区
建议将灯光按区域分组,支持分区控制:
| 分区 | 说明 |
|---|---|
zone_entrance | 入口/隔离间区域 |
zone_main | 健身区主区域 |
zone_locker | 更衣室区域 |
zone_shower | 淋浴区域 |
远程控制指令(MQTT)
灯光控制指令
json
// 云端 → 工控机
{
"action": "light_control",
"zone": "zone_main",
"state": "on", // on / off
"brightness": 100, // 可选,0-100(如支持调光)
"operator": "admin@example.com"
}定时任务配置
定时任务配置存储在云端,工控机启动时拉取,变更时通过 MQTT 推送更新:
json
{
"schedules": [
{
"zone": "zone_main",
"action": "on",
"time": "06:00",
"days": ["mon", "tue", "wed", "thu", "fri", "sat", "sun"]
},
{
"zone": "zone_main",
"action": "off",
"time": "23:00",
"days": ["mon", "tue", "wed", "thu", "fri", "sat", "sun"]
}
]
}UPS 监控
工控机通过串口/RS485 读取 UPS 状态,定期上报至云端。
监控指标
| 指标 | 告警阈值 | 处理方式 |
|---|---|---|
| 电池电量 | < 20% | 发送告警通知到管理后台 |
| 市电状态 | 市电断电 | 立即告警,记录断电时间 |
| 输出电压 | 异常范围 | 发送告警 |
| UPS 温度 | 过高 | 发送告警 |
上报格式
json
{
"event": "ups_status",
"batteryLevel": 85,
"mainsPower": true, // true=市电正常,false=断电
"outputVoltage": 220,
"temperature": 35,
"timestamp": "2026-03-11T10:00:00Z"
}设备心跳与在线状态
工控机每 30 秒向云端发送心跳包:
json
{
"event": "heartbeat",
"storeId": "store_001",
"deviceId": "device_001",
"uptime": 86400,
"timestamp": "2026-03-11T10:00:00Z"
}云端超过 90 秒未收到心跳,标记设备为离线,触发告警通知。
管理后台功能
硬件控制面板
- 所有门店工控机在线/离线状态一览
- 灯光状态展示(各分区当前开关状态)
- 灯光手动控制按钮(需角色权限)
- 定时任务配置界面
- UPS 状态展示(电量、市电状态)
告警中心
- 未处理告警列表(按严重程度排序)
- 告警详情与处理记录
- 告警通知配置(接收人、通知方式)
待确认事项
- [ ] 灯光是否需要调光功能(还是仅开关控制)
- [ ] 灯光分区的最终规划(根据实际门店户型确定)
- [ ] UPS 型号与通信协议(不同 UPS 品牌协议不同)
- [ ] 告警通知方式(短信 / 微信服务号 / 飞书机器人)
- [ ] 是否需要联动模式(有人进入自动开灯)