littlebot
Published on 2025-04-10 / 4 Visits
0

【源码】基于Arduino框架的NeoPixel灯光动画控制系统

项目简介

本项目基于Arduino框架,借助NodeMCU控制NeoPixel LED灯,实现多种灯光动画效果。系统通过WiFi连接网络,利用MQTT协议与服务器通信,能接收和响应指令来控制LED灯的颜色和模式,可应用于万圣节服装、圣诞树、厕所灯光显示等多种场景。

项目的主要特性和功能

  1. 多动画并行:可在不同数据总线上同时运行多个动画。
  2. 场景适配性强:适用于多种NeoPixel设备,如灯带、灯环、灯条等,可用于多种场景。
  3. WiFi连接:通过WiFi模块连接到WiFi网络。
  4. MQTT通信:使用MQTT协议与服务器通信,接收和响应服务器消息。
  5. 软件更新:支持HTTP更新机制进行固件更新,也可通过MQTT进行OTA更新。
  6. 节能设计:在适当时间间隔且设备无活动时,可进入深度睡眠模式节省电能。

安装使用步骤

硬件连接

  1. 将NeoPixel连接到D7引脚。
  2. 把ESP8266连接到电脑,使用Arduino IDE进行编程和烧录。
  3. 将NeoPixel LED灯连接到ESP8266的GPIO引脚。

软件配置

  1. 调整NUMPIXELS_1为LED灯带或灯链上的LED数量。
  2. main.cpp文件中,配置WiFi网络参数、MQTT服务器地址和端口。
  3. Adafruit_NeoPixel库中设置LED灯的控制引脚。

编译上传

复制配置文件

bash $ cp ./platformio-dist.ini platformio.ini

手动编译上传

bash $ pio run -e nodemcuv2 -t upload && pio serialports monitor -b 115200

构建OTA更新二进制文件

bash $ pio run -e nodemcuv2 && cp .pioenvs/nodemcuv2/firmware.bin bin/nodemcu/toilet-light/

运行测试

  1. 上电后,ESP8266会自动连接到WiFi网络,并通过MQTT协议接收和响应来自服务器的消息。
  2. 通过发送特定的MQTT消息来控制LED灯的状态。

OTA更新

向MQTT主题awsiot_to_localgateway_toilet发送如下JSON消息来更新NodeMCU:

厕所灯光

json { "chipId": 1548096, "doUpdate": 1 }

圣诞树

json { "chipId": 14618441, "doUpdate": 1 } 发送后检查localgateway_to_awsiot以确认设备是否恢复正常。

确保环境已安装必要的库和配置,如Adafruit_NeoPixelArduinoOTATeliaWifiClient

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】