本人第一次整这个玩意

一、前言

科技改变生活,宿舍谁去关灯是个问题

二、采购清单

1. esp8266模块

img

如果你没有microUSB数据线最好买一根

2. sg90舵机

sg90舵机

三、连接舵机和开发板

1. 找到黄线,使用小刀等工具把头上的黑片翘起来,然后拉出黄线。

img

img

2. 将棕(褐)色和红色线分别插到G和V V上。将黄线插到D2上。

img

img

img

四、搭建开发环境

1. 下载Arduino

下载地址:https://www.arduino.cc/en/software

img

img

安装很简单,只需要注意安装路径,没有什么其他选项,一直下一步。

打开之后会自动安装一些库和驱动,弹窗是否安装的时候一律选择是

对了,刚安装应该是英文,可以使用快捷键 ctrl + , 打开首选项切换成中文。

2. 安装esp8266库

打开首选项,在其他开发板管理地址中粘贴:http://arduino.esp8266.com/stable/package_esp8266com_index.json并确定。

粘贴

然后点击左边第二个图标,搜索esp8266,安装。

安装

3. 安装电灯科技库

打开连接:https://www.diandeng.tech/dev,并点击arduino后面的下载图标。

img

下载之后我们需要再进行一部操作。
新建一个文件夹并命名为blinker -> 将文件解压进去 -> 然后再压缩文件夹。
之所以做这一步是因为下载的压缩包里面是多个文件,而不是一个文件夹,直接安装的话会报错。

img

然后点击Arduino的项目 -> 包含库 -> 添加.ZIP库,找到blinker.zip压缩包并添加。提示安装成功即可。

添加库

五、配置电灯科技App

还是在https://www.diandeng.tech/dev这个链接里(手机打开),下载并安装APP。

1. 添加设备

打开app后点击右上角加号,点击独立设备,点击网络接入,复制Key并返回。

2. 配置页面

点击设备进入页面,点击右上角编辑,新增两个按钮和一个调试,点击按钮可以配置样式等。
注意:记住两个按钮的键名(或者再查看也行)

img

六、编写程序并烧录

1. 编写程序

一切准备就绪,开始编写程序。
以下代码是我自己改的,没有基础只能参考别人代进行码修改。

注意根据注释更改指定内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <Servo.h> 
#define BLINKER_WIFI
#include <Blinker.h>

char auth[] = "xxxxxxxx"; // 点灯Key,上面添加设备的时候复制的
char ssid[] = "xxxxxxxx"; // wifi名称
char pswd[] = "xxxxxxxx"; // wifi密码

// 新建组件对象
BlinkerButton Button1("btn-on"); // 开灯按钮
BlinkerButton Button2("btn-off"); // 关灯按钮
Servo myservo;

// 设置复位角度
int zero = 97;

// 旋转角度
int deg = 25;

void button1_callback(const String & state) { // 开灯函数
myservo.write(zero - deg);
// digitalWrite(D3, HIGH); // 不知道这个什么作用,有和没有似乎没什么影响,不过如果有知道的大佬希望能解答一下。
delay(500);
myservo.write(zero);
}

void button2_callback(const String & state) { // 关灯函数
myservo.write(zero + deg);
delay(500);
myservo.write(zero);
// digitalWrite(D3, LOW);
}

void setup() {
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
Blinker.begin(auth, ssid, pswd);
Button1.attach(button1_callback);
Button2.attach(button2_callback);
myservo.attach(D2,500,2500);
myservo.write(zero);
pinMode(D3, OUTPUT);
}

void loop() { Blinker.run(); }

2. 烧录

代码写完之后就需要烧录进开发板了。
烧录之前我们需要配置一点东西。

  1. 开发板通过数据线连接到电脑,叮咚一声代表连接成功。
  2. 工具 -> 开发板 -> esp8266 -> 选择NodeMCU 1.0

选择开发板

  1. 工具 -> 端口 -> 选择COMx

选择端口

成功之后是这样的:

成功

点击向右箭头图标上传程序(传到开发板),然后就会开始编译上传(时间比较久,请耐心等待)。

上传成功之后等待片刻,开发板会进行连接wifi等操作。
然后打开点灯app即可看到设备在线(没在线再等一会,太久的话比如超过5分钟就检查一遍代码等等)
点击按钮即可实现舵机旋转,只需要将舵机粘到开关旁边即可。

关于舵机扇叶的问题:
代码写入之后舵机会旋转到指定角度,这时候如果扇叶是歪的需要拔下来重新对齐。

七、参考文档

  1. esp8266&sg90舵机&点灯科技&arduino

  2. 关灯神器-我的单片机之路的第一步

  3. B站的一些视频,补一些基础知识

八、最后

万物互联第一步,点灯改变生活。是件很酷的事