纯小白,一些说法错误或者叫错名字的欢迎指正。

一、前言

为什么我要做这么一个东西?看下图,懂得都懂。

效果展示

二、采购清单

  1. esp8266 ch340/cp2102 几元 - 十几元
    我买的是ch340,网上很多教程是使用的cp2102,这两个都可以。不过cp2102贵一些。
    如果你没有microUSB数据线最好买一根。如下图。
  2. sg90舵机 6/7元左右
    sg90舵机
    至于杜邦线和面包板之类的,根据自身需求购买,本教程用不到这些。

三、连接舵机和开发板

拿到之后肯定是想先看一会折腾一会的,那么开发板上那么多引脚应该怎么正确的连接舵机呢?

观察舵机会发现它的三根线被固定在了一起,而我们所用到的引脚有一个并没有和另外两个在一起,所以我们需要把舵机上的一根线拆下来。

  1. 找到黄线,使用小刀等工具把头上的黑片翘起来,然后拉出黄线。
  2. 将棕(褐)色和红色线分别插到G和V V上。将黄线插到D2上。

连接成功。

四、搭建开发环境

代码难吗?不难,复制别人的改改就行。
连接难吗?更不难,照着教程分分钟连接。
难点在哪?搭建开发环境!!
改代码以及调试我用了大概不到半小时。
连接舵机和开发板用了几分钟。
而搭建开发环境费了我好几个小时。(找教程,找资源等各种损耗,动不动tm的关注公众号,关注了有的资源还货不对板😅)
不说了,开始教程吧。

1. 下载Arduino

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

安装很简单,只需要注意安装路径,没有什么其他选项,一直下一步。
打开之后会自动安装一些库和驱动,弹窗是否安装的时候一律选择是(我装过了它不弹了)。

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

2. 安装esp8266库

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

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

安装的时候资源可能会下载不了,如下图。这时我们需要打开这个连接自己下载,或者你直接下我打包好的。
报错
因为蓝奏不能上传100M以上,所以我分了两个文件。

  1. 压缩包
    里面有4个文件,需要解压一下。点我下载
  2. 单个文件
    这个比较大的单独拉出来了,直接下载不需要解压。点我下载

下载好之后,我们沿着如下路径把这几个文件放进去(AppData是隐藏文件夹,不会显示隐藏文件的自行百度。或者直接输入路径也行):
C:\Users\用户名\AppData\Local\Arduino15\staging\packages
下载的文件放到这里

放进去之后我们再点安装就可以顺利安装成功。(有可能还有下载不了的,自己下载放进去就可以)
安装成功

3. 安装电灯科技库

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

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

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

五、配置电灯科技App

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

  1. 添加设备
    打开app后点击右上角加号,点击独立设备,点击网络接入,复制Key并返回。
  2. 配置页面
    点击设备进入页面,点击右上角编辑,新增两个按钮和一个调试,点击按钮可以配置样式等。
    注意:记住两个按钮的键名(或者再查看也行)

详细步骤请看图:
App步骤

六、编写程序并烧录

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
    选择开发板
  3. 工具 -> 端口 -> 选择COMx
    选择端口

成功之后是这样的:
成功

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

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

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

七、参考文档

  1. 帮助最大的文章:esp8266&sg90舵机&点灯科技&arduino
  2. 其次就是一些B站视频,补了一些基础知识。

八、最后

此教程是我卸载软件从0开始边做边写的,应该不会出现什么问题。
但是每个人的情况都有可能不同,有问题的话建议先百度,因为我也不是很懂。嗯,很严肃。

顺便做一下展望:
系统的学学单片机知识,以后填加一些新功能。
比如用上买的led屏幕,实现天气效果等等。