title: 桌面灯
date: 2025-09-23T10:54:54+08:00
lastmod: 2026-05-31T17:03:00+08:00桌面灯(IoLight)
基于 CC2530 的 Zigbee 灯控设备,通过 IO 模拟轻触开关控制外部酷比灯。
硬件特性
-
主控:CC2530
-
供电:DC 5V(Router 节点,常供电)
-
IO 输出:4 路 GPIO 通过三极管模拟轻触开关(100ms 脉冲)
- P1_6 -- 电源开关(POWER)
- P0_2 -- 调亮(UP)
- P1_7 -- 调暗(DOWN)
- P0_3 -- 色温切换(MODE)
-
无按键、无 LED:纯远程控制
功能
-
上电自动组网:Router 节点启动后自动进行 Network Formation + Steering
-
亮度映射:ZCL CurrentLevel(1-254)线性映射到 0-12 级(共 13 级)
- level=1 → step 0(最暗),level=254 → step 12(最亮)
- 单级步进发送一次 UP/DOWN 脉冲
-
开关控制:接收 OnOff 命令,发送 POWER 脉冲模拟开关
亮度与开关交互规则
| 灯状态 | 命令 | 行为 |
|---|---|---|
| OFF | ON 命令 | 开灯(POWER 脉冲),亮度保持上次值,报告状态 |
| OFF | MoveToLevel(level>0, withOnOff) | 先开灯,再调到目标亮度,报告状态 |
| OFF | MoveToLevel(level=0, withOnOff) | 忽略(保持关灯),报告状态 |
| OFF | MoveToLevel(无 withOnOff) | 忽略,报告状态 |
| ON | OFF 命令 | 关灯,报告状态 |
| ON | MoveToLevel(level=0) | 关灯,报告状态 |
| ON | MoveToLevel(level>0) | 调到目标亮度,报告状态 |
| ON | Move/Step 命令 | 按方向调节亮度,报告状态 |
| ON | Step DOWN(会低于 1) | 钳制到亮度 1(不关灯,符合 ZCL 规范) |
| OFF | 色温命令 | 忽略,报告状态 |
| ON | 色温命令 | 切换色温模式,报告状态 |
-
脉冲调度:所有 IO 脉冲进入 FIFO 队列,逐个执行
100ms HIGH + 150ms 间隔。新到达的 ZCL 命令会先清空旧的、未执行的 UP/DOWN 脉冲。 -
状态同步:OnOff / CurrentLevel 标记为 ACCESS_REPORTABLE;入网 15 秒后自动 JOIN_REPORT
-
色温切换:通过 Basic cluster 制造商特定属性
0xF001控制- 0 = 暖光(Warm),1 = 冷光(Cool),2 = 冷暖全开(Both)
-
状态持久化:OnOff 状态、CurrentLevel、ColorTempMode 均保存到 NV
ZCL Clusters
| Cluster | 属性 |
|---|---|
| Basic | 制造商名、型号、版本、构建信息、色温模式配置 |
| Identify | IdentifyTime |
| On/Off | OnOff |
| Level Control | CurrentLevel、RemainingTime |
zigbee2mqtt 暴露
-
state-- 开关状态(ON/OFF) -
brightness-- 亮度(0-254),内部映射为 0-12 级 -
color_temp_mode-- 色温模式(warm/cool/both)
硬件图纸
PCB_PCB_iot_board_div_led_2025-09-23.pdf
SCH_iot_board_div_led_2025-09-23.pdf
固件下载
IoLight.hex(Router 节点,Flash 236.0 KB / RAM 7.3 KB)