用ESP8266 NodeMCU与BlinkerAPP接入小爱同学实现语音识别的垃圾分类智能垃圾桶

先看效果

用ESP8266 NodeMCU与BlinkerAPP接入小爱同学实现语音识别的垃圾分类智能垃圾桶

具体操作可以去B站参考这个 BV1ak4y1d7mp 视频

设备

需要下载点灯·Blinker app ,小爱同学,米家(小度也可以,这里只是以小爱做参考)
SG90舵机2
ESP8266 NodeMCU
1
在这里插入图片描述

接线

SG90Node MCU
VCC(红)3.3V
GND(棕)GND
PWM(橙)D1,D2

代码

#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT             //Blinker小爱同学接口函数-light-灯
#define BLINKER_PRINT Serial           //串口协议库

#include <Blinker.h>                   //APP官方库
#include <Servo.h>                     //舵机库

Servo myservo1;                        //定义舵机1
Servo myservo2;                        //定义舵机2

char auth[] = "修改";          //Blinker里面你设备的密钥
char ssid[] = "修改";  //WIFI名称
char pswd[] = "修改";           //WIFI密码

//定义舵机管脚
int ms1=5;                             //舵机1-D1-5
int ms2=4;                             //舵机2-D2-4

BlinkerButton Button1("btn-3an");      //Blinker里面你控件的数据键名
BlinkerButton Button2("btn-h9r");      //Blinker里面你控件的数据键名

// 按下按键即会执行该函数
void button1_callback(const String & state)
{
    BLINKER_LOG("可回收垃圾桶盖开关");
    myservo1.write(90);
    delay(3000);
    myservo1.write(0);
}
void button2_callback(const String & state)
{
    BLINKER_LOG("其他垃圾桶盖开关");
    myservo2.write(90);
    delay(3000);
    myservo2.write(180);
}

//用户自定义电源类操作的回调函数
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 miotMode(uint8_t mode)
{
    BLINKER_LOG("need set mode: ", mode);

    if (mode == BLINKER_CMD_MIOT_DAY) {         //日光模式
        BLINKER_LOG("语音控制操作可回收垃圾桶盖");
        myservo1.write(90);
        delay(3000);
        myservo1.write(0);
        delay(30);
    }
    else if (mode == BLINKER_CMD_MIOT_NIGHT) {  //夜光模式
        BLINKER_LOG("语音控制操作其他垃圾桶盖");
        myservo2.write(90);
        delay(3000);
        myservo2.write(180);
        delay(30);
    }

    BlinkerMIOT.mode(mode);
    BlinkerMIOT.print();
}

void setup()
{
    // 初始化串口
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
    
    // 初始化舵机
    myservo1.attach(ms1);
    myservo2.attach(ms2);
    myservo1.write(0);
    myservo2.write(180);
    delay(100);
    
    // 初始化blinker
    Blinker.begin(auth, ssid, pswd);

    BlinkerMIOT.attachPowerState(miotPowerState); //注册小爱电源类回调函数
    BlinkerMIOT.attachMode(miotMode);             //注册小爱模式的回调函数
    
    Button1.attach(button1_callback);             //注册按键1的回调函数
    Button2.attach(button2_callback);             //注册按键2的回调函数

    delay(100);
}

void loop() {
    Blinker.run();
}

手机上设置

blinker

小爱同学

小结

之前做的ld3320语音识别模块的,识别率不高,用这个只要十来块钱就可以实现。
如有做的不好的地方,可以一起交流。

  • 4
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值