使用 NodeMCUv3 ESP8266 等开发板制作音乐可视化灯带

自从入了树莓派之后,从一开始研究802.1X认证等等来模拟老校园网认证到使用PWM信号驱动灯带,对那些开发板是越来越着迷了,本着买不了吃亏,买不了上当的想法,入手了ESP8266这个开发板。

某宝上面12块钱的东西

在我用树莓派折腾了3个月之后,我发现了Github上面有更成品化的开源项目,所以我就不讲我的方法了,具体可以参考 ilwork/audio-reactive-led-strip fork了scottlawsonbc的repo,便于以后修改。

而另一个大手的项目,更加的成品化,推荐使用它的repo LedFx/LedFx 其实这个repo原理是通过UDP协议向刷了 Aircoookie/WLED 固件的开发板发送命令,其支持的灯带型号有:

灯带型号电压备注
WS2812B5v可使用开发板VV脚和G脚直接供电
WS28135v
SK68125vRGBW
APA1025vC/D
WS28015vC/D
LPD88065vC/D
TM181412vRGBW
WS281112v3-LED 部分
WS281512v
GS820812v
Analog/non-addressableany需要额外的供电
引用自 https://github.com/Aircoookie/WLED 并稍加汉化与解释

Aircoookie/WLED 这个固件甚至可以搭配手机APP来实现物联网控制灯带,不过因为国内大部分家庭没有公网IP,需要Frp映射,具体方法可以之后更新。

跑题了,我们第一步先将合适的固件烧录进开发板中,进入 Aircoookie/WLEDReleases 页面,寻找适合自己的固件。具体有:

库名对应兼容的设备
WLED_0.x.x_ESP8266.binNodeMCU, Wemos D1 mini, ESP-12, 所有装载 4MB Flash 的 ESP8266 开发板。 建议刷写此固件。(此固件对应的信号针脚在GPIO2也就是板子上的D4)
WLED_0.x.x_ESP32.bin所有的ESP32开发板 (如果刷写后没有出现WLED-AP这个名称的WIFI,尝试刷写 这个固件 )
WLED_0.x.x_ESP8266_1M_ota.binESP-01 (PCB 黑板), 大部分的 Sonoff 设备, ESP8265, 所有装载1MB Flash的 ESP8266 开发板. 这个库关闭了 (Alexa, Blynk, Hue sync, Infrared) 这几个接口来保证设备正常运行.
WLED_0.x.x_ESP8266_1M_full.binESP-01 (PCB 黑板), 大部分的 Sonoff 设备, ESP8265, 所有装载1MB Flash的 ESP8266 开发板. 这个库相较于上面那个没有关闭接口, 但是固件的无线升级无法工作.
WLED_0.x.x_ESP8266_512k.binESP-01 (PCB 篮板), 旧型号的 Sonoff 设备, 所有装载512KB Flash的 ESP8266 开发板. 关闭了 (Alexa, Blynk, Hue sync, Infrared) 这几个接口, 不支持OTA升级固件. 未来可能不再支持这个固件.
WLED_0.x.x_ESP8266_ledpinY.bin适用于装载 4MB Flash 的 ESP8266 开发板并配合 WS2812B 灯带. LED 灯带的控制针脚已经改变了 (默认是第一个固件对应的 GPIO2 接口). ( GPIOY 不是板子上的印的那个 D1 D2 啊什么的,是GPIO接口,具体参考卖家给你的针脚图 , 别整错了!)
WLED_0.x.x_ESP8266_apa102.bin适用于装载 4MB Flash 的 ESP8266 开发板并配合 APA102 灯带 (GPIO0 作为时序针脚, GPIO2 作为数据针脚).
WLED_0.x.x_ESP8266_ws2801.bin适用于装载 4MB Flash 的 ESP8266 开发板并配合 WS2801 灯带(GPIO0 作为时序针脚, GPIO2 作为数据针脚).
WLED_0.x.x_ESP32_ledpinY.bin适用于 ESP32并配合 WS2812B 灯带 . LED 灯带的控制针脚改了 (默认是 GPIO2 板子上的 D4). GPIO16接口适合 QuinLed-Dig-Uno 板子和 ESP32.
esp32_bootloader.bin这个可不是WLED的固件. 这个是用来给ESP32刷WLED固件引导用的,通常应该在刷写WLED固件之前刷进去.

对于 QuinLED-Dig 的板子呢:

库名兼容的设备
WLED_0.x.x_ESP8266.bin适用于 QuinLED-Dig-Uno 配合 ESP8266, 使用正常的库就行
WLED_0.x.x_ESP32_ledpinY.bin适用于 QuinLED-Dig-Uno 或者 QuinLED-Dig-Quad 配合 ESP32 并使用 LEDpin16 库

至于怎么刷写固件,建议先安装 Python最新版本 ,并安装 esptool pip库 。具体打开CMD窗口,输入:

pip3 install esptool -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

并等待安装结束即可。

下载 ESPTOOL 将 Source Code 下载下来并将上一步下载对应你的固件放在和 esptools.py 相同目录位置,按住SHIFT键按鼠标右键调出 Power Shell窗口,将你的开发板连接到电脑,确认它的COM口号,一般是COM3。

对于ESP8266,输入

esptool.py write_flash 0x0 ./WLED_XXX.bin    //其中WLED_XXX.bin改成你下载的固件名称 

如果想手动设定COM口号,后面加参数 -port COMx (x为COM口号)

对于ESP32:

(你可能需要先刷BootLoader)

esptool.py write_flash 0x10000 ./WLED_XXX.bin   //先别着急刷固件,先看下面

如果你手里的 ESP32 不是那种老版本, 你需要先刷BootLoader. BootLoader对应地址是 0x00000 同时固件地址应该在 0x10000. 如果你之前在板子上面运行过 Arduino sketch , 那么BootLoader也不是必须刷的. 你能在之前我提到过的 WLED Release 找到bootloader。

esptool.py write_flash 0x0 ./esp32_bootloader.bin   //使用此命令刷入Bootloader

当 esptool.py 提示 Connecting..., 一些 ESP32 开发板 需要你按住 boot 按钮 (一般在板子USB口右边) 几秒钟。

  • 如果你遇到了莫名其妙的烧录问题 , 在刷写固件之前先输入以下命令来擦除固件 (注意会彻底重置你的开发板!)
esptool.py erase_flash

在出现 hard resetting via rts pin 字样就表明刷成功了,你不必把板子从你电脑上拔下来,因为我们还需要让板子接入你家的WIFI(注意大部分开发板只支持 2.4G 频率的 WIFI)

用你手机搜名称为 WLED-AP 的wifi,密码是 wled1234 成功连接后打开浏览器,正常会跳转到 4.3.2.1 这个网页,如果没有的话手动进去一下。输入你家wifi的名称与密码,点击save,开发板这边就配置完成了。你可以进路由器看看开发板连接到WIFI没有,没有的话重新连接热点并设置即可。

作为控制端,

Windows可在 https://ledfx.app/download/ 上面下载安装程序并安装,等待检测升级之后一般浏览器会自动打开 127.0.0.1:8888 这个网页,如果没有自动打开,手动去浏览器输入进去一下。因为程序的服务器在国外,更新检测会比较慢一些。耐心等待即可。

进去自己设置即可,一共40几个单词。英文不会自己翻译就行,然后你就开玩吧。

TIPS:进路由器找到你开发板被分配的内网IP地址,浏览器进入可以设置灯带的灯珠数量等等。

You may also like...

1 Response

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注