一、硬件准备
1.esp8266开发板
2.sg90舵机(90-180)
3.迷你1200mAh充电宝一个(可自制)
4.杜邦线三根
5. USB线一根(一定要是数据线)
二、软件准备
1、Arduino ide
2、点灯科技app
3、米家app
4、小爱同学app
5、所需文件网盘连接:https://pan.baidu.com/s/1Kh4riNNZwINCpZaVYZCmVQ
提取码:mxww
三、硬件连接与开发配置
1、esp8266与sg90连接
将sg90的红色线与开发板左侧的VV引脚连接,黑色线与左侧G引脚连接,黄色信号线与开发板右侧D4引脚连接。
2、 用USB线将开发板与电脑连接在一起(注意一定要是数据线,现在好多都是纯充电线)
3、安装串口转换驱动
这个时候就可以看到设备管理器里面显示的串口了
4、安装arduino ide,这个直接从官网上下载就可以。 安装完成后,进行以下部署:
- 在 Arduino IDE 中,打开“文件”>“首选项”选项卡。
- 在“附加开发板管理器网址”框中,输入以下网址并单击“确定”按钮:
- 打开“工具”>“开发板”>“开发板管理器”选项卡。
- 在搜索框中输入“ESP8266”,选择“esp8266 by ESP8266”并单击“安装”按钮(如果安装失败就反复试几次)
- 点击红框部分,选择开发板和端口,一定要选择NodeMCU 1.0,端口选择你所连接的端口(就是刚才在设备管理器中看到的端口)
- 安装点灯科技Blink库。首先下载好blinker-library的压缩包(文章开头网盘连接中下载),然后在arduino ide中点击项目→导入库→添加.zip库→选择你刚下载的压缩包→打开就OK了。
四、手机端配置(一)
手机端先下载好软件
打开点灯app,点击添加设备→独立设备→网络接入→复制key→返回我的设备
然后点击右上角的编辑按钮,然后添加两个按键和一个滑块,再次点击添加的组件可以进入组件属性界面,然后记住三个组件键名,并且将滑块的最大值和最小值改为1和180。编辑完成后保存。
五、代码烧录
arduino ide中新建项目,输入以下代码,编译上传。
#include <Servo.h>
#define BLINKER_WIFI
#define BLINKER_MIOT_OUTLET
#include <Blinker.h>
char auth[] = "68e109cc2361"; //刚刚复制的点灯app的key
char ssid[] = ""; //引号内输入wifi名称
char pswd[] = ""; //引号内输入wifi密码,没有就空着
// 新建组件对象
BlinkerButton Button1(""); //引号内填第一个开关组件键名
BlinkerButton Button2(""); //引号内填第二个开关组件键名
Servo myservo;
BlinkerSlider Slider3(""); //引号内填滑块组件键名
int servo_max,servo_min,ser_num,time_num;
void button1_callback(const String & state) { //最大值按钮功能
BLINKER_LOG("get button state: ", servo_max);
myservo.write(servo_max);
Blinker.vibrate();
}
void button2_callback(const String & state) { //最小值按钮功能
BLINKER_LOG("get button state: ", servo_min);
myservo.write(servo_min);
Blinker.vibrate();
}
void slider3_callback(int32_t value) //滑块功能
{
ser_num = value;
myservo.write(ser_num);
Blinker.delay(100);
BLINKER_LOG("get slider value: ", value);
}
//小爱功能
void miotPowerState(const String & state)
{
BLINKER_LOG("need set power state: ", state);
if (state == BLINKER_CMD_ON) {
BLINKER_LOG("get button state: ", servo_max);
myservo.write(servo_max);
Blinker.vibrate();
}
else if (state == BLINKER_CMD_OFF) {
BLINKER_LOG("get button state: ", servo_min);
myservo.write(servo_min);
Blinker.vibrate();
}
}
void setup() {
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
Blinker.begin(auth, ssid, pswd);
Button1.attach(button1_callback);
Button2.attach(button2_callback);
Slider3.attach(slider3_callback);
BlinkerMIOT.attachPowerState(miotPowerState);
myservo.attach(2);
myservo.write(10);
servo_max=180;//旋转的度数
servo_min=0;
time_num=500;
}
void loop() {
Blinker.run();
}
六、手机端配置(二)
打开米家app,登陆小米账号后,点击我的→连接其他平台→添加→找到点灯科技→登录点灯科技账号→同步设备
打开小爱同学,登陆与米家app同样的小米账号。点击右上角头像→我的训练→添加训练→设置口令→选择设备控制→新的设备→打开插座→添加训练,同样的方法添加一个关闭插座口令。
七、舵机粘贴
可以像图中一样粘到墙壁上,使它刚好能够压住开关(这里推荐使用热熔胶粘贴,否则很容易掉落),这个时候你就可以通过你的小爱同学来控制宿舍灯的开关了。
本文为作者独立编写
本BLOG上所有的原创文章未经本人许可,不得用于商业用途及传统媒体。网络媒体转载请注明出处,否则属于侵权行为