16浏览
查看: 16|回复: 1

[ESP8266/ESP32] Firebeetle 2 ESP32-C5 之 火车上的霓虹灯

[复制链接]
本帖最后由 HonestQiao 于 2025-10-23 20:49 编辑

这几天出差,在火车上的时候,刷刷手机,看看Kindle,还是有些无趣。最后还是掏出了包里的Firebeetle 2 ESP32-C5,打开了而电脑,又找到了一个WS2812B灯环,做了一个火车上的霓虹灯。


Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图1Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图19

下面分享一下制作做的步骤。

一、硬件了解
Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图2

前边是 Firebeetle 2 ESP32-C5开发板 与扩展板,后边是WS2812B灯环。
Firebeetle 2 ESP32-C5就不多说了,单说下这个WS2812B灯环。

这个WS2812B灯环,是24颗灯珠的,每一颗都可以单独控制RGB三种颜色显示,共256*256*256种,约16万种颜色。
那么呢,这个灯环有24颗,(256*256*256)^24,一共有10^173种显示模式,能够让创客们体验到前所未有的显示快感!

另外,我又详细查了一下,已知宇宙中,恒星的数量,少于1*10^24颗。
所以呢,这个灯环所能带来的探索乐趣,是无穷无尽的,哪怕宇宙毁灭,也探索不到尽头。

为了方便控制这个灯环,我在灯环背面,粘接+焊接了一个ESP32-C3小板子。
这次Firebeetle 2 ESP32-C5通过ESP-Now,来与ESP32-C3通信,从而控制WS2812B灯环。

二、程序逻辑
我设计的逻辑处理流程如下:
Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图3

两者通信使用的是ESP-Now,参考了Arduino中ESP32下的ESP-Now 广播的例子:
Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图4

因为是在火车上,所以我没有做复杂的逻辑。
基本逻辑就是,Firebeetle 2 ESP32-C5上的按键按一下,ESP32-C3控制的WS2812B灯环的彩虹渐变色就变换一下,如果按键双击,那么就快速变化一下。

三、扩展库
这次使用的开发环境是Arduino IDE,具体环境可参考:ESP32C5内测版(ECO1,v0.1)常用开发环境和工具的特殊处理方法 DF创客社区

在 Firebeetle 2 ESP32-C5 上运行的是Master,因为要检测按键,所以我使用到了OneButton扩展库:
Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图5

在ESP32-C3上运行的是Slave,因为要控制WS2812B灯环,所以我使用FastLED扩展库:
Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图6

四、程序代码
Master代码如下:
Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图9Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图10

其中除了ESP-Now原有的通信逻辑外,其他用到核心调用如下:
1. OneButton对象和注册按键调用
Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图11
Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图12
2. 按键处理
Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图13
Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图14

在按键处理中,使用了下面的调用来通过ESP-Now发送消息:
broadcast_peer.send_message((uint8_t *)data, sizeof(data))


Slave的代码如下:
Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图7Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图8

其中除了ESP-Now原有的通信逻辑外,其他用到核心调用如下:
1. 颜色定义
Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图15

2. LED对象初始化
Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图16

3. 收到消息后,提取数值,并控制WS2812B灯环显示:
Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图17

4. 控制WS2812B灯环逐渐熄灭:
Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图18

五、运行效果
代码编写好后,分别烧录到Firebeetle 2 ESP32-C5和ESP32-C3。

Firebeetle 2 ESP32-C5 配置如下:
Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图20
烧录运行后,串口日志输出如下:
Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图22

ESP32-C3配置如下:
Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图21
烧录运行后,串口日志输出如下:
Firebeetle 2 ESP32-C5 之 火车上的霓虹灯图23

两端都运行后,在Firebeetle 2 ESP32-C5按键(单击或者双击),在ESP32-C3上就会收到信息,并控制WS2812B灯环。


实际的运行效果如下:
1. 基本测试:


2. 与飞驰的列车光影同行


3. 霓虹灯效



在飞驰的列车上,点亮我的的霓虹灯,引来乘务人员友好问候,前后座乘客热心注视,还有车厢小朋友好奇的围观,这趟旅程,格外有意思了。

HonestQiao  初级技匠
 楼主|

发表于 昨天 21:00

源代码:
Magic_Master: Firebeetle 2 ESP32-C5
Magic_Slave: ESP32-C3

Firebeetle 2 ESP32-C5 之 火车上的霓虹灯_源代码.zip

4.46 KB, 阅读权限: 10, 下载次数: 0

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail