首先因为小爱不支持个人DIY接入,所以需要借助Blinker跳转。
【硬件】ESP8266-01S、继电器、串口转USB
【软件】Arduino IDE(ESP8266开发板模式v2.5.2)、blinker的手机APP
1. 下载Arduino IDE,并切换为ESP8266开发板模式。
教程:https://zhuanlan.zhihu.com/p/87209619
2. 下载blinker的手机APP,注册账号获取密钥,如下图
电灯·blinker 官网链接:https://diandeng.tech/home
至少到2019年11月7日目前还是免费的。
APP项目界面可以载入实例,有兴趣可以自己摆一摆很简单。
3.然后打开【小爱音箱】或者【米家】APP都可以,按下图操作
4. 修改代码并上传到ESP8266-01S,修改3个地方(wifi名称、密码、密钥)
另外还需一个Blinker.h库文件 下载地址
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
/*Flash Size至少1M起 2019年10月14日 参考文档https://diandeng.tech/doc/xiaoai 首发于知乎https://zhuanlan.zhihu.com/p/87212242 开发者:Bright_ML*/ #define BLINKER_WIFI #define BLINKER_MIOT_LIGHT//支持小爱同学 #include <Blinker.h> char auth[] = "9*********a";//app中获取到的Secret Key(密钥) char ssid[] = "TP-LINK_DF38"; char pswd[] = "789456123"; int GPIO = 0; //定义继电器输入引脚为GPIO/0 // 新建组件对象 BlinkerButton Button1("btn-abc");//注意:要和APP组件’数据键名’一致 // 按下BlinkerAPP按键即会执行该函数 void button1_callback(const String & state) { BLINKER_LOG("get button state: ", state); digitalWrite(GPIO, !digitalRead(GPIO)); Blinker.vibrate(); } //小爱电源类操作的回调函数: //当小爱同学向设备发起控制, 设备端需要有对应控制处理函数 void miotPowerState(const String & state) { BLINKER_LOG("need set power state: ", state); if (state == BLINKER_CMD_ON) { digitalWrite(GPIO, HIGH); BlinkerMIOT.powerState("on"); BlinkerMIOT.print(); } else if (state == BLINKER_CMD_OFF) { digitalWrite(GPIO, LOW); BlinkerMIOT.powerState("off"); BlinkerMIOT.print(); } } void setup() { // 初始化串口,并开启调试信息,调试用可以删除 Serial.begin(115200); BLINKER_DEBUG.stream(Serial); // 初始化IO pinMode(GPIO, OUTPUT); digitalWrite(GPIO, HIGH); // 初始化blinker Blinker.begin(auth, ssid, pswd); Button1.attach(button1_callback); //小爱同学务必在回调函数中反馈该控制状态 BlinkerMIOT.attachPowerState(miotPowerState);//注册回调函数 } void loop() { Blinker.run(); } |
4.在【小爱音箱】或者【米家】APP【添加其他平台设备】选择【点灯科技】,输入账号密码同步设备即可,如下图操作