项目简介
本项目基于Arduino框架,借助NodeMCU控制NeoPixel LED灯,实现多种灯光动画效果。系统通过WiFi连接网络,利用MQTT协议与服务器通信,能接收和响应指令来控制LED灯的颜色和模式,可应用于万圣节服装、圣诞树、厕所灯光显示等多种场景。
项目的主要特性和功能
- 多动画并行:可在不同数据总线上同时运行多个动画。
- 场景适配性强:适用于多种NeoPixel设备,如灯带、灯环、灯条等,可用于多种场景。
- WiFi连接:通过WiFi模块连接到WiFi网络。
- MQTT通信:使用MQTT协议与服务器通信,接收和响应服务器消息。
- 软件更新:支持HTTP更新机制进行固件更新,也可通过MQTT进行OTA更新。
- 节能设计:在适当时间间隔且设备无活动时,可进入深度睡眠模式节省电能。
安装使用步骤
硬件连接
- 将NeoPixel连接到
D7
引脚。 - 把ESP8266连接到电脑,使用Arduino IDE进行编程和烧录。
- 将NeoPixel LED灯连接到ESP8266的GPIO引脚。
软件配置
- 调整
NUMPIXELS_1
为LED灯带或灯链上的LED数量。 - 在
main.cpp
文件中,配置WiFi网络参数、MQTT服务器地址和端口。 - 在
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/
运行测试
- 上电后,ESP8266会自动连接到WiFi网络,并通过MQTT协议接收和响应来自服务器的消息。
- 通过发送特定的MQTT消息来控制LED灯的状态。
OTA更新
向MQTT主题awsiot_to_localgateway_toilet
发送如下JSON消息来更新NodeMCU:
厕所灯光
json
{
"chipId": 1548096,
"doUpdate": 1
}
圣诞树
json
{
"chipId": 14618441,
"doUpdate": 1
}
发送后检查localgateway_to_awsiot
以确认设备是否恢复正常。
确保环境已安装必要的库和配置,如Adafruit_NeoPixel
、ArduinoOTA
和TeliaWifiClient
。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】