ESP8266-01S模块语音控制

作者:龙兆柒

日期:2020-5-23

前言

之前使用过ESP8266模块来编写程序,通过小爱同学来进行点灯的操作。现在这次使用的也是ESP8266,只不过是使用01S模块,这两个模块最明显的区别就是体积小了很多,并且不集成下载器。如下图所示,

《ESP8266-01S模块语音控制》

区别:

1、 01s模块体积缩小了四倍左右,可以在一些小空间的位置进行工作,比如插座或者开关之类的 地方。
2、01s模块IO管脚减少,只有8个,除了供电之外仅剩下六个管脚能进行操作,可以应对一些操作少的设备进行控制。
3、01s模块不集成下载串口,需要额外购买下载器,在淘宝有对应的2X4针脚的下载器。

虽然这两个模块有一些小区别,但是他们的功能都是一样的,都是WIFI模块,仅仅是IO针脚数量不同的区别,应对不同的场景使用不同的模块,比如我这次就是制作一个语音控制开门的设备,需要的用到的针脚除了供电之外也仅仅使用到一个针脚而已,所以使用01s模块就足够使用了。

准备环境

硬件: 小爱同学音箱(小米手机)、天猫精灵音箱(这两样随便有一样也行)、ESP8266-01S模块,ESP8266-01S的CH340C下载器,杜邦线、ESP8266-01S一路继电器

开发环境: Arduino IDE

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合一的就填合一的这个。

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

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

《ESP8266-01S模块语音控制》

当把前置的都准备好了就开始准备码代码了

  1. 在代码输入区域顶部引入下列代码,进行配置接口函数

上列代码分别为串口输出、WIFI配置、小爱同学配置、天猫精灵配置

  1. 根据ESP8266-01s的开发原理图得到GPIO2的引脚编号为2,所以定义一个变量

  1. 然后再配置APP组件的名称,引号内的名称可以自己设置,但是尽量按照如下的风格方式设置

  1. 编写天猫精灵与小爱同学的操作函数

上面的函数用来处理天猫精灵发送过来的指令,当发送BLINKER_CMD_ON指令过来并且接收到,把GPIO2设置为低电平并且延时5秒,然后再把GPIO2设置回高电平。接收到BLINKER_CMD_OFF指令把GPIO2设置为高电平

小爱同学控制电源开关的函数,原理跟天猫精灵的差不多。

在setup函数内进行初始化,并注册函数

完整的源代码

上传程序

程序写好了就可以开始上传程序到硬件上面了,但是这个和ESP8266模块有些区别,是无法直接上传程序的,需要进行一些设置。

首先,需要在编译器上面进行设置,打开工具,进行如下设置。(端口选择自己的端口)

《ESP8266-01S模块语音控制》

设置完编辑器后如果直接烧写程序是会显示错误的,提示无法找到串口,这个原因其实是开发板没有进入到下载模式,所以无法下载。刚开始的时候我买了这个模块之后去问售后,可能是这个店家倒闭了还是啥原因并没有回复我,我自己在网上找了很久没有都没有找到原因,最后请教了宿舍的大佬就得以解决。

要想让开发版进入下载模式就需要把GPIO0接地,然后就可以正常下载了,下载完之后就把GPIO0断开进入工作模式。我为了方便以后使用就用杜邦线连接了GPIO0和GND,然后在另一端接上一个跳帽,下载的时候就戴上,工作的时候就摘下,如图所示

《ESP8266-01S模块语音控制》

然后就可以上传程序了,等待一段时间后就会如图所示上传成功了

《ESP8266-01S模块语音控制》

绑定语音设备

1、天猫精灵

  1. 打开天猫精灵 App。点击右下角“我的”,点击“添加智能设备”
  2. 在页面上方搜索栏,搜索blinker,并点击要添加的设备类型
  3. 点击绑定账号,使用blinker账户登录,完成绑定
  4. 绑定成功后,在blinker App中配网成功的设备就会出现在您的智能家居设备列表中,现在可以使用天猫精灵进行语音控制了

2、小爱同学

  1. 打开米家App。通过 我的>其他平台设备>点击添加>点灯科技>绑定账号 ,绑定blinker账号
  2. 绑定成功后,支持小爱控制的blinker设备会出现在 我的>其他平台设备>点灯科技 设备列表中
  3. 现在可以使用小爱控制该设备了
  4. 在小米手机中唤醒小爱同学>打开训练计划>新建训练计划>设备控制>选择设备>打开/关闭插座>设置语音文本(例如:打开灯)

连接继电器

连接继电器的话可以可以看51黑电子论坛里面的文章,我这里由于没有三极管没办法操作,点击这里

注意:

1、编译失败的话可以查看代码前面引入位置是否正确,可以参考上面代码。
2、程序写入成功后用点灯APP查看是否能成功点亮再尝试用小爱同学操作
3、APP内可以点亮用小爱同学没有反应可以进入米家APP内刷新设备再次尝试
4、本文部分内容引用了点灯科技官网的开发文档在此进行说明,具体其他的信息可自行到点灯科技官网查阅

总结

这个esp8266-01s的开发板我买了挺久了的,之前是想用来控制家里的灯的,但是由于下载程序的时候总是无法下载,然后找了很久都没有找到原因,然后就放在一边没有理了,直到来到了学校的时候才重新在舍友的帮助下找到了原因。写的这个程序完全没有难度,就像我这样新手的Arduino小白都可以写一些简单的功能,里面的代码很多的都是引用了点灯科技的库,只有一些简单的代码是自己写的。学习使我快乐。

点赞

发表评论

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