宿舍远程关灯神器:低成本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();
}
}
热门推荐
周文王背姜子牙走800步,这个传说到底有多靠谱?
姜子牙:从垂钓渭水到开创齐国霸业
从《封神演义》到《姜子牙》:国漫崛起的创新之路
揭秘微信红包系统:如何应对百亿级高并发挑战?
春节抢红包秘籍:Wi-Fi提速大法!
贾宝玉梦游太虚幻境:红楼迷必读解析
如何缓解压力?日常生活中的10个小妙招
日本挖掘农村美食旅游潜力 缓解过度旅游压力
《自由之战》齐天大圣·孙悟空资料深度解读
狂犬病疫苗背后的免疫球蛋白秘密
从1949到2024:《封神演义》影视改编的银幕传奇
《封神演义》中的诗词:从人物塑造到文化内涵
老界岭景区:南阳周末打卡胜地
秋冬打卡南阳必去:老界岭景区
探秘南阳府衙:古建园林的艺术盛宴
探访南阳医圣祠:感受历史文化的魅力
伏牛山世界地质公园:南阳最美打卡地
双十一买旧款安卓手机更环保?
从李咏离世看喉癌早筛:提高健康意识,远离癌症威胁
李咏抗癌心路:从深渊到光明
燃气灶火焰颜色全解析:如何判断燃烧是否正常?
燃气燃烧器安全操作规程4篇
如何创造可持续消费的新场景?领先企业已亮出优秀答卷
农技上“云端” 屏上忙“耕耘”
牛肉和韭菜能包饺子吗?
从央视春晚看女性地位变迁
2025央视春晚女主持阵容揭晓:谁将引领潮流?
"国补"手机购买指南:哪些机型最划算?
于适一句话带火《封神2》,岐山臊子面成新宠
《封神第二部》西安路演:乌尔善揭秘幕后制作,主创团队花式互动点燃现场