美文网首页
ArduinoIDE开发ESP8266之小爱同学控制ESP826

ArduinoIDE开发ESP8266之小爱同学控制ESP826

作者: Da宁 | 来源:发表于2020-10-16 21:28 被阅读0次

    概述

    本文采用 ESP8266 NodeMCU板开发,利用小爱同学来控制开发板板载LED灯,但是小爱同学不支持个人DIY接入,因此需要借助第三方平台Blinker平台(点灯科技)来控制LED,也就是说需要点灯科技平台来充当中介。

    开发基础

    1.ArduinoID软件安装blinker库文件

    点击“项目” - “加载库”- “安装库”,在库管理器中搜索blinker库并进行安装。

    image

    2.blinker APP使用及说明

    (1)下载blinker的手机APP,注册账号获取密钥。

    (2)新建添加设备,选择独立设备。

    image image

    备注:在选择通信服务商时,若选择点灯科技,小爱同学暂时不支持点灯科技,blinker详细说明查看点灯科技-开发文档

    程序代码

    1.Arduino IDE程序

    #define BLINKER_WIFI
    #define BLINKER_MIOT_LIGHT  
    #include <Blinker.h>
    
    char auth[] = "*************";           //设备key号
    char ssid[] = "*************";            //wifi名称
    char pswd[] = "************";          //wifi密码
    
    /******新建组件对象**********/
    //新建按钮
    BlinkerButton Button1("btn");    //blinker APP内定义的按钮
    int counter = 0;
    
    // 按下按键即会执行该函数
    void button1_callback(const String & state)
    {
        BLINKER_LOG("get button state: ", state); //打印state
        digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    }
    
    // 如果未绑定的组件被触发,则会执行其中内容
    void dataRead(const String & data)
    {
        BLINKER_LOG("Blinker readString: ", data);  //打印data
        counter++;
    }
    
    /*****************开关控制-小爱同学********************/
    void miotPowerState(const String & state)
    {
        BLINKER_LOG("need set power state: ", state);
        if (state == BLINKER_CMD_ON) {
            digitalWrite(LED_BUILTIN, LOW);
            BlinkerMIOT.powerState("on");
            BlinkerMIOT.print();
        }
        else if (state == BLINKER_CMD_OFF) {
            digitalWrite(LED_BUILTIN, HIGH);
            BlinkerMIOT.powerState("off");
            BlinkerMIOT.print();
        }
    }
    
    void setup()
    {
        // 初始化串口
        Serial.begin(115200);
        BLINKER_DEBUG.stream(Serial);
        BLINKER_DEBUG.debugAll();
        
        // 初始化有LED的IO
        pinMode(LED_BUILTIN, OUTPUT);
        digitalWrite(LED_BUILTIN, HIGH);
        // 初始化blinker
        Blinker.begin(auth, ssid, pswd);
        Blinker.attachData(dataRead);
        
        // 按钮回调函数
        Button1.attach(button1_callback);
    
        //电源类操作的回调函数
        BlinkerMIOT.attachPowerState(miotPowerState);
     
    }
    
    void loop() {
        Blinker.run();
    }
    

    点灯科技使用方法及代码详细说明请查看点灯科技-开发文档

    2..blinker 部分

    (1)在blinker APP内新建按钮,名为btn,详细信息查看点灯科技-开发文档

    image

    上传代码

    进行编译、上传,将程序烧录到 MCU 中,若ESP8266连接到WIFI后,打开点灯APP,待所对应设备在线后进行调试;若执行正常,可在米家或者小爱音响内添加设备,选择其他平台设备,并选择其中的点灯科技然后同步设备进行调试。

    相关文章

      网友评论

          本文标题:ArduinoIDE开发ESP8266之小爱同学控制ESP826

          本文链接:https://www.haomeiwen.com/subject/lxpfmktx.html