智能控制-esp8266WiFi模块远程点灯

作者:龙兆柒

日期:2020-2-21

前言

前段时间在网上看到别人用esp8266WiFi模块连接家里的WiFi然后远程控制家里的电器,正好我记得我之前也买了一块esp8266的WiFi模块,之前买来做WiFi杀手的,玩过一段时间也没怎么用它了,庆幸的是我没有把这个东西给弄丢了。正好这段时间哪里都不能去,在家也是无聊,就也尝试做一下这个。

准备环境

开发环境:Arduino IDE

芯片模块:esp8266WiFi模块

手机APP: 点灯-blinker、米家、小爱同学

获取代码

由于本次程序的源码库是使用电灯科技的库,需要先下载库点击下载

下载后的压缩包根据电脑的系统分别解压到不同的路径:

Windows:将下载好的blinker库解压到 我的电脑>文档>Arduino>libraries 文件夹中

Mac OS:将下载好的blinker库解压到 文稿>Arduino>libraries 文件夹中

获取Secret Key

  1. 进入App,点击右上角的“+”号,然后选择 添加设备
  2. 点击选择Arduino > WiFi接入
  3. 选择要接入的服务商
  4. 复制申请到的Secret Key

设置点灯APP界面

  1. 在设备列表页,点击设备图标,进入设备控制面板
  2. 首次进入设备控制面板,会弹出向导页
  3. 在向导页点击 载入示例,即可载入示例组件

编译上传程序

  1. 打开Arduino IDE,通过 文件>示例>Blinker>Blinker_Hello/Hello_WiFi 打开例程
  2. 在程序中找到如下三行代码:

auth变量为在点灯app内申请到的key,ssid变量为你WiFi的名称,pswd变量为WiFi密码,分别在这些变量内填入相应的信息(esp8266好像并不支持5G的WiFi信号,如果路由器是分别有两个WiFi名称的话填4G的哪个WiFi名称,如果是两个WiFi合一的就填合一的这个)。

3.设置组件,在代码中把原本的组件代码改为:

btn-led为点灯APP内的按钮名称,可以在APP内做如下设置:

《智能控制-esp8266WiFi模块远程点灯》
《智能控制-esp8266WiFi模块远程点灯》

设置完之后把代码进行编译:

在上传之前需要把一些设置改成esp8266的信息,设置如下:

1、打开上方菜单栏,通过工具>开发板>选择Generic ESP8266 Module

2、菜单栏>工具>端口>设置为连接esp8266的端口

这些都设置完成之后就可以编译并上传程序了

《智能控制-esp8266WiFi模块远程点灯》

编译上传的时间可能会慢一点,等待一会儿即可。当显示上传成功后开发板会闪几下,等待5秒左右可以通过点灯APP查看是否成功

《智能控制-esp8266WiFi模块远程点灯》

如图中这样就是esp8266代码烧写成功并且连接上设置的WiFi,然后就可以点击在线的这个图标,进去之后点击与代码绑定的按钮就可以通过APP控制esp8266上面的led小灯了

《智能控制-esp8266WiFi模块远程点灯》
《智能控制-esp8266WiFi模块远程点灯》

这样就可以通过手机点灯APP远程控制ESP8266的板载led小灯了(ESP8266必须 连接上代码内设置的WIFI,手机可以无需连接到这个WiFi仅需联网就行了)

连接小爱同学

1、在之前的代码前面再加上一句代码,这句代码是用来对小爱同学进行支持的,没有这句在设备上是无法搜索到esp8266的信息的

2、添加小爱同学电源类操作函数miotPowerState()

3、在setup()函数内注册上面的函数

4、编译上传代码

5、 打开米家App。通过 我的>其他平台设备>点击添加>点灯科技>绑定账号 ,绑定blinker账号

6、 绑定成功后,支持小爱控制的blinker设备会出现在 我的>其他平台设备>点灯科技 设备列表中 ,如果没有出现就点击同步设备

7、在小米手机中唤醒小爱同学>打开训练计划>新建训练计划>设备控制>选择设备>打开/关闭插座>设置语音文本(例如:打开灯)

完成上面的步骤就已经可以通过小爱同学控制ESP8266板载led小灯的亮灭了

1、编译失败的话可以查看代码前面引入位置是否正确,可以参考上面代码。

2、程序写入成功后用点灯APP查看是否能成功点亮再尝试用小爱同学操作

3、APP内可以点亮用小爱同学没有反应可以进入米家APP内刷新设备再次尝试

4、本文部分内容引用了点灯科技官网的开发文档在此进行说明,具体其他的信息可自行到点灯科技官网查阅

总结

在此之前我从来没有用过Arduino做过任何东西,因此对与Arduino并不是很了解,所以在编写程序的时候碰到了各种问题,比如什么编译出错,我以为是我写的代码哪个函数出错了,然后排查了两个小时,甚至把那些自己编写的函数都注释了只留下默认的代码还是编译失败,最后我才找到原因原来是我前面引入小爱同学那段代码放在了 #include <Blinker.h> 下面,这种问题是我万万还没有想的到的,不过吃一堑长一智,碰到一个问题能解决就是又增长了一点知识。虽然最后的代码并不多,但是通过这段的代码我也算是有一点点的了解到Arduino了,白可惜了我之前只是拿esp8266来做WiFi杀手搞破坏,都不懂得拿来做一些智能家居之类的,这段时间我本来也想试试用来给我的房间的灯做成可以远程控制开关的,可惜的是在网上买的继电器还没有到,所以就先不做了,等继电器到了在尝试用来控制家用电器

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注