ESP8266 Wi-Fi 控制 NeoPixel 火焰灯:安卓 App 无线调节特效
项目简介
基于 ESP8266(Witty Cloud 开发板)与 WS2812B NeoPixel 灯带,打造一款可通过 Wi-Fi 无线控制的仿真火焰灯。项目结合 FastLED 库的 Fire2012 算法,在 6 条灯带(共 180 颗 LED)上呈现逼真火焰动画,并通过 SPIFFS 文件系统托管 Web 控制界面,同时提供 PhoneGap 打包的安卓 App,实现亮度、帧率、冷却/火花参数及四色调色板的实时调节。
硬件架构
- 主控:ElectroPeak ESP8266 Witty Cloud Board(内置 4MB Flash,支持 3MB SPIFFS)
- 灯带:60 LED/m WS2812B 灯带 ×3 米,剪为 6 段各 50 cm(30 LED/段),等间距环绕 PVC 管
- 电平转换:逻辑电平转换模块(ESP8266 3.3V → LED 5V 数据线)
- 结构件:60 cm × 2 英寸 PVC 管、描纸(漫射)、玻璃圆筒(花瓶)
- 供电:5V ≥9A 开关电源(180 LED 全亮约 10.8A,留足余量)
- 辅助:Arduino Nano(仅用作 USB-UART 下载器)、跳线、热熔胶、烙铁
火焰算法与参数
采用 Mark Kriegsman 的 Fire2012 算法,核心四步:
1. 冷却:每帧随机降低每像素“热度”;
2. 扩散:热度向上漂移并平均;
3. 火花:底部随机点燃高热度火花(SPARKING 概率);
4. 映色:热度值 0–255 映射至 0–240 调色板索引,输出 RGB。
关键参数可运行时调整:
• COOLING(默认 90):冷却速度,值越大火焰越“干”
• SPARKING(默认 150):火花频率,值越大火焰越“狂”
• FPS(默认 100):刷新率
• BRIGHTNESS(默认 100):整体亮度
• 4 色调色板(默认:黑→红→橙→白)定义火焰色阶
Web 服务器与 SPIFFS 部署
ESP8266 启动为 AP 模式(SSID: "ElectroPeak's Flame",可设密码),默认 IP 192.168.4.1。内置 HTTP 处理器响应 GET 请求:
• /cs0–/cs3:设置四色调色板停靠点 RGB 值
• /conf?brightness=xxx&fps=xxx&sparking=xxx&cooling=xxx:修改运行参数
静态资源(HTML/CSS/JS 控制界面)存放于 SPIFFS,需用 Arduino ESP8266FS 插件上传 data 文件夹内容。上传速度建议 921600 波特率。
安卓 App
基于 PhoneGap(HTML/CSS/JS)开发,提供可视化滑块与拾色器,发送上述 GET 请求控制灯效。iOS 用户可直接访问 Web 界面。APK 与源码均提供下载。
制作步骤要点
- 玻璃筒内径 12 cm,高 60 cm;PVC 管切 59 cm 置入筒内
- 6 段灯带等角粘贴于 PVC 管,数据线并联,电源分正负两路并联减压降
- 描纸贴玻璃筒内壁或外壁均可漫射
- 泡沫圆环定心固定 PVC 管于筒体中心
- 电平转换器连接 ESP8266 GPIO5 到灯带 DIN,共地
- 上传固件 → 上传 SPIFFS 数据 → 接电 → 手机连 AP → 打开 App 或浏览器调节
代码与资源
完整固件代码(含 FastLED、EEPROM 持久化、WebServer、SPIFFS 服务)与 data 文件夹打包下载。GitHub 链接提供最新版本。
制造工艺
- 树莓派 + Arduino UNO + 三星 SAMI 极速构建火灾检测系统
- 树莓派低成本婴儿啼哭检测器 DIY 指南:Prota OS + Philips Hue + Volumio
- 智能人数统计器:激光+LDR 检测,安卓 App 蓝牙远程控制
- DFRobot 电容指纹传感器 (ID809) 接入 Arduino/ESP8266 完整教程
- Arduino + Android 蓝牙控制 Roomba Create 2 扫地机器人完整指南
- 低成本便携式红外测温计:Arduino Nano + MLX90614 + Android OTG
- Axiom Equipment Group 与社区赞助商捐赠 11,000 美元支持 Oxbow 消防局
- 利用物联网实现山火早期检测与预防
- 革新消防:IoT 如何提升安全、响应与救援
- iOS与Android:哪个平台提供更优的企业级应用安全性?
- 火灾损害与预防:专家策略守护生命财产
- Python strip() 方法完全指南:去除首尾空白与自定义字符实战