跳转到内容

灯光与 LED ​

用 ESP32 控制可单独寻址的 LED 灯带是入门门槛最低、成就感最强的玩法之一:刷上 WLED,手机就能控制上百种灯效。适合想做电视背光、书架氛围灯、装饰灯牌的人。

这是什么玩法 ​

可寻址 LED(也叫「像素灯」)每颗灯珠内置驱动芯片,只用一根数据线就能让每颗灯显示不同颜色。ESP32 通过 RMT 或 I2S 外设产生精确时序,驱动数百甚至上千颗灯珠。

灯珠特点
WS2812B最常见,5V,单数据线,价格便宜
SK6812与 WS2812 协议类似,有 RGBW 版本,带独立白光
WS281512V 版本,多一条备份数据线,长灯带压降较小
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。

入门路径 ​

  1. 买一条 30 颗左右的 5V WS2812B 灯带,先做小规模测试。
  2. 到 WLED 官网的安装页,用浏览器通过 USB 直接刷入(Web 刷机基于 ESP Web Tools)。
  3. 首次启动连接 WLED 的热点,输入家里 Wi-Fi。
  4. 在「LED 设置」里设置数据引脚、灯珠数量和类型,保存后测试颜色顺序。
  5. 加入 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 版本,重新用串口刷写即可。

  • 市电适配器:购买有认证的电源,不要使用劣质开关电源。
  • 长时间满亮度:发热会缩短灯珠寿命,装在铝槽或导热载体上有助于散热。
  • 光敏性癫痫风险:高频闪烁灯效在公共场合使用要留意。

参考资料 ​

ESP32 非官方中文调查手册,与乐鑫科技(Espressif Systems)无隶属关系。