宿舍远程关灯神器:低成本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();
}
}
热门推荐
哪些国家接受AP课程并提供学分
Kaggle入门指南(Kaggle竞赛)
AI突破,开启未来社区智慧生活
铝锭价格的影响因素及其作用机制
对付不讲理的人最好的办法
易感人群包括哪些?
我国第一款不锈钢火箭!朱雀三号完成1万米垂直起降飞行
2025年中国载人航天将有哪些惊喜和期待?看点亮点先睹为快
小猫为什么喜欢刨花盆里的土?从天性到习惯的全面解析
基层工会经费使用范围明确:这些钱可以这么用!
银屑病甲损与灰指甲的区别:从发病机制到临床表现的全面解析
携带汽油犯法吗(详解汽油运输法规及处罚标准)
充电宝2万毫安能带上飞机吗?民航规定全解析
泡药酒的注意事项
中医舌面象仪管理系统工作原理
舌头识别健康软件:科技赋能中医望诊新篇章
明早空腹检查,今晚到底吃啥?
咳嗽不停,如何正确应对?教你几招
重庆车子过户所需手续全攻略
AB股的定义和区别是什么?这种股权结构对公司治理有什么影响?
一个好的自我介绍应该采用什么样的结构
元行者一号不锈钢火箭将挑战我国首次海上软着陆回收试验!
探访北京新质生产力·走出实验室|一艘不锈钢火箭的重复飞行
网络用语“yy”的文化现象与生活中的幻想与现实关系探讨
电竞酒店行业深度分析:市场规模、政策环境与发展趋势
九类典型案例警示:铁路沿线安全要重视
食物中毒怎么办?多久会好?食物中毒定义、病征及症状全公开!
三款适合小学生玩的益智游戏,助力孩子全方位发展
工资晚发几天,员工就能“被迫离职”要求经济补偿?
甲烷为何突然成为香饽饽?