利用esp8266接入小爱同学,实现智能台灯的改造物联网初识
硬件准备
1.继电器WIFI智能插座模块
2.USB转ESP8266WIFI模块
3.ESP8266模块
软件环境搭建
1.小爱同学app,或者米家app,点灯 Blinker app
2.ArdunioIDE编译器
第一步:首先下载Arduino IDE地址:https://www.arduino.cc/en/Main/Software?setlang=en
第二步:导入ESP8266开发板,在软件,首选项里
在附加开发版管理器网址里输入:http://arduino.esp8266.com/stable/package_esp8266com_index.json
第三步:打开工具=》开发板=》开发板管理器中搜索ESP8266安装即可,此过程有点慢
第四步:打开工具选择开发版本,工具=》开发板=》选择NodeMcu 1.0(ESP-12E Module)
第五步:下载代码所需要的库地址:https//github.com/blinker-iot/blinker-library/archive/master.zip
把下载的库复制到此目录下。
上传代码
上传代码时需要短接
#define BLINKER_MIOT_LIGHT
#define BLINKER_WIFI
#include <Blinker.h>
char auth[] = "d64a851784dc";//在BLINKER中设备的密钥
char ssid[] = "TP-LINK_6B29";//局域网的名字
char pswd[] = "wg15385778716..";//局域网密码
int GPIO=0;//定义GPIO口用于控制继电器
#define BUTTON_1 "ButtonKey"
BlinkerButton Button1("key");//这里需要根据自己在BLINKER里面设置的名字进行更改
//按下按键后就会进行此函数
void button1_callback(const String & state)
{
BLINKER_LOG("get button state: ", state);
digitalWrite(GPIO,!digitalRead(GPIO));
Blinker.vibrate();
}
//接入小爱同学的代码,此部分代码根据BLINKER官网进行修改得到
void miotPowerState(const String & state)
{
BLINKER_LOG("need set power state: ",state);
if (state == BLINKER_CMD_OFF) {//如果语音接收到是关闭灯就设置GPIO口为高电平
digitalWrite(GPIO, HIGH);
BlinkerMIOT.powerState("off");
BlinkerMIOT.print();
}
else if (state == BLINKER_CMD_ON) {
digitalWrite(GPIO, LOW);
BlinkerMIOT.powerState("on");
BlinkerMIOT.print();
}
}
void setup() {
Serial.begin(115200);
pinMode(GPIO,OUTPUT);
digitalWrite(GPIO,HIGH);//初始化,由于继电器是低电平触发。所以刚开始设为高电平
Blinker.begin(auth, ssid, pswd);
Button1.attach(button1_callback);
BlinkerMIOT.attachPowerState(miotPowerState);//这段代码一定要加,不加小爱同学控制不了,务必在回调函数中反馈该控制状态
}
void loop()
{
Blinker.run();
}
手机APP端搭建
这里的数据键名要和你自己的代码一致
Blinker中的最终效果
添加小爱同学
先在米家或者小爱音响里添加设备
接法与原理
台灯的一根火线接到COM口,另一根火线接到NO口。再利用充电器给继电器模块供电。