实验现象:
垃圾桶接入小爱同学
1.所需零件:
ESP8266 WIFI模块一块;
G90舵机一个;
专用USB数据线一根;
公对母杜邦线三根;
垃圾桶;
废纸板;
线;
电源(这里我是使用的是充电宝直接给开发板供电);
所用工具:
热熔胶枪; 剪刀;
所需软件:
手机端:点灯blinker、米家、小爱同学(如果是小米手机的可以直接用,不是的可以去应用商店里下载),以上软件都可以到应用商店里下载,(如果有小爱音箱的可以下载一个小爱音箱的软件进行绑定控制)
电脑端:
Arduino软件可以到Arduiino官网或blinker官网去下载,记得要添加相应的库文件。
2.接线:
舵机的橙色信号线接开发板的D0
舵机的红色电源正极线接开发板的VV
舵机的灰色线电源负极接开发板的G(GND)
3.对软件进行注册,绑定相应的账号。
具体步骤下载并注册点灯blinker、米家、小爱同学、
(1)打开点灯blinker>添加设备>独立设备>网路接入>阿里云>复制并保持key秘钥>返回我的设备>新的设备>新的设备设置>进行图标和名称的修改(我的名称为垃圾桶)>退出点灯blinker
(2)打开米家>我的>其他平台设备>添加并绑定点灯科技
4、程序的烧入
不要忘记添加ESP8266的库文件,打开工具>管理库添加
如果没有搜到,要打开文件>首选项添加下列网址在重新进行加载
http://arduino.esp8266.com/stable/package_esp8266com_index.json
建议直接安装ESP8266库文件的安装包,因为这个加载非常慢。链接如下
链接:https://pan.baidu.com/s/1weAKUnGUZt1a9LIbtMnNkQ 提取码:yoip
如果你没有安装blinker的库文件记得安装一下。链接如下
链接:https://pan.baidu.com/s/19Rkm-Gy9wbWkyFn34P41xw 提取码:dob2
程序代码:
#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(120);//舵机正转度数
delay(1000);
BlinkerMIOT.powerState("on");
BlinkerMIOT.print();
oState = true;
}
else if (state == BLINKER_CMD_OFF) {
myservo.write(-120);//舵机反转度数
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();
}
具体度数还要根据实际更改,要把保存的密钥复制到代码里,小爱同学音箱或手机的无线网要和代码里的保持一致。
5、控制修改
如下把烧入程序成功后,把他插在充电宝上,通过开发板进行供电来控制舵机,
打开点灯blinker>刷新使设备在线
打开米家>我的>其他平台设备>点灯科技>同步设备
打开小爱同学>智能家居
进行试验调整
6、垃圾桶改造
拿出纸板根据垃圾桶的大小裁剪出一垃圾桶盖,把裁剪出的垃圾桶盖的1/3出进行对折使之可以自由活动,把1/3的用热熔胶粘在垃圾桶的上面,同时把舵机粘在垃圾盖的1/3出并用线与另外的2/3进行连接,得到如下所示的成品。
接下来既可以进行语音调试和控制了
如果这个软件的连接没有清楚,可以去参考我的另一篇博客 ,连接如下
ESP8266 WIFI+舵机+小爱同学+blinker___宿舍关灯神器_@A.D.的博客-优快云博客_esp8266控制舵机开关灯