宿舍远程关灯神器:低成本ESP8266 WIFI+舵机+blinker方案
创作时间:
作者:
@小白创作中心
宿舍远程关灯神器:低成本ESP8266 WIFI+舵机+blinker方案
引用
CSDN
1.
https://blog.csdn.net/weixin_53631107/article/details/136792642
在宿舍里,有时候我们希望能够在离开时远程关闭灯光,但又不想进行复杂的电路改装。本文将介绍一个低成本的解决方案,使用ESP8266和舵机实现远程关灯功能,整个项目预算控制在20元以内,非常适合DIY爱好者尝试。
一、材料清单
- esp8266MCU开发板一块(10元左右)
- sg50舵机一个(6元左右)
- 数据线一根
- 公转母杜邦线3根(2元)
- 充电宝或者220v转5V充电器一根
二、Arduino IDE配置ESP8266环境
首先从Arduino官网下载最新版本的Arduino IDE软件并安装。安装完成后,进入首选项(Preferences),找到附加开发板管理器地址(Additional Board Manager URLs),并在其后添加如下信息:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
之后点击工具 - 开发板 - 开发板管理器,选择NodeMcu1.0(esp-12E Module)。硬件连接时,端口选择COM3或者COM5,如果端口没选对的话上传会显示"COMX不成功"。
三、WIFI配置
在代码中需要修改以下三个地方:
char auth[] = ""; //!key! 代码需更改的地方
char ssid[] = ""; //!wifi名称! (不要有中文和空格,如果使用热点需要设为2.4G频)
char pswd[] = ""; //!wifi密码!
四、点灯科技设置
手机打开点灯科技APP,进入设备设置界面。设置三个按钮和四个滑块,具体设置如下:
- 三个按钮的数据键名分别为btn-max、btn-min、btn-pw
- 四个滑块的数据键名分别为max-num、min-num、ser-num、time-num
- 最后一个滑块(time-num)的最大值最小值可以根据需求设置,代表循环的间隔时间,单位为毫秒。
五、接线
接线图如下:
设备在线以后进入控制界面,将位置2的滑块设置到适当位置,再点击位置2的按钮,可以看舵机转动。
六、附录(代码)
#include <Servo.h>
#define BLINKER_WIFI
#include <Blinker.h>
char auth[] = ""; //!key! 代码需更改的地方
char ssid[] = ""; //!wifi名称!
char pswd[] = ""; //!wifi密码!
// 新建组件对象
BlinkerButton Button1("btn-max"); //位置1 按钮 数据键名
BlinkerButton Button2("btn-min"); //位置2 按钮 数据键名
BlinkerButton Button3("btn-pw"); //循环模式 按钮 数据键名 开关模式
Servo myservo;
BlinkerSlider Slider1("max-num"); //位置1 滑块 数据键名 范围1-180
BlinkerSlider Slider2("min-num"); //位置2 滑块 数据键名 范围1-180
BlinkerSlider Slider3("ser-num"); //实时位置 滑块 数据键名 范围1-180
BlinkerSlider Slider4("time-num"); //循环模式间隔时间 滑块 数据键名 范围单位毫秒
bool xunhuan_mode = false;
int servo_max, servo_min, ser_num, time_num;
void button1_callback(const String &state) { //位置1按钮
BLINKER_LOG("get button state: ", servo_max);
myservo.write(servo_max);
Blinker.vibrate();
}
void button2_callback(const String &state) { //位置2按钮
BLINKER_LOG("get button state: ", servo_min);
myservo.write(servo_min);
Blinker.vibrate();
}
void button3_callback(const String &state) { //位置3按钮 开关模式
if (state == "on") {
xunhuan_mode = true;
Button3.print("on");
Blinker.delay(100);
} else if (state == "off") {
xunhuan_mode = false;
Button3.print("off");
Blinker.delay(100);
}
}
void slider1_callback(int32_t value)
{
servo_max = value;
Slider1.color("#1E90FF");
Slider1.print();
BLINKER_LOG("get slider value: ", value);
}
void slider2_callback(int32_t value)
{
servo_min = value;
Slider2.color("#FFF8DC");
Slider2.print();
BLINKER_LOG("get slider value: ", value);
}
void slider3_callback(int32_t value)
{
ser_num = value;
myservo.write(ser_num);
Blinker.delay(100);
BLINKER_LOG("get slider value: ", value);
}
void slider4_callback(int32_t value)
{
time_num = value;
Blinker.delay(100);
BLINKER_LOG("get slider value: ", value);
}
void xunhuan()
{
myservo.write(servo_max);
Blinker.delay(time_num / 2);
myservo.write(servo_min);
Blinker.delay(time_num / 2);
}
void setup()
{
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
Blinker.begin(auth, ssid, pswd);
Button1.attach(button1_callback);
Button2.attach(button2_callback);
Button3.attach(button3_callback);
Slider1.attach(slider1_callback);
Slider2.attach(slider2_callback);
Slider3.attach(slider3_callback);
Slider4.attach(slider4_callback);
myservo.attach(5); //servo.attach():设置舵机数据引脚
myservo.write(10); //servo.write():设置转动角度
servo_max = 70;
servo_min = 120;
time_num = 500;
}
void loop()
{
Blinker.run();
if (xunhuan_mode == true) {
xunhuan();
}
}
热门推荐
企业伦理道德:企业文化建设的新风向标
企业伦理道德:管理新潮流
奇異果大战口腔溃疡:谁才是真正的赢家?
通风气楼工作原理:热压风压协同保障室内空气质量
三亚七大骑行路线详解:里程、景点全攻略
三亚经典景点攻略:亚龙湾、天涯海角等8处必游之地
海南发布14个生态旅游案例,展现“两山论”实践成果
德惠到长春西,高铁25分钟直达!票价仅需64.5元起
冬季出行必备:德惠到长春最新交通指南
无糖酸奶里的糖醇会促进血栓形成?有糖酸奶会升血糖升尿酸吗?
小心!木糖醇增加心脏病发作和中风风险
经常吃木糖醇的危害
股神巴菲特再出手,A股市场迎来新机会?
桡骨骨折伤残评定全攻略:从标准到案例解析
有氧运动+力量训练,守护甲状腺健康
种牙害怕怎么办
保护牙齿,从今天开始!7个实用口腔护理方法
疫情期间,种植牙该如何维护?
甲状腺功能检查,你真的懂了吗?
双十一囤货指南:守护甲状腺健康
从高低杠冠军到体操教育家:陆莉的中美体操情缘
1992年巴塞罗那奥运:陆莉以完美表现赢得体操史上首个满分
酒逢知己千杯少:10句古诗词助你掌控酒局
情绪价值管理:提升人际关系的关键策略
婚姻持久秘诀:高情绪价值的双向维系
无公害泥鳅养殖,你做对了吗?
无公害泥鳅养殖:环保新潮流,致富新选择
泥鳅养殖致富经:新手也能赚翻
花鸟鲜活:张大千笔下的花鸟画
玄鸟是什么鸟?玄鸟的寓意与象征意义