提示:所有代码已经开源到最大同性交友网站,有兴趣的朋友可以试试:https://github.com/hxdsg/ESP8266-dormitory-light-off-artifact
未经作者允许不得私自转发
请注明原作者:https://blog.csdn.net/qq_52420866/article/details/123804424?spm=1001.2014.3001.5501


一、实验材料
  • ESP8266 WIAF模块一个;
  • G90舵机一个;
  • 杜邦线若干
  • USB数据线一条
  • 电源

需要的软件

二、实验环境搭建
arduion IDE在这里插入图片描述
下载请点击这里arduion的下载
详细教程请参考使用教程

三、安装并且激活上面要用到的软件
米家的东西应用商店随便下
blinker下载
备用地址:下载
如果你没有库文件请点击这里库文件

下载好后打开blinker
在这里插入图片描述
添加独立设备
在这里插入图片描述
在这里插入图片描述
选择通信的运营商
在这里插入图片描述
一定记住要复制号key!

然后打开你的米家–我的–其他平台设备
在这里插入图片描述
把平台绑定到blinker
在这里插入图片描述
四、配置好ESP8266wifi环境

安装ESP8266的库文件,打开工具>管理库加载,
在这里插入图片描述
如果出现问题,建议直接加载库:打开文件>首选项>附加开发板管理器网址>把这个网址输入进去,再重新打开工具>管理库加载。http://arduino.esp8266.com/stable/package_esp8266com_index.json
在这里插入图片描述
五、接线并且运行代码!
舵机与ESP8266 WLAN模块

橙色信号线——D0

红色电源正极——VV

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

#define BLINKER_WIFI
#define BLINKER_MIOT_OUTLET
#include <Servo.h>
 
#define PIN_SERVO D0 //舵机信号线
 
Servo myservo;
 
#include <Blinker.h>
 
char auth[] = "   ";//点灯秘钥
char ssid[] = "   ";//无线网名称
char pswd[] = "   ";//无线网密码
 
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);
 
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, LOW);
 
    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
    
    BlinkerMIOT.attachPowerState(miotPowerState);
    BlinkerMIOT.attachQuery(miotQuery);
}
 
void loop()
{
    Blinker.run();
}

PS:请确保你的小爱同学与ESP8266处于同一局域网下,本人当时就是被坑惨了。

在这里插入图片描述
烧录代码段,通上电,刷新一下blinker,打开米家同步设备
在这里插入图片描述
在这里插入图片描述
最后打开小爱同学>智能家居>就会看你绑定的设备,之后就可以与愉快玩耍啦!

演示视屏


可以参考个人博客地址:

http://vamp.hxdsg.xyz/index.php/archives/13/

请注明原作者:https://blog.csdn.net/qq_52420866/article/details/123804424?spm=1001.2014.3001.5501

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐