欢迎光临散文网 会员登陆 & 注册

基于小爱+8266+Blinker+舵机 宿舍关灯神器

2022-06-27 17:32 作者:技术流阿宅  | 我要投稿

//项目备注:基于小爱同学+ESP8266+Blinker+SG90舵机--宿舍关灯神器

//项目作者:科技小宅神

//完成时间:2022/06/26

/*

材料清单:

  ESP8266模块一个;

  SG90舵机一个;

  杜邦线若干;

  USB数据线一条;


舵机与ESP8266模块接线:

  橙色信号线——D0

  红色电源正极——VV

  棕色电源负极——G(GND)

*/

需要用到的软件:

以上的几个软件一般在应用商店里都可以下载,如果有需要用小爱同学的智能音箱可以添加进来,通过小爱同学控制音箱的播放。

编程软件:

打开Blinker:

添加设备:

选择独立设备并选择网络接入:

网络接入,选择点灯科技,等待注册完毕,此时会弹出一个设备密钥,


复制密钥并保,返回我的设备

更改图标和名称

打开米家--->我的


打开平台设备添加绑定点灯科技

同步设备:

添加小爱训练,就可以语音控制宿舍灯了。

#define BLINKER_WIFI

#define BLINKER_MIOT_OUTLET //插座参数

#include <Servo.h>

 

#define PIN_SERVO D0 //舵机信号线

Servo myservo;

#include <Blinker.h>


const char auth[] = "    "; //新建设备的秘钥

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

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

bool oState = false;


//小爱电源类回调

void miotPowerState(const String & state)

{

    BLINKER_LOG("need set power state: ", state);

    myservo.attach(PIN_SERVO);//绑定舵机引脚

    if (state == BLINKER_CMD_ON) 

    {

        myservo.write(29);//舵机正转度数

        delay(1000); 

        BlinkerMIOT.powerState("on");

        BlinkerMIOT.print();

        oState = true;

    }

   else if (state == BLINKER_CMD_OFF) 

    {

        myservo.write(-29);//舵机反转度数

        delay(1000); 

        BlinkerMIOT.powerState("off");

        BlinkerMIOT.print();  

        oState = false;

    }

}

 //小爱同学语音命令反馈

void miotQuery(int32_t queryCode)

{

    BLINKER_LOG("MIOT Query codes: ", queryCode);

    switch (queryCode)

    {

        case BLINKER_CMD_QUERY_ALL_NUMBER :

            BLINKER_LOG("MIOT Query All");

            BlinkerMIOT.powerState(oState ? "on" : "off");

            BlinkerMIOT.print();

            break;


        //查询电源状态

        case BLINKER_CMD_QUERY_POWERSTATE_NUMBER :

            BLINKER_LOG("MIOT Query Power State");

            BlinkerMIOT.powerState(oState ? "on" : "off");

            BlinkerMIOT.print();

            break;

        default :

            BlinkerMIOT.powerState(oState ? "on" : "off");

            BlinkerMIOT.print();

            break;

    }

}

 

void dataRead(const String & data)

{

    BLINKER_LOG("Blinker readString: ", data);

    Blinker.vibrate();

    uint32_t BlinkerTime = millis();   

    Blinker.print("millis", BlinkerTime);

}

 

void setup()

{

    //初始化端口

    Serial.begin(115200);

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


    //初始化有LED的IO

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

    digitalWrite(LED_BUILTIN, LOW);

    

    //初始化blinker

    Blinker.begin(auth, ssid, pswd);

    Blinker.attachData(dataRead);//绑定数据读取

    

    BlinkerMIOT.attachPowerState(miotPowerState);//绑定小爱电源控制

    BlinkerMIOT.attachQuery(miotQuery);//绑定小爱语音反馈

}

 

void loop()

{

    Blinker.run(); /*每次运行都会将设备收到的数据进行一次解析。

                    在使用WiFi接入时,该语句也负责保持网络连接*/

}


基于小爱+8266+Blinker+舵机 宿舍关灯神器的评论 (共 条)

分享到微博请遵守国家法律