回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

ESP32-C5:可操控的节日彩灯 简单

头像 地下铁 2025.10.08 9 0

一、项目背景

每逢节日,很多家庭都会用彩灯来烘托节日气氛。但大多数产品只能按内置顺序循环,看久了难免审美疲劳。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

四、电路连接

 

5.jpg

五、软件实现

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连接处理的,都是大同小异,这里就不赘述了。

回调处理,根据收到的命令匹配对应的灯效

1.jpg

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

2.jpg
4.jpg

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

3.jpg

 

六、制作过程

组装 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 让协议极简,却拥有远程、实时、低功耗的优势。如果你也厌倦了固定模式的彩串灯,不妨给今年的节日来一点"代码的浪漫"吧!

评论

user-avatar