查看: 1599|回复: 6

[已解答] Blinker小爱同学控制,增加按键开关,一直闪灯!

[复制链接]
  • TA的每日心情
    开心
    2020-4-22 12:14
  • 签到天数: 20 天

    [LV.4]偶尔看看III

    发表于 2019-12-31 21:19 | 显示全部楼层 |阅读模式
    已经可以用小爱同学(和blinker)控制LED,但是断网或者重启后,默认是亮灯。
    所以想增加一个按键控制LED ,测试了好几次,按键可以控制的时候,blinker不能控制。
    现在的情况是:上电LED一直在闪!

    仅个人爱好,都是抄袭(奈何col),不懂,所以求助!

    #define BLINKER_WIFI
    #define BLINKER_MIOT_LIGHT  //小爱设备配置:灯
    #include <Blinker.h>

    char auth[] = "xxxxxxxx";
    char ssid[] = "xxxxxx";
    char pswd[] = "xxxxxxx";

    int buttonPin = 2;   //定义按钮开关引脚为2-增加

    // blinker新建组件对象
      
    BlinkerButton Button1("btn-abc");
      
    // blinker按下按键即会执行该函数
      
    void button1_callback(const String & state) {
      
        BLINKER_LOG("get button state: ", state);
      
        digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
      
        Blinker.vibrate();
      
    }

    //小爱电源类操作的回调函数:
    //当小爱同学向设备发起控制, 设备端需要有对应控制处理函数
    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();
    }
    else if (state == BLINKER_CMD_OFF) {
    digitalWrite(LED_BUILTIN, LOW);
    BlinkerMIOT.powerState("off");
    BlinkerMIOT.print();
    }
    }


      
    void setup() {
      
      
      pinMode (buttonPin,INPUT);   //设定按钮引脚为输入状态-增加
      digitalWrite(buttonPin, HIGH);  //增加

      
        // 初始化串口,并开启调试信息
      
        Serial.begin(115200);   
      
        BLINKER_DEBUG.stream(Serial);
      
        // 初始化有LED的IO
      
        pinMode(LED_BUILTIN, OUTPUT);
      
        digitalWrite(LED_BUILTIN, HIGH);
      
        // 初始化blinker
      
        Blinker.begin(auth, ssid, pswd);
      
        Button1.attach(button1_callback);
    //小爱同学务必在回调函数中反馈该控制状态
    BlinkerMIOT.attachPowerState(miotPowerState);//注册回调函数
    }
      

      
    void loop() {
      
        Blinker.run();

       
       //下面增加内容
        if (digitalRead(buttonPin) == LOW){
        delay(40);              //延时简单抗抖动
        digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
      }
       
      }


  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2020-1-1 09:58 | 显示全部楼层
    感觉并不是一个blinker问题,输入上下拉了吗
  • TA的每日心情
    开心
    2020-4-22 12:14
  • 签到天数: 20 天

    [LV.4]偶尔看看III

     楼主| 发表于 2020-1-1 12:45 | 显示全部楼层
    谢谢,好了!
    一定要10K(棕黑红),随便找个电阻是不行的,一直以为是程序问题!
    另外问一下,修改哪个可以上电LED是熄灭状态?
  • TA的每日心情
    开心
    2020-8-15 05:15
  • 签到天数: 649 天

    [LV.9]以坛为家II

    发表于 2020-1-1 17:18 | 显示全部楼层
    本帖最后由 lwq1947 于 2020-1-1 17:39 编辑

    棕黑红应该是1K吧.把void setup() 中的 digitalWrite(LED_BUILTIN, HIGH);改成digitalWrite(LED_BUILTIN, LOW);试试.
  • TA的每日心情
    开心
    2020-8-15 05:15
  • 签到天数: 649 天

    [LV.9]以坛为家II

    发表于 2020-1-1 17:32 | 显示全部楼层
    本帖最后由 lwq1947 于 2020-1-1 17:36 编辑
    奈何col 发表于 2020-1-1 09:58
    感觉并不是一个blinker问题,输入上下拉了吗

    奈何老师新年好!请您帮我看看我的"函数调用"能否解答我的求助.谢谢.
  • TA的每日心情
    开心
    2020-4-22 12:14
  • 签到天数: 20 天

    [LV.4]偶尔看看III

     楼主| 发表于 2020-1-3 09:54 | 显示全部楼层
    lwq1947 发表于 2020-1-1 17:18
    棕黑红应该是1K吧.把void setup() 中的 digitalWrite(LED_BUILTIN, HIGH);改成digitalWrite(LED_BUILTIN, L ...

    谢谢,应该是棕黑橙!
    digitalWrite(LED_BUILTIN, LOW)这个我试试看!
  • TA的每日心情
    开心
    2020-6-3 08:55
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2020-1-3 10:32 | 显示全部楼层
    lex561 发表于 2020-1-1 12:45
    谢谢,好了!
    一定要10K(棕黑红),随便找个电阻是不行的,一直以为是程序问题!
    另外问一下,修改哪个 ...

    初始化时把high改成LOW就可以了
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    Arduino UNO中文数据手册
    Arduino UNO中文数据手册
    2018.9.23重新翻译整理 转载请注明来自Arduino中文社区,并附本帖链接 本帖地址:http
    LabVIEW监控温度传感器
    LabVIEW监控温度传感器
    这里涉及 dht11 数字温度湿度传感器模块、TM1637数码显示模块、LabVIEW。 功能
    黑乌鸦的Arduino兵器库-----DS1302时钟模块
    黑乌鸦的Arduino兵器库---
    嗯 这是一个系列后期会罗列几乎所有的常见基础模块的demo所以 大家的回复将是我最大
    中文 字库 的8针 OLED 12864模块 arduino
    中文 字库 的8针 OLED 128
    屏幕电路SPI连线: 中文字库OLED Arduino UNO GND GND
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表