一、项目背景
每逢节日,很多家庭都会用彩灯来烘托节日气氛。但大多数产品只能按内置顺序循环,看久了难免审美疲劳。ESP32-C5 是乐鑫首款支持2.4 G和5 G 双频Wi-Fi 6的芯片,又配套插拔式 IO 底板,无需焊接就能驱动 WS2812 这类数字灯带。最近刚好参加了FireBeetle 2 ESP32-C5 IO扩展套装的试用活动,于是打算做一套"可远程操控、可实时联动"的节日彩灯.
二、功能概述
- 通过 MQTT 一条指令即可切换灯效;
- 支持彩虹、流水、闪电、火焰、萤火虫等多种场景;
- 亮度、速度、颜色可在线微调;
- 同样适用于春节、圣诞、万圣、生日 Party 等主题。
- 本地特效库
- 彩虹流动、流星拖尾、火焰闪烁、流水追逐、萤火虫随机
- MQTT 远程控制
- 主题:esp32/cmnd/effect
- 负载示例:{"effect":"fire","speed":80,"bright":120,"color":"#ff8800"}
三、硬件清单
材料清单
- FireBeetle 2 ESP32-C5 X
- FireBeetle IO 扩展底板 X
- WS2812 RGB 全彩灯带(7灯珠)-可编程氛围灯 X
四、电路连接

五、软件实现
1、依赖库
- WiFi / PubSubClient / ArduinoJson / Adafruit NeoPixel
- 2、MQTT 消息格式
JSON
{
"effect": "rainbow", // 特效名称
"speed": 50, // 刷新间隔 ms
"bright": 100 // 0-255
}
3、特效状态机
loop() 中只跑当前特效函数,收到新命令后进行灯效切换。
4、代码框架
// ========== ==========
/* ---------- 1.用户配置 ---------- */
/* ---------- 2.WiFi 连接 ---------- */
/* ---------- 3.MQTT 连接 ---------- */
/* ---------- 4.回调命令处理 ------ */
/* ---------- 5.灯带特效 ---------- */
/* ---------- setup ------------------ */
/* ---------- loop---------- ----------*/
// ========== ==========
因为wifi和mqtt连接处理的,都是大同小异,这里就不赘述了。
回调处理,根据收到的命令匹配对应的灯效

将不同灯效封装成多个函数,方便调用


在程序的循环部分,设计一个调度处理:

六、制作过程
组装 FireBeetle
将 ESP32-C5 插在 IO 底板上,DIN 对插 D8 口,免焊接完成。
下载程序
Arduino IDE → 开发板选择 "ESP32C5 dev module" → 端口 → 上传。
连接 MQTT 代理
本文使用 EMQX 公共服务器 broker.emqx.io,用mqttx工具配合测试。
实际场景测试
- 彩虹:0.5 s 流动一圈,适合暖场
- 闪电:随机白光爆闪,万圣节氛围拉满
- 火焰:红橙随机闪烁,圣诞壁炉感
- 流水:蓝色追逐,夏季清凉
- 萤火虫:黄绿随机明灭,中秋夜游
演示视频:
七、总结
借助 FireBeetle 2 ESP32-C5 的小体积、Wi-Fi 性能与免焊扩展板,很快就能完成一条"可无线操控、可任意扩展"的数字节日彩灯。MQTT + JSON 让协议极简,却拥有远程、实时、低功耗的优势。如果你也厌倦了固定模式的彩串灯,不妨给今年的节日来一点"代码的浪漫"吧!
评论