查看: 811|回复: 15

[未解决] 求助帖,ESP01S介入WS2812B,无法让灯

[复制链接]
  • TA的每日心情
    开心
    2020-4-3 13:47
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2020-4-2 12:57 | 显示全部楼层 |阅读模式
    看抖音暴改车间着迷,但是无法调试出氛围灯,新手,有没有大神帮忙解决一下,感谢
    1.JPG
    上图是主任发的电路图
    下图是我在面包板上改的,请帮忙检查下是否对
    IMG_20200402_123232.jpg

    ESP01S烧录如下:

    kittenblock中小学创客名师推荐的图形化编程软件

    #define BLINKER_WIFI/////////////////// wifi
    #define BLINKER_MIOT_LIGHT ////////////语音助手
    
    #include <Blinker.h>
    
    char auth[] = "ec6ff6328965";//////////手机下载 blinker app 安卓应用商店 苹果在https://www.diandeng.tech/home   app-右上角+ DIY设备:Arduino 添加后得到该授权码
    char ssid[] = "THINK-001";/////wifi ssid
    char pswd[] = "123456qwe";///wifi 密码
    int openState = 0; ///默认为单色模式
    // Download Adafruit_NeoPixel library here:
    // https://github.com/adafruit/Adafruit_NeoPixel
    #include <Adafruit_NeoPixel.h>
    
    #define PIN            0   ////开发板的引脚编号 接WS2812 data  VCC--VCC  GND-GND DATA/DI(DATA INPUT)--17 具体看产品说明
    #define NUMPIXELS      3  ////开发板灯灯珠数量 位
    Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
    #define BUTTON_1 "ButtonKey"   ///////////////【APP内用来控制呼吸灯开关】app中添加 开关按键 数据键名ButtonKey  一致即可 注意大小写
    #define RGB_1 "RGBKey"              ///////////////【APP内用来控制颜色及亮度】app中添加调色盘 数据键名RGBKey  一致即可
    
    BlinkerRGB WS2812(RGB_1);
    BlinkerButton Button1(BUTTON_1);
    uint8_t colorR, colorG, colorB, colorW;
    bool wsState;
    uint8_t wsMode = BLINKER_CMD_MIOT_DAY;
    
    void pixelShow()
    {
      pixels.setBrightness(colorW);
    
      for (int i = 0; i < NUMPIXELS; i++) {
        pixels.setPixelColor(i, colorR, colorG, colorB);
      }
      pixels.show();
    }
    
    void ws2812_callback(uint8_t r_value, uint8_t g_value, uint8_t b_value, uint8_t bright_value)
    {
      digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
      openState = 0;
      Button1.print("off");
      BLINKER_LOG("R value: ", r_value);
      BLINKER_LOG("G value: ", g_value);
      BLINKER_LOG("B value: ", b_value);
      BLINKER_LOG("Rrightness value: ", bright_value);
    
      colorR = r_value;
      colorG = g_value;
      colorB = b_value;
      colorW = bright_value;
    
      pixelShow();
    }
    void button1_callback(const String & state)
    {
      digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
      BLINKER_LOG("get button state: ", state);
    
      if (state == BLINKER_CMD_ON) {
        BLINKER_LOG("Toggle on!");
        Button1.print("on");
        openState = 1;
      }
      else if (state == BLINKER_CMD_OFF) {
        BLINKER_LOG("Toggle off!");
        Button1.print("off");
        openState = 0;
      }
    
    }
    
    uint32_t getColor()
    {
      uint32_t color = colorR << 16 | colorG << 8 | colorB;
    
      return color;
    }
    
    void miotPowerState(const String & state)
    {
      BLINKER_LOG("need set power state: ", state);
    
      if (state == BLINKER_CMD_ON) {
        digitalWrite(LED_BUILTIN, HIGH);
    
        BlinkerMIOT.powerState("on");
        BlinkerMIOT.print();
    
        wsState =true;
    
        if (colorW==0) colorW =255;
      }
      else if (state == BLINKER_CMD_OFF) {
        digitalWrite(LED_BUILTIN, HIGH);
    
        BlinkerMIOT.powerState("off");
        BlinkerMIOT.print();
    
        wsState = false;
        if (colorW >0) colorW = 0;
      
      }
    
      pixelShow();
    }
    ///////////////////////////////////////////////////////呼吸灯
    uint32_t Wheel(byte WheelPos) {
      WheelPos = 255 - WheelPos;
      if (WheelPos < 85) {
        return pixels.Color(255 - WheelPos * 3, 0, WheelPos * 3);
      }
      if (WheelPos < 170) {
        WheelPos -= 85;
        return pixels.Color(0, WheelPos * 3, 255 - WheelPos * 3);
      }
      WheelPos -= 170;
      return pixels.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
    }
    
    void rainbow(uint8_t wait) {
      uint16_t i, j;
    
      for (j = 0; j < 256; j++) {
        for (i = 0; i < pixels.numPixels(); i++) {
          //time_show();
          // dhtShow();
          pixels.setPixelColor(i, Wheel((i + j) & 255));
        }
        pixels.show();
        delay(wait);
      }
    }
    
    
    void miotColor(int32_t color)
    {
      BLINKER_LOG("need set color: ", color);
    
      colorR = color >> 16 & 0xFF;
      colorG = color >>  8 & 0xFF;
      colorB = color       & 0xFF;
    
      BLINKER_LOG("colorR: ", colorR, ", colorG: ", colorG, ", colorB: ", colorB);
    
      pixelShow();
    
      BlinkerMIOT.color(color);
      BlinkerMIOT.print();
    }
    
    void miotMode(uint8_t mode)
    {
      BLINKER_LOG("need set mode: ", mode);
    
      if (mode == BLINKER_CMD_MIOT_DAY) {
        //日光模式   小爱同学的语音命令 模式中文名称参考 https://www.diandeng.tech/doc/xiaoai
      }
      else if (mode == BLINKER_CMD_MIOT_NIGHT) {
        // Your mode function
      }
      else if (mode == BLINKER_CMD_MIOT_COLOR) {
        // Your mode function
        openState = 0;
      }
      else if (mode == BLINKER_CMD_MIOT_WARMTH) {
        // Your mode function
      }
      else if (mode == BLINKER_CMD_MIOT_TV) {
        // Your mode function
      }
      else if (mode == BLINKER_CMD_MIOT_READING) {
        // Your mode function
      }
      else if (mode == BLINKER_CMD_MIOT_COMPUTER) {
        // 电脑模式
        openState = 1;
      }
    
      wsMode = mode;
    
      BlinkerMIOT.mode(mode);
      BlinkerMIOT.print();
    }
    
    void miotBright(const String & bright)
    {
      BLINKER_LOG("need set brightness: ", bright);
    
      colorW = bright.toInt();
    
      BLINKER_LOG("now set brightness: ", colorW);
    
      pixelShow();
    
      BlinkerMIOT.brightness(colorW);
      BlinkerMIOT.print();
    }
    
    void miotColoTemp(int32_t colorTemp)
    {
      BLINKER_LOG("need set colorTemperature: ", colorTemp);
    
      BlinkerMIOT.colorTemp(colorTemp);
      BlinkerMIOT.print();
    }
    
    void miotQuery(int32_t queryCode)
    {
      BLINKER_LOG("MIOT Query codes: ", queryCode);
    
      switch (queryCode)
      {
        case BLINKER_CMD_QUERY_ALL_NUMBER :
          BLINKER_LOG("MIOT Query All");
          BlinkerMIOT.powerState(wsState ? "on" : "off");
          BlinkerMIOT.color(0);
          BlinkerMIOT.mode(0);
          BlinkerMIOT.colorTemp(1000);
          BlinkerMIOT.brightness(1);
          BlinkerMIOT.print();
          break;
        case BLINKER_CMD_QUERY_POWERSTATE_NUMBER :
          BLINKER_LOG("MIOT Query Power State");
          BlinkerMIOT.powerState(wsState ? "on" : "off");
          BlinkerMIOT.print();
          break;
        case BLINKER_CMD_QUERY_COLOR_NUMBER :
          BLINKER_LOG("MIOT Query Color");
          BlinkerMIOT.color(0);
          BlinkerMIOT.print();
          break;
        case BLINKER_CMD_QUERY_MODE_NUMBER :
          BLINKER_LOG("MIOT Query Mode");
          BlinkerMIOT.mode(0);
          BlinkerMIOT.print();
          break;
        case BLINKER_CMD_QUERY_COLORTEMP_NUMBER :
          BLINKER_LOG("MIOT Query ColorTemperature");
          BlinkerMIOT.colorTemp(1000);
          BlinkerMIOT.print();
          break;
        case BLINKER_CMD_QUERY_BRIGHTNESS_NUMBER :
          BLINKER_LOG("MIOT Query Brightness");
          BlinkerMIOT.brightness(1);
          BlinkerMIOT.print();
          break;
        default :
          BlinkerMIOT.powerState(wsState ? "on" : "off");
          BlinkerMIOT.color(0);
          BlinkerMIOT.mode(0);
          BlinkerMIOT.colorTemp(1000);
          BlinkerMIOT.brightness(1);
          BlinkerMIOT.print();
          break;
      }
    }
    
    void dataRead(const String & data)
    {
      BLINKER_LOG("Blinker readString: ", data);
    
      Blinker.vibrate();
    
      uint32_t BlinkerTime = millis();
    
      Blinker.print("millis", BlinkerTime);
    }
    
    void setup()
    {
      Serial.begin(115200);
      BLINKER_DEBUG.stream(Serial);
      BLINKER_DEBUG.debugAll();
    
      pinMode(LED_BUILTIN, OUTPUT);
      digitalWrite(LED_BUILTIN, LOW);
    
      Blinker.begin(auth, ssid, pswd);
      Blinker.attachData(dataRead);
    
      BlinkerMIOT.attachPowerState(miotPowerState);
      BlinkerMIOT.attachColor(miotColor);
      BlinkerMIOT.attachMode(miotMode);
      BlinkerMIOT.attachBrightness(miotBright);
      BlinkerMIOT.attachColorTemperature(miotColoTemp);
      BlinkerMIOT.attachQuery(miotQuery);
    
      pinMode(14, OUTPUT);
      digitalWrite(14, HIGH);
      pinMode(15, OUTPUT);
      digitalWrite(15, HIGH);
    
      colorR = 255;
      colorG = 255;
      colorB = 255;
      colorW = 0;
      wsState = true;
      
    
      pixels.begin();
      pixels.setBrightness(colorW);
      WS2812.attach(ws2812_callback);
      Button1.attach(button1_callback);
      pixelShow();
    }
    
    void loop()
    {
      Blinker.run();
      if (openState == 0)
      {
        pixelShow();
        //Button1.print("off");
    
      }
      else if (openState == 1)
      {
        rainbow(15);/////////15呼吸灯的频率
        //Button1.print("on");
      }
    }

  • TA的每日心情
    开心
    2020-4-3 13:47
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2020-4-2 12:58 | 显示全部楼层
    刷完后,可连接上wifi热点,可在点灯科技操作,但就是灯不亮
  • TA的每日心情
    开心
    2020-4-3 13:47
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2020-4-2 13:07 | 显示全部楼层
    上图是淘宝购买的24位灯
    微信图片_20200402130011.jpg
    上图为供电后8266指示灯亮起后

    微信图片_20200402130244.jpg


    上图为点灯在线界面,已连接手机热点
    微信图片_202004021302441.jpg
  • TA的每日心情
    郁闷
    2020-5-9 23:03
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2020-4-2 13:32 | 显示全部楼层
           
    #define NUMPIXELS      24
  • TA的每日心情
    开心
    2020-4-3 13:47
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2020-4-2 14:10 | 显示全部楼层
    Creeper666 发表于 2020-4-2 13:32
    #define NUMPIXELS      24

    我弄了三个灯做了实验,还没正式接24
  • TA的每日心情
    开心
    2020-5-31 07:40
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    发表于 2020-4-2 17:11 | 显示全部楼层
    搞笑的山贼 发表于 2020-4-2 13:07
    上图是淘宝购买的24位灯

    上图为供电后8266指示灯亮起后

    RGB组件的数据键名没对上
  • TA的每日心情
    奋斗
    2019-1-17 09:55
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-4-3 00:12 | 显示全部楼层
    代码没看,第一眼感觉电源功率不够或者电路提供的功率不够
  • TA的每日心情
    无聊
    2020-4-3 02:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-4-3 00:56 | 显示全部楼层
    引脚2,接io2
  • TA的每日心情
    开心
    2020-4-3 13:47
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2020-4-3 08:06 | 显示全部楼层
    connexion 发表于 2020-4-3 00:12
    代码没看,第一眼感觉电源功率不够或者电路提供的功率不够

    电源5V,测过
  • TA的每日心情
    奋斗
    2019-1-17 09:55
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-4-3 12:45 | 显示全部楼层

    5V几安,1A吗?
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    求大神看看哪里有问题,设备在线,米家也同步正常,就.....
    求大神看看哪里有问题,设
    代码: #define BLINKER_PRINT Serial //用于打开串口 #define BLINKER_WIFI #define
    晒图ESP8266一个框架
    晒图ESP8266一个框架
    好久没发帖了,出来活跃活跃一下。ESP8266免身份登录截图。 最近外研究新的架构M2M或P
    Arduino 求助 串口接收数据不正确,数据丢失问题
    Arduino 求助 串口接收数
    问题整了好久,我自己写的C#程序发送数据,arduino接收数据。 但是发现arduino接收的
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表