用esp8266模块配合小爱同学打造廉价物联网系统

所需材料:esp8266模块、继电器模块、烧写器和小爱同学设备一台。
esp8266模块、继电器模块、烧写器加一起也就是大概15块钱,在淘宝就可以买的到。
我用一个led验证了一下,csdn不能上传视频,这里不好给大家展示了。想控制家里的220V的灯的原理都是一样的。

《用esp8266模块配合小爱同学打造廉价物联网系统》

这里使用的是米家支持的第三方库,来自点灯科技的Blinker库
全部代码如下:

#define BLINKER_WIFI
#define BLINKER_MIOT_OUTLET //小爱同学

#include <Blinker.h>

char auth[] = "--------";  //设备key,打开点灯app,添加设备,选择arduino设备,选择wifi接入,这里就会获得一个密钥,把密钥填写在这里。
char ssid[] = "TP-LINK_6666";  //路由器wifi ssid
char pswd[] = "--------";  //路由器wifi 密码
BlinkerButton Button1("btn-abc");     //定义按钮键名
bool oState = false;
int counter = 0;
void miotPowerState(const String & state)
{ 
    BLINKER_LOG("need set power state: ", state);

    if (state == BLINKER_CMD_ON) {      
        
        digitalWrite(0, LOW);
        BlinkerMIOT.powerState("on");

        BlinkerMIOT.print();

        oState = true;
    }
    else if (state == BLINKER_CMD_OFF) {    
        digitalWrite(0,HIGH);
        
        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 button1_callback(const String & state)     //点灯app内控制按键触发
{ 
    BLINKER_LOG("get button state: ", state);
    digitalWrite(0,LOW);
    delay(200);
    digitalWrite(0, HIGH);
}

void setup()
{ 
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);

    pinMode(0, OUTPUT);              //定义io口为输出
    digitalWrite(0, HIGH);           //定义io默认为高电平

    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
    
    BlinkerMIOT.attachPowerState(miotPowerState);
    BlinkerMIOT.attachQuery(miotQuery);
    Button1.attach(button1_callback);      
}

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


库函数的说明可以去点灯科技官网查看详细资料。

下面介绍操作接入小爱同学:
米家:
打开米家→我的→其他平台设备→添加→找到点灯科技添加→添加后记得同步一下设备,不出意外我们就能看到我们的esp8266设备了,设备名字可以在点灯app上自定义
下载小爱同学,任何安卓品牌都可以,我的三星手机也正常可以使用小爱
打开小爱同学→选择训练计划→我的训练→添加训练→设置对小爱说的话和设备控制选择我们的小灯

然后就可以:“小爱同学,开灯!”
我们的小灯就会“噗”一下亮了。

    原文作者:十啵
    原文地址: https://blog.csdn.net/weixin_44827364/article/details/104681971
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞