esp8266+点灯APP+小爱控制WS2812灯带颜色和亮度-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3472|回复: 2

[分享] esp8266+点灯APP+小爱控制WS2812灯带颜色和亮度

[复制链接]
发表于 2021-8-30 11:06 | 显示全部楼层 |阅读模式
  1. /*
  2. 点灯APP+小爱控制WS2812灯带 20201年8月28日

  3. 功能:
  4. 1、用点灯APP控制灯带颜色
  5. 2、用小爱同学控制灯带颜色
  6. 材料:
  7. ESP8266
  8. WS2812灯带
  9. 220V转5V供电模块

  10. 作者:九洲创客
  11. QQ:353529281
  12. */

  13. #define BLINKER_WIFI  //WIFI库
  14. #define BLINKER_MIOT_LIGHT  //小爱控制颜色库
  15. #define BLINKER_MIOT_MULTI_OUTLET //小爱控制亮度库
  16. #include <Blinker.h>  //点灯库

  17. char auth[] = "XXXXX"; //点灯KEY
  18. char ssid[] = "XXXXX";   //家里WIFI账号
  19. char pswd[] = "XXXXX";  //这里WIFI密码

  20. //WS2812B库
  21. #include <Adafruit_NeoPixel.h>
  22. #ifdef __AVR__
  23.   #include <avr/power.h>
  24. #endif
  25. #define PIN            D4 //控制灯带的IO脚  
  26. #define NUMPIXELS      16 //灯带数量
  27. Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

  28. //点灯APP调色板
  29. #define RGB_1 "col-deng"
  30. BlinkerRGB Deng1(RGB_1);

  31. //申明RGB色和亮度
  32. int8_t colorR, colorG, colorB, colorW;

  33. //设置每一个灯带的颜色和亮度
  34. void pixelShow()
  35. {
  36.     pixels.setBrightness(colorW);
  37.     for(int i = 0; i < NUMPIXELS; i++){
  38.         pixels.setPixelColor(i, colorR, colorG, colorB);
  39.     }
  40.     pixels.show();
  41. }


  42. //小爱控制颜色
  43. void miotColor(int32_t color)
  44. {
  45.     BLINKER_LOG("need set color: ", color);

  46.     colorR = color >> 16 & 0xFF;
  47.     colorG = color >>  8 & 0xFF;
  48.     colorB = color       & 0xFF;

  49.     BLINKER_LOG("colorR: ", colorR, ", colorG: ", colorG, ", colorB: ", colorB);

  50.     pixels.clear();
  51.     pixels.setBrightness(colorW);
  52.     for(int i = 0; i < NUMPIXELS; i++){
  53.         pixels.setPixelColor(i, colorR, colorG, colorB);
  54.     }
  55.   
  56.     pixels.show();

  57.     BlinkerMIOT.color(color);
  58.     BlinkerMIOT.print();
  59. }

  60. //小爱控制亮度
  61. void miotBright(const String & bright)
  62. {
  63.     BLINKER_LOG("need set brightness: ", bright);

  64.     colorW = bright.toInt();

  65.     BLINKER_LOG("now set brightness: ", colorW);
  66.     pixelShow();
  67.     BlinkerMIOT.brightness(colorW);
  68.     BlinkerMIOT.print();
  69. }

  70. //点灯APP控制颜色和亮度
  71. void deng1_callback(uint8_t r_value, uint8_t g_value, uint8_t b_value, uint8_t bright_value)
  72. {
  73.     digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
  74.     BLINKER_LOG("R value: ", r_value);
  75.     BLINKER_LOG("G value: ", g_value);
  76.     BLINKER_LOG("B value: ", b_value);
  77.     BLINKER_LOG("Rrightness value: ", bright_value);
  78.     colorR = r_value;
  79.     colorG = g_value;
  80.     colorB = b_value;
  81.     colorW = bright_value;
  82.     pixelShow();

  83. }

  84. void setup()
  85. {
  86.      //串口输出状态
  87.     Serial.begin(115200);
  88.     BLINKER_DEBUG.stream(Serial);

  89.     //初始化颜色和亮度
  90.     colorR = 255;
  91.     colorG = 255;
  92.     colorB = 255;
  93.     colorW = 100;
  94.     pixels.begin();
  95.    
  96.     // 初始化blinker
  97.     Blinker.begin(auth, ssid, pswd);
  98.     Deng1.attach(deng1_callback);
  99.     BlinkerMIOT.attachColor(miotColor);
  100.     BlinkerMIOT.attachBrightness(miotBright);
  101. }

  102. void loop()
  103. {
  104.     Blinker.run(); //点灯科技运行
  105. }
复制代码


发表于 2021-10-4 19:29 来自手机 | 显示全部楼层
    BlinkerMIOT.attachColor(miotColor);     BlinkerMIOT.attachBrightness(miotBright)也两行函数什么意思呀?大神
发表于 2022-1-20 12:45 | 显示全部楼层
学好c语言 发表于 2021-10-4 19:29
BlinkerMIOT.attachColor(miotColor);     BlinkerMIOT.attachBrightness(miotBright)也两行函数什么意 ...

看起来像是初始化小爱控制相关函数的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 10:47 , Processed in 0.072312 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表