总结
我需要一盏灯,既不会直射我的眼睛或投影屏幕,又能为我的零食提供照明。这款灯高15厘米,采用RGB+CCD LED灯带,通过Wi-Fi/MQTT连接到我的智能家居系统,使用4节18650型锂离子电池供电。
通过发布一条内容类似于"0,0,0,0,0"的消息来更改灯光颜色。颜色选项包括红、绿、蓝、暖白和冷白。数值范围为0到255。如果R、G、B任一数值大于0,暖白和冷白灯光将被重置为0,以避免过流情况和显示异常颜色。
所有部件都应该易于打印,且几乎无需支撑结构。不过建议使用 PETG 材料。若使用 PLA 材料,制作出的灯具可能会过于脆弱。
物料清单:
- 将每个部分各打印一份
- 4条10厘米长的LED灯带https://www.led-konzept.de/RGBCCT-LED-Streifen-24V-197W-m-RGB-CCT
- 4条10厘米长的铝型材https://www.led-konzept.de/LED-Alu-Profil-FLEX-mini
- 4节18650电池座https://www.amazon.de/gp/product/B075TZF7NN/
- 1个XT60插头(公头)
- 1个JST-XH平衡插头(母头),2S规格(3针)
- 1个24V升压转换器https://www.amazon.de/gp/product/B079H3YD8V/
- 1个3.3V降压转换器https://www.amazon.de/Pololu-Step-Down-Regulator-Efficiency-2842/dp/B07KHPQLZT/
- 1块 ESP8266 ESP-12 裸板https://www.amazon.de/TECNOIOT-ESP-12F-ESP8266-Upgrade-Expansion/dp/B07WR96QDG/
- 5个 IRLIZ 44N 型场效应管
- 用于场效应管栅极的 5 个 10千欧电阻器
- 用于基础版ESP的5个1千欧姆电阻器
- 用于裸板 ESP 的 1x 100nF 陶瓷电容器
- 1 个用于电池测量用的 22kΩ 电阻器
- 1个用于电池测量的2.2千欧电阻器
- 4个M3x16规格的螺丝
- 4个M3螺母
- 用于LED灯的薄绝缘电线(比如0.1毫米的聚氨酯涂层变压器电线/漆包线)
- 剩余的布线部分应使用普通绝缘电线。
- 用于将零件固定在一起的普通胶水,比如插头之类的部件
...以及用于为ESP进行编程的USB串行接口。
印后加工
机械类
打印完成后,将铝型材粘贴到"LED灯架"上,再将M3螺母插入"灯座盖"底部。将电线焊接到XT60和JST-XH连接器上(或购买带有连接器的电线或延长线,并将其裁剪至合适长度),然后将其粘贴到"灯座"的插座中。
将焊锡丝焊接到其中一条10厘米长的LED灯带的一端,然后将其穿过端口引入手臂内部。用胶水将LED灯带固定到位,使电线延伸至手臂内部。接着用胶水将另外三条LED灯带固定到位。最后用六根电线将它们连接到每个角落。
注意不要夹到漆包线,轻轻将“Arm”部件插入“LED Halter”和“Lampenfuß Deckel”部件中即可。
接下来就是最简单的部分了:焊接电子元件,这样就大功告成了。
电气
没有,我没有电路图。就是一个“基础的ESP8266裸板布线”方案,外加5个带串联电阻的MOS管和两个开关稳压器。如果这对你来说太难了,或许你可以先选择一个更简单的项目来尝试。
正如大家从图片中所见,我进行了自由式蛇形焊接。虽然焊接效果不算完美,但在没有PCB板的情况下,它依然能正常工作,并且完美适配这款灯具的狭窄空间。
关于各部件如何连接的说明:
将5个1千欧姆电阻器连接到ESP8266上,实现基本功能(互联网上有大量相关教程)。将100纳法拉电容器连接到ESP8266的Vcc和GND之间,用于基本的浪涌保护。将电池座以2S2P配置连接,分别连接XT60和JST-XH接口。将两个稳压器分别连接到2S电池组的正负极上。
3.3V稳压器为ESP供电,升压电路调整至24V并为LED供电(将Vout+连接至LED灯带上的+24V)。两个稳压器与电池及ESP共用一个公共接地端。
场效应管的栅极连接了一个10千欧的串联电阻,该电阻与ESP的第4、5、12、13、14引脚相连。这些引脚将用于PWM控制。源极接至公共地线,漏极则分别连接至各个LED通道(剩余的漆包线)。
2.2千欧和22千欧的电阻器组成一个分压器,将2S电池组的电压降至ESP的ADC能够测量到的范围之内。
软件(*.ino 文件)
在 Arduino IDE 中,添加用于 MQTT 的 PubSubClient 库以及 ESP8266 软件包( )。https://arduino.esp8266.com/stable/package_esp8266com_index.json)。进行刷机时,请选择“通用ESP8266模块”,刷机模式设为“DIO”,重置方法选择“无DTR”。
您可能需要更改所使用的主题名称(我的主题以 "smarthome/" 开头),以便与您的配置相匹配。订阅的主题(用于控制灯具的)位于 "loop()" 函数中。发布的主题(用于报告电池状态的)位于 "timer60sFunc()" 函数中。
您需要在代码开头更改 Wi-Fi 和 MQTT 代理的设置,使其与您的网络环境相匹配。
タグ
モデルソース
