ESP8266+blinker点灯(小爱+天猫+小度三合一)

ESP8266

一.简介

今天给大家说一下各个语言助手来控制ESP8266来点灯,这是我们用的还是blinker平台,前面有写过关于小爱同学点灯的文章,今天说一下小度和天猫精灵的控制

二.程序

1.小爱同学

  • 头文件的声明
#define BLINKER_MIOT_LIGHT
  • 初始化
BlinkerMIOT.attachPowerState(miotPowerState); //小爱语音操作注册函数
  • 函数实现,这里我以点灯为例
//小爱电源类回调
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();
    }
}

2.天猫精灵

  • 头文件的声明
#define BLINKER_ALIGENIE_LIGHT //设置天猫灯类库
  • 初始化
BlinkerAliGenie.attachPowerState(aligeniePowerState); //天猫语音操作注册函数
  • 函数实现,这里我以点灯为例
//天猫精灵电源类回调
void aligeniePowerState(const String & state)
{
    BLINKER_LOG("need set power state: ", state);

    if (state == BLINKER_CMD_ON) {
        digitalWrite(LED_BUILTIN, LOW);       
        BlinkerAliGenie.powerState("on");
        BlinkerAliGenie.print();
    }
    else if (state == BLINKER_CMD_OFF) {
        digitalWrite(LED_BUILTIN, HIGH);
        BlinkerAliGenie.powerState("off");
        BlinkerAliGenie.print();
    }
}

3.小度

  • 头文件的声明
#define BLINKER_DUEROS_LIGHT //设置小度灯类库
  • 初始化
BlinkerDuerOS.attachPowerState(duerPowerState); //小度语音操作注册函数
  • 函数实现,这里我以点灯为例
//小度电源类回调
void duerPowerState(const String & state)
{
    BLINKER_LOG("need set power state: ", state);

    if (state == BLINKER_CMD_ON) {
        digitalWrite(LED_BUILTIN, LOW);       
        BlinkerDuerOS.powerState("on");
        BlinkerDuerOS.print();
    }
    else if (state == BLINKER_CMD_OFF) {
        digitalWrite(LED_BUILTIN, HIGH);
        BlinkerDuerOS.powerState("off");
        BlinkerDuerOS.print();
    }
}

三.合成

大家可以根据自己的需求来添加程序,我将三种控制合成一个程序

#define BLINKER_PRINT Serial  //用于打开串口
#define BLINKER_WIFI         //用于指定设备接入方式 wifi 接入
#define BLINKER_MIOT_LIGHT   //设置小爱同学控制为语音控制灯设备
#define BLINKER_DUEROS_LIGHT //设置小度灯类库
#define BLINKER_ALIGENIE_LIGHT //设置天猫灯类库

#include <Blinker.h>

char auth[] = "a3c11b64eb38"; //上一步中在app中获取到的Secret Key(新建设备的秘钥)

char ssid[] = "ZHAI"; //你的WiFi热点名称

char pswd[] = "123456789"; //你的WiFi密码

BlinkerButton Button1("btn-abc"); //btn-abc 名称要和app新建组件一致


// app 端按下按键即会执行该函数 回调函数
void button1_callback(const String & state) {
     
     BLINKER_LOG("get button state: ", state);
     if (state=="on") {

        digitalWrite(LED_BUILTIN, LOW);
        // 反馈开关状态
        Button1.print("on");
    } else if(state=="off"){

        digitalWrite(LED_BUILTIN, HIGH);
        // 反馈开关状态
        Button1.print("off");
    }
}

//小爱电源类回调
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 duerPowerState(const String & state)
{
    BLINKER_LOG("need set power state: ", state);

    if (state == BLINKER_CMD_ON) {
        digitalWrite(LED_BUILTIN, LOW);       
        BlinkerDuerOS.powerState("on");
        BlinkerDuerOS.print();
    }
    else if (state == BLINKER_CMD_OFF) {
        digitalWrite(LED_BUILTIN, HIGH);
        BlinkerDuerOS.powerState("off");
        BlinkerDuerOS.print();
    }
}

//天猫精灵电源类回调
void aligeniePowerState(const String & state)
{
    BLINKER_LOG("need set power state: ", state);

    if (state == BLINKER_CMD_ON) {
        digitalWrite(LED_BUILTIN, LOW);       
        BlinkerAliGenie.powerState("on");
        BlinkerAliGenie.print();
    }
    else if (state == BLINKER_CMD_OFF) {
        digitalWrite(LED_BUILTIN, HIGH);
        BlinkerAliGenie.powerState("off");
        BlinkerAliGenie.print();
    }
}


void setup() {

    // 初始化串口,并开启调试信息

    Serial.begin(115200);    
    BLINKER_DEBUG.stream(Serial); //串口打印调试信息

    // 初始化有LED的IO

    pinMode(LED_BUILTIN, OUTPUT);  //LED_BUILTIN 宏就是开发板指示灯的io口

    digitalWrite(LED_BUILTIN, HIGH);

    // 初始化blinker

    Blinker.begin(auth, ssid, pswd);

    Button1.attach(button1_callback); //绑定按键执行回调函数
  
	BlinkerDuerOS.attachPowerState(duerPowerState); //小度语音操作注册函数
	BlinkerMIOT.attachPowerState(miotPowerState); //小爱语音操作注册函数
	BlinkerAliGenie.attachPowerState(aligeniePowerState); //天猫语音操作注册函数

}

void loop() {

    Blinker.run();  /*每次运行都会将设备收到的数据进行一次解析。
                    在使用WiFi接入时,该语句也负责保持网络连接*/
}
  • 24
    点赞
  • 126
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值