zoey不种土豆 发表于 2024-9-19 17:12:37

基于ESP-NOW协议和ESP32-C3 实现无线控制多个LED彩灯

本帖最后由 zoey不种土豆 于 2024-12-10 15:32 编辑

https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144359wbxn2nq7xsnysj7n.png
Rainbow Lights 是基于 ESP32-C3 的 RGB 灯,使用 ESP-NOW 通信协议进行同步。这些灯是用 Fusion360 设计,并用 Ender3 进行3D打印的。这些灯使用了 Adafruits 的 16LED Neopixels 环。

这些灯的基本功能是无线同步并根据程序更改颜色。我为它们编程了两种模式:
**模式 1**:当触摸任一颜色的灯时,所有的灯泡都会发出该颜色的光,持续2秒钟后恢复原始的颜色。
**模式 2**:触摸的颜色会常亮至断电或我们触摸其他灯。
这些灯可以用作儿童游戏灯、情绪灯、照片/摄像、背景补光灯等.....
!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144337tg2e2gg77e7e7q2g.jpg)
!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144337ynqe8v3obet883vb.jpg)

## 清单
5x (https://www.dfrobot.com.cn/goods-3494.html)
5x (https://www.dfrobot.com.cn/goods-3471.html)
5x 触摸式传感器
5x 按钮<br>
5x 锂离子电池
1x 螺丝套件
1x 白色 3D打印耗材(pla线材)
1x 紫色 3D打印耗材(pla线材)
!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144358v0okjcq3zp0qk05j.jpg) !(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144358g4rrczk99o6rchoc.jpg)!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144359ac5a5c5tecrtwv6a.jpg)!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144359smcyhac6izimbxzq.jpg)
!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144359votqf2t3f3zc4z6c.jpg) !(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144359d7jjxom2s6s6eezo.jpg)!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144359namailzj5hx4mimi.jpg) !(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144359p4y2qv104hilekcc.jpg)


## 第 1 步:3D 设计

!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144338dhjb0ez941kbeoe2.gif)
* 在 Autodesk Fusion 360 中设计了这款灯,大家可直接下载 [.stl](https://github.com/MukeshSankhla/Rainbow-Lamps) 文件。
* 你也可以下载(https://a360.co/3CjBNgZ) 文件(单击以在浏览器中查看 3D 设计并下载融合文件)在 Fusion 360 软件中修改我的设计。
## 第 2 步:3D 打印
!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144342m1e31eh0j3gfghho.gif)
* 3D 打印 [.stl](https://github.com/MukeshSankhla/Rainbow-Lamps) 文件

5x 任何颜色的外壳
5x 白色灯丝盖板
5x ESP32-C3 支架(任何颜色)
5x Neopixel 板(任何颜色)

使用 Ultimaker Cura 进行切片。
设置:层高:2mm
打印速度: 100
不支持在 Ender3 上打印

!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144344su23s7nbsstjcc6n.jpg)!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144344r63j06kj7zcqtz2t.jpg)
!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144345il9639iun70imd6l.jpg)!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144345lg05voboyvpvigvp.jpg)
## 第 3 步:焊接
!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144354awkpl5a5qsiyqwlo.gif)!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144356w65tbnpsz2srnruu.png)!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144357jpwzfw79uz6htsf1.jpg)

* 用同一包装中提供的接头将 ESP32-C3 模组和扩展板焊接在一起。
* 参考上图或按引脚名称进行对齐。
## 第 4 步:连接
!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144338ojupjajd17doee1u.png)
* 按照电路图所示连接所有电子元件。
* 开机前请确保所有设备都按图示连接。
## 第 5 步:组装
!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144354xyr1ikkwlb9rid5r.gif)
## 第 6 步:卡扣
!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144354t3l3hguuu1qi5hgh.gif)
* 灯部件的设计使其可以卡入在一起。
* 对齐部件的齿轮并把它们卡扣在一起。
* Neopixel板可以卡扣式安装在盖子上,然后再将盖子卡扣在外壳上。
!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144357m4dyqepbyyfb6ben.jpg)
##第 7 步:Arduino IDE 设置
!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144357eejcneoot9bjb75t.png)
!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144357js07qcczmnz7oazn.png)
!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144357f93r4z9m194rh1e3.png)
* 首先转到 File->Preferences->Additional Boards Manager URL ,并粘贴以下 URL<br>(https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json)
* 然后转到 Tools->Board->Board Manager,搜索 ESP32 并安装。
* 转到 Sketch->Include Library->Manage Libraries,然后搜索 Adafruit NeoPixel 并插入它。
## 第 8 步:编程
* [点击下载代码](https://github.com/MukeshSankhla/Rainbow-Lamps.git)
* 在 Arduino IDE 中打开 .ino 文件。
* 根据设备编号更改
deviceNo = 1/2/3/4/5 。
* 也可以更改 ClearColor = False,以在停留模式下更改颜色。
// 更改此值
int deviceNo = 1; // 设备颜色
bool ClearColor = true;   //是否要清除广播颜色?
!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144357mu2j2b4bc4ue4ozu.png)
!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144358jkezpq46gpnvrklj.png)

!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144358opk75k5idydlnjoy.png)
* 你需要从 Tools->Board->ESP32 Arduino->ESP32C3 Dev Module 选择开发板类型。
* 从 Tools->Port 中选择 com 端口号
* 可以启用或禁用 Tools->USB CDC On Boot 以启用或禁用串行监视器。(除非你在代码中进行更改,不然我更倾向于禁用它)。
* 点击上传,灯将会以你设定的特定颜色(作为设备号)亮起。
## 第 9 步:换色
!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144358rmmqd83khzauqkee.png)
!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144358eqgqsgd9opsqpqtt.png)
* 您可以在代码中更改颜色,我使用了这个简单的颜色选择器并将 RGB 颜色值复制到代码中。
colorWipe(strip.Color(255,0,0),10);// Red(Device 1)colorWipe(strip.Color(255,255,0),10);// Yellow (Device 2)colorWipe(strip.Color(0,255,0),10);// Green (Device 3)colorWipe(strip.Color(255,0,255),10);// Pink (Device 4)colorWipe(strip.Color(0,0,255),10);// Blue (Device 5)
## 第 10 步:充电
* 该模块具有板载充电和过载保护功能,所以可通过 ESP32-C3 Module Type C 直接为电池充电。
##展示
!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144343icraya10tfqacs8t.jpg)

!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144358tz2g4j7gwlhqishk.jpg)
!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144358dblxf5522p2bp3lz.jpg)
!(https://imagemc.dfrobot.com.cn/data/attachment/album/202409/19/144358vygo86kydiixoddg.jpg)
希望你在制作项目时玩得开心,谢谢!
## 代码下载


原作者:Mukesh Sankhla
发布时间:2023.1.4
原文地址:(https://community.dfrobot.com/makelog-313022.html)


页: [1]
查看完整版本: 基于ESP-NOW协议和ESP32-C3 实现无线控制多个LED彩灯