设计制作一个使用ESP32-S3驱动的智能WiFi控制LED灯
该项目在Bambu Lab P1S打印机上添加了一条外部LED灯带,并通过本地网络的MQTT协议与内部腔室灯光同步。
目标是在不修改固件或添加手动开关的情况下,保持与打印机原生灯光控制完全一致的同时,提高打印机内部的可见性。
引言
Bambu P1S 内置的灯光功能正常,但亮度较弱,尤其在长时间打印、监控或视频录制时表现不佳。
您有两种方式可以为打印机添加LED灯带:
•加装一条电流小于0.3安培的LED灯带,即可替换原有的车载LED灯连接,通过打印机按钮控制灯光的开关。
•如果LED灯带的电流超过0.3安培,请使用外部电源,并不要通过打印机来控制这些LED。
该项目无需使用常亮的LED灯带或独立开关,也无法通过打印机控制灯光的开关,而是监听打印机自身的MQTT消息,实时反映内部腔室灯光的状态。
当房间灯亮起时,外部LED灯带也会随之点亮。当灯熄灭时,外部灯光同样会关闭,并通过平滑的渐变过渡实现淡入淡出效果。
所有操作均在本地进行。
注意:如果发现灯光无法连接到打印机(打开和关闭灯光后,LED指示灯与设置不匹配),请检查您是否对打印机建立了超过三分之二的MQTT连接。这是Bambu打印机(至少P1系列)已知的缺陷或限制。当仅在局域网模式和/或开发者模式下使用打印机时,我曾观察到此现象。
项目仓库在 GitHub 上,您可以在那里找到所有必要的文件和说明。
为什么选择这个项目
•提高相机中打印内容的内部可见性
•提升延时摄影中图像的内部可见性
•保持照明行为与打印机一致
•不修改固件
•无外部连接
•无手动控制
•可完全反向安装
工作原理
•ESP32 连接到与打印机相同的本地网络
•它订阅了打印机发布的MQTT主题
•打印机报告其内部状态,包括腔室灯。
当腔室灯状态发生变化时:
•ON → 外部LED渐亮
•关闭 → 外部LED逐渐熄灭
•当腔室灯状态变化时:ON → 外部LED渐亮;OFF → 外部LED渐灭
•MOSFET 安全地切换 LED 电源
所需硬件
电子产品
•ESP32 板子(本项目使用的是 Seeed XIAO ESP32-S3)
•IRLZ44N MOSFET
•10k电阻
•220欧姆电阻
•5毫米LED(颜色不重要)
•2个USB-A接口PCB安装
电源
•通过USB供电
•LED电源通过ESP32的5V引脚进行供电,这是设计上的要求。
•ESP32 与 LED 灯带的共同点
3D打印零件
定制的3D打印外壳用于:
•牢牢固定PCB
•保护电子设备
•提供电缆应力缓解
•将组件安装在打印机背面
电路图与PCB
该原理图包括:
•ESP32 GPIO 与 MOSFET 阀门的连接
•门控下拉电阻
•LED灯带用MOSFET低侧开关
•共同的地面参考
•LED状态输出
原理图文件包含在仓库的PCB目录中。
PCB
一个专用的PCB专为该项目设计。
这是我第三次尝试制作PCB,所以请耐心等待。我知道有很多地方可以做得更好、更优化。
你可以直接从PCBWay购买。
顺便说一下:我从它那里没得到任何东西,但他们赞助了它,我很感激。
该项目不需要PCB。以下是Fritzing中的电路图
这是第一个原型:
组装与3D打印外壳
组装时,只需将各部件放在正确位置即可——操作简单,所有孔洞都已标识清楚!
先别管LED了——我稍后再解释。
在焊接LED之前,先测量腿的长度,这样当将所有部件放入3D打印外壳并盖上盖子时,LED就能稍微高于盖子。
可快速拆卸,轻松取下。
现在,放置LID。
重要提示:在将PCB组装到3D打印外壳时,请检查USB-A PCB安装位置附近的标签。
标有“POWER”的一侧是电源符号所在的一侧,标有“To LEDS”的一侧是LED符号所在的一侧。
连接电源时,请使用电源符号侧;连接LED时,请使用LED符号侧。
将磁性条粘在机箱上,以固定到打印机。
代码
代码几乎没有需要修改的地方,只需要一些配置调整。
你需要知道:
•你的Wi-Fi SSID和密码(当然)
•您的打印机IP地址
•您的打印机 ACCESS_CODE(您可以在打印机菜单中查看)
•您的打印机序列号(您也可以在打印机菜单中查看此信息)
首先,您需要添加您的Wi-Fi凭据
接下来需要的信息来自您的打印机。
PRINTER_IP 是您网络中打印机的地址
你从打印机获取的访问码
PRINTER_SERIAL 是您的打印机序列号,您也可以从打印机的菜单中获取。
安装 Arduino IDE 需要以下库
这是我的打印机上的内容。我已将其连接到我的Panda Branch。
本文编译自hackster.io





