小爱同学+ESP8266+blinker点灯

系列文章目录

第一章 ESP8266+blinker 点灯



小爱同学控制

前面的教程都说了用blinker app来控制开发板上面的灯,以及温湿度数据的反馈,但都是通过通过按键来控制的,今天我们来用语音控制,来操作我们开发板上面的小灯


一.简介

其实我们可以,直接用blinker app里面的语音控制,直接将我们的语音指令录制到相应的组件中,当我们发起语音指令时,就可以对该组件的控制,来控制我们的开发板,但是我们得进入app里面才可以控制,所以我们就学习一下通过小爱同学来控制

在这里插入图片描述

二. app端添加设备

首先我们打开我们的blinker app,来添加一个设备
没有app的朋友点击下方下载

下载地址:blinker app
其他版本也可通过 blinker官网下载

在这里插入图片描述
在这里插入图片描述

这里比较简单,我就不多说了,不会的朋友可以先看一下上一节的教程 esp8266+blinker 点灯

三. 小爱同学接入

1.简绍

blinker支持多种智能音响控制,如天猫精灵、百度小度、小米小爱、京东叮咚等。
Blinker支持多种语音助手控制,如天猫精灵、百度小度等

通常语音助手都是对特定的设备类型进行支持,确定设备类型后,才能响应对应的语音指令。使用blinker方案开发设备,也需要先设定设备类型,支持的设备类型如下:

对于天猫精灵,blinker DIY支持将设备模拟成三种类型的智能家居:插座、灯、传感器。

设备类型支持功能blinker宏
传感器可以查询传感器获取到的数据BLINKER_ALIGENIE_SENSOR
开关灯、设置颜色、亮度、色温、模式BLINKER_ALIGENIE_LIGHT
插座开关设备BLINKER_ALIGENIE_OUTLET

对于小爱同学,blinker DIY支持将设备模拟成三种类型的智能家居:插座、灯、传感器。

设备类型支持功能blinker宏
传感器可以查询传感器获取到的数据BLINKER_MIOT_SENSOR
开关灯、设置颜色、亮度、色温、模式BLINKER_MIOT_LIGHT
插座开关设备BLINKER_MIOT_OUTLET

此教程以小爱同学控制为例,将设备设定为灯

#define BLINKER_WIFI
#define BLINKER_ALIGENIE_SENSOR

定义好类型后就可以对 attachPowerState 进行操作了

2.代码部分

#define BLINKER_PRINT Serial  //用于打开串口
#define BLINKER_WIFI      //用于指定设备接入方式 wifi 接入
#define BLINKER_MIOT_LIGHT   //定义为语音控制灯设备

#include <Blinker.h>

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

char ssid[] = "ZFQ"; //你的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 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); //绑定按键执行回调函数
  
    BlinkerMIOT.attachPowerState(miotPowerState); //小爱电源控制

}

void loop() {

    Blinker.run();  /*每次运行都会将设备收到的数据进行一次解析。
                    在使用WiFi接入时,该语句也负责保持网络连接*/
}

3.代码讲解

添加小爱同学,从代码上来就添加了三个部分

  1. 定义为语音控制灯设备

    #define BLINKER_MIOT_LIGHT   //定义为语音控制灯设备
    
  2. 小爱电源控制

    BlinkerMIOT.attachPowerState(miotPowerState); //小爱电源控制
    
  3. 小爱电源类回调函数实现

     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();
         }
     }
    

    注意修改代码的 网络配置处和 key 设备秘钥

4.米家的配置

首先我们打开米家,按照图片提示添加blinker设备,在绑定blinker的时候需要输入账号和密码,绑定成功我们点击一下同步设备,就可以看到我们的设备了

注意:只有添加了小爱同学相关代码的设备才能在此处显示出来

在这里插入图片描述

四.总结

等我们一切完成就绪就可以通过小爱同学来控制我们的设备了,这里只是简单的打开开发板上面的小灯,下一节我们来说用小爱同学控制测试温湿度信息

  • 20
    点赞
  • 181
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值