使用ESP8266通过blinker控制WS2812灯带

您所在的位置:网站首页 用esp8266控制5v继电器 使用ESP8266通过blinker控制WS2812灯带

使用ESP8266通过blinker控制WS2812灯带

2024-07-08 23:47| 来源: 网络整理| 查看: 265

硬件及硬件接线图

硬件列表:

ESP8266 NodeMCUWS2812B 灯带(60颗)杜邦线(母对母)3条

接线图

Arduino 配置

安装 ESP8266 扩展库不在这里说明了,可查看我另一篇博客 使用ESP8266开发板刷入Deauther用于WiFi攻击测试 。

1. 安装 blinker Arduino 库点击 下载blinker Arduino库 ;将下载好的blinker库解压到 我的电脑 > 文档 > Arduino > libraries 文件夹中;

2. 安装 Adafruit_NeoPixel 库

Github地址:Adafruit_NeoPixel

方法一(在线安装)

打开 Arduino, 项目 -> 加载库 -> 管理库,在搜索框中输入 “Neopixel strip”,单击 安装 即可;

方法二(离线安装)访问 Adafruit_NeoPixel Releases page;下载最新版本;解压文件;打开 Arduino, 项目 > 加载库 > 添加.ZIP库...;

安装成功后在 Arduino 可看到已加载 Adafruit NeoPixel 库。

在App中添加设备,获取 Secret Key进入App,点击右上角的 “+“ 号,然后选择 添加设备;点击选择 Arduino > WiFi接入;选择要接入的服务商;复制申请到的 Secret Key;

编写 Arduino 程序编码

打开 Arduino ,使用以下代码,代码来自:blinkerWS2812.ino ;

修改源码中 auth[] 的值为在App中获取到的 Secret Key ,其他配置可根据自身条件设置。

#define BLINKER_PRINT Serial #define BLINKER_MIOT_LIGHT #define BLINKER_WIFI #include #include // key,在点灯 App 中获取 char auth[] = "xxxxxxxxx"; // DIN PIN (GPIO15, D8) #define PIN 15 // 灯带 LED 数量 #define NUMPIXELS 60 Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); // 新建组件对象 BlinkerRGB RGB1("RGB"); // RGB和亮度 int LED_R=0,LED_G=0,LED_B=0,LED_Bright=180; bool WIFI_Status = true; void smartConfig()//配网函数 { WiFi.mode(WIFI_STA); Serial.println("\r\nWait for Smartconfig..."); // 等待手机端发出的用户名与密码 WiFi.beginSmartConfig(); while (1) { Serial.print("."); digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); // 退出等待 if (WiFi.smartConfigDone()) { Serial.println("SmartConfig Success"); Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str()); Serial.printf("PSW:%s\r\n", WiFi.psk().c_str()); break; } } } void WIFI_Set()// { //Serial.println("\r\n正在连接"); int count = 0; while(WiFi.status()!=WL_CONNECTED) { if(WIFI_Status) { Serial.print("."); digitalWrite(LED_BUILTIN, HIGH); delay(500); digitalWrite(LED_BUILTIN, LOW); delay(500); count++; if(count>=5)//5s { WIFI_Status = false; Serial.println("WiFi连接失败,请用手机进行配网"); } } else { // 微信智能配网 smartConfig(); } } /* Serial.println("连接成功"); Serial.print("IP:"); Serial.println(WiFi.localIP());*/ } void SET_RGB(int R,int G,int B,int bright) { // 把灯条变色 for (uint16_t i = 0; i < NUMPIXELS; i++) { pixels.setPixelColor(i,R,G,B); } // 设置亮度 pixels.setBrightness(bright); // 送出显示 pixels.show(); } //APP RGB颜色设置回调 void rgb1_callback(uint8_t r_value, uint8_t g_value, uint8_t b_value, uint8_t bright_value) { //digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN)); BLINKER_LOG("R value: ", r_value); BLINKER_LOG("G value: ", g_value); BLINKER_LOG("B value: ", b_value); BLINKER_LOG("Rrightness value: ", bright_value); LED_Bright = bright_value; SET_RGB(r_value,g_value,b_value,LED_Bright); } void setup() { // 初始化串口 Serial.begin(115200); // WS2812初始化 pixels.begin(); pixels.show(); pinMode(LED_BUILTIN, OUTPUT); #if defined(BLINKER_PRINT) BLINKER_DEBUG.stream(BLINKER_PRINT); #endif WIFI_Set(); // 初始化blinker Blinker.begin(auth, WiFi.SSID().c_str(), WiFi.psk().c_str()); // 注册调节颜色的回调函数 RGB1.attach(rgb1_callback); } void loop() { Blinker.run(); }

源码中只实现单色显示,更多颜色或酷炫的效果显示请自己修改源码实现。

上传至 ESP8266

修改源码相关配置后,单击 Arduino 的 上传 按钮上传代码至 ESP8266;

上传成功

App 配置连接连接设备

打开点灯 App,点击 侧边栏按钮 -> 开发者 -> 开发工具 -> EspTouch/SmartConfig,输入 WiFi 密码后单击 开始配置;

配置成功

设备配置返回 点灯 blinker App 主页,可看到设备已在线,点击设备进入配置页面;

点击设备 编辑 按钮;

点击编辑按钮后会进入组件编辑状态,点击底部组件列表的 颜色 组件,添加到界面中,然后点击界面中新增的 颜色 组件进入组件编辑界面,将 数据键名 改为 RGB,点击 保存;

编辑完成后,点击右上角的 锁定 按钮完成编辑,然后就可以控制灯带了。

参考文档

使用ESP8266接入“天猫精灵”控制七彩灯(WS2812)的颜色/亮度-开源

点灯科技-使用esp8266 & WiFi接入



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3