外观
灯光与 LED
用 ESP32 控制可单独寻址的 LED 灯带是入门门槛最低、成就感最强的玩法之一:刷上 WLED,手机就能控制上百种灯效。适合想做电视背光、书架氛围灯、装饰灯牌的人。
这是什么玩法
可寻址 LED(也叫「像素灯」)每颗灯珠内置驱动芯片,只用一根数据线就能让每颗灯显示不同颜色。ESP32 通过 RMT 或 I2S 外设产生精确时序,驱动数百甚至上千颗灯珠。
| 灯珠 | 特点 |
|---|---|
| WS2812B | 最常见,5V,单数据线,价格便宜 |
| SK6812 | 与 WS2812 协议类似,有 RGBW 版本,带独立白光 |
| WS2815 | 12V 版本,多一条备份数据线,长灯带压降较小 |
| APA102 / SK9822 | 时钟加数据两线,刷新率高,不受严格时序限制 |
典型硬件
- 控制板:任意 ESP32 开发板,例如 ESP32-DevKitC、ESP32-S3-Zero、XIAO ESP32-S3。WLED 官方对 ESP32 的支持比 ESP8266 更好,并支持更多输出通道,具体机型见项目文档。
- 灯带或灯环、灯矩阵。
- 电源:5V 灯带用 5V 直流电源,按总功率选择。
- 电平转换器:如 74AHCT125 或 74HCT245,把 3.3V 数据信号提升到 5V。
- 小零件:1000 µF 电容并联在电源两端,数据线串联约 300 至 500 欧姆电阻。
也有成品控制器,例如 Adafruit 的 MatrixPortal S3,用来驱动 HUB75 LED 点阵屏。
软件
- WLED:最流行的开源方案,网页和手机 App 控制,支持上百种灯效、预设、定时器、与 HA 联动、Art-Net / E1.31 / DDP 等灯光控制协议,以及音频响应(需麦克风)。
- ESPHome:通过
light组件驱动灯带,适合想把灯完全纳入 HA 配置、不需要灯效库的人。 - 也可以用 Arduino 的 FastLED、NeoPixelBus 库自己写动画,见 Arduino-ESP32。
入门路径
- 买一条 30 颗左右的 5V WS2812B 灯带,先做小规模测试。
- 到 WLED 官网的安装页,用浏览器通过 USB 直接刷入(Web 刷机基于 ESP Web Tools)。
- 首次启动连接 WLED 的热点,输入家里 Wi-Fi。
- 在「LED 设置」里设置数据引脚、灯珠数量和类型,保存后测试颜色顺序。
- 加入 HA:WLED 是 HA 官方集成之一,通常会被自动发现。
进阶方向
- 多段灯带和多输出:用不同引脚驱动不同区域,配合分段控制。
- 电视背光:配合 Hyperion、HyperHDR 或 Ambilight 类软件,通过 DDP / UDP 实时推送颜色。
- 音频响应:接 I2S 麦克风(如 INMP441)做音乐律动,WLED 的声音反应版本在部分芯片上可用。
- LED 矩阵:16x16 的柔性矩阵、HUB75 大屏,能显示滚动文字和动画。
- 自制灯具:3D 打印灯罩加灯环,做桌面氛围灯或装饰灯。
注意事项
电源与接线可能损坏硬件
影响范围:接错电源、缺少电平转换或线径不足,可能烧毁灯珠、ESP32 开发板,严重时导致电线发热甚至起火。
前置条件:
- 先算功率。单颗 WS2812B 全白最大电流约 60 mA(常见估算值,以所买灯珠规格书为准),300 颗全白可能达 18 A,实际使用要限制亮度。WLED 里可设置最大电流限制。
- 先接地再接信号:灯带电源的 GND 必须与 ESP32 的 GND 相连,且最好先接 GND 再接数据线。
- 长灯带要分段「电源注入」,在灯带两端甚至中间补接 5V 和 GND,避免末端发红发暗。
- 灯带通电前先接好电容,避免上电瞬间冲击烧第一颗灯珠。
- 不要用 ESP32 开发板的 5V 引脚给整条灯带供电,USB 口和板载稳压器带不动。
- 3.3V 数据信号驱动 5V 灯珠在短距离里常常「能亮」,但不稳定,建议加电平转换。
回退:灯珠烧毁后只能剪掉损坏段重新焊接;ESP32 烧坏则更换开发板。固件层面刷错 WLED 版本,重新用串口刷写即可。
- 市电适配器:购买有认证的电源,不要使用劣质开关电源。
- 长时间满亮度:发热会缩短灯珠寿命,装在铝槽或导热载体上有助于散热。
- 光敏性癫痫风险:高频闪烁灯效在公共场合使用要留意。