掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第1张图片
话不多说,先看效果演示视频:

B 站视频链接:https://www.bilibili.com/video/av63856715/

腾讯视频链接:https://v.qq.com/x/page/i0914dgim06.html

前言

前段时间,我在公众号上面发了一篇文章:掌控板 V1.1 语音识别初体验

在这篇文章中,我使用了还处于测试阶段的掌控板 V1.1 写了一篇语音识别的教程。好多老师看了后,都迫不及待想要玩一下掌控板语音识别功能,但无奈掌控板目前在售的最新版本(V1.0.1)还不支持这个功能,只能作罢。而且从我测试的结果来看,目前掌控板语音识别效果不是很理想。

于是我就想,还有没有其他方案可以做到语音识别呢?

看着手里的 iPhone,是时候轮到人工智障 Siri 上场了!
掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第2张图片可是怎么做才可以让 Siri 完成智能家居的控制呢?可能很多人会说,加一个 Raspberry Pi (树莓派),在上面运行 Home Assistant 框架,变成智能家居网关,然后再用掌控板(ESP32)做外设,就可以实现了 DIY 的 Siri 语音控制智能家居方案了。

的确,我们可以用这种方法去实现很复杂的智能家居控制系统,而且我之前就利用过 Home Assistant 框架、树莓派和 ESP8266 做过智能家居系统,具体教程可以查看:

  • Hey Siri,打开 HAY 旋转灯:http://mc.dfrobot.com.cn/thread-26865-1-1.html
  • Hey Siri,请告诉我传感器数据:http://mc.dfrobot.com.cn/thread-28859-1-1.html

以下是这个方案的演示视频:

B 站视频链接:https://www.bilibili.com/video/av14986294/

腾讯视频链接:https://v.qq.com/x/page/h0538fbcd4d.html

既然掌控板的主控芯片是 ESP32,而 ESP32 又是 ESP8266 的升级版,那么 ESP32 当然也同样可以接入 Home Assistant 系统。随着时间的推移,Home Assistant 系统也有了很多升级,功能也越来越全面,大家可以自行去尝试学习下这种方法。

Home Assistant 虽然是一个很强大的框架,但是如果我们只是做一些简单的灯光控制,而且还要用到树莓派,未免有点大材小用了。

所以这篇教程用的却是另一种方法,我们让掌控板或 ESP32 不用树莓派就可以直连 IPhone 上的 Siri。

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第3张图片

具体怎么做呢?请继续往下看。

重要的事情说三遍:

以下教程基于 Windows 系统!
以下教程基于 Windows 系统!
以下教程基于 Windows 系统!

如果你用的是 Linux 系统……你都用 Linux 系统了,这还难得倒你么?
如果你用的是 macOS 系统……土豪,你不需要折腾,直接买买买那些支持 Siri 的设备就行!

准备工作

如果你是高手,可以直接看这里:快速入门——ESP-IDF 编程指南:https://docs.espressif.com/projects/esp-idf/zh_CN/stable/get-started/index.html

ESP-IDF 是 Espressif IoT Development Framework 的缩写,是乐鑫 ESP32 开发的一套框架,乐鑫所研发的软件开发环境 ESP-IDF 能够帮助用户快速开发物联网 (IoT) 应用,满足用户对于 Wi-Fi、蓝牙、低功耗等性能的需求。框架里面包含很多例程,是入门和进阶ESP32的优秀参考。

如果你只想看精简版的,请继续往下看。你需要准备:

  • 文本编辑器:编写 C 语言程序,例如 VS Code、Eclipse、Notepad++等;
  • 掌控板或其他 ESP32 开发板;
  • Git:用于后续安装 ESP32 编译工具链、ESP-IDF 以及示例代码;
  • 工具链:用于编译下载调试 ESP32 程序;
  • ESP-IDF:包含 ESP32 API 和用于操作 工具链 的脚本;
  • ESP HomeKit Demo 程序:包含苹果智能家居 HomeKit 的 API 框架和适用于 ESP 系列芯片的例程 。

安装 Git 环境

首先你需要安装 Git 环境。Git 是做什么的呢?说的简单点,就是快速从 GitHub 下载代码的工具。安装方案很简单,从 Git 官网(https://git-scm.com/)下载最新的安装包,然后双击打开 exe 安装文件,一路 Next 就行。

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第4张图片

设置 ESP32 工具链

快速设置的方法是从 dl.espressif.com 下载集成在一起的工具链和 MSYS2 压缩文件。下载链接为:

https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20181001.zip

将 zip 压缩文件解压到 C:\ (或其它路径,我边边是 D:\esp),它会使用预先准备的环境创建一个 msys32 目录,如下图所示:

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第5张图片

然后打开 D:\esp\msys32\mingw32.exe 程序,这将会打开一个 MSYS2 的终端窗口,该窗口的环境是一个 bash shell。后面会多次用到这个程序,请一定要记住!后面会多次用到这个程序,请一定要记住!后面会多次用到这个程序,请一定要记住!

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第6张图片

运行如下命令,创建一个 esp 目录作为开发掌控板(ESP32) 应用的默认地址:

mkdir -p ~/esp

输入 cd ~/esp 就进入到新创建的目录。如果没有错误信息出现则表明此步骤已完成。

cd ~/esp

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第7张图片

请不要关闭这个窗口,后续步骤将会使用这个窗口来为掌控板(ESP32)设置开发环境。

下载 ESP-IDF 框架

工具链安装完后,你还需要 ESP32 相关的 API 库。API 库在 ESP-IDF 仓库 中。

继续在 MSYS2 的终端窗口中输入以下命令,使用 git clone 命令克隆(下载) ESP-IDF 远程仓库:

cd D:\esp
git clone -b v3.2.2 --recursive https://github.com/espressif/esp-idf.git

该命令首先切换到 D:\esp 目录下,然后将 ESP-IDF 被下载到 D:\esp 目录下。

git clone 命令的 -b v3.2.2 选项告诉 git 从 ESP-IDF 仓库中克隆与此版本的文档对应的分支版本,目前最新的稳定版本为 v3.2.2

下载需要一段时间,请耐心等待。我这边大概下载了 20 分钟。

接着开始设置 ESP-IDF 路径。工具链程序使用环境变量 IDF_PATH 来访问 ESP-IDF。这个变量应该设置在你的 PC 中,否则工程将不能编译。用户配置文件脚本存放在 D:/esp/msys32/etc/profile.d/ 目录中。每次打开 MSYS2 窗口时,系统都执行这些脚本。

D:/esp/msys32/etc/profile.d/ 目录下创建一个新的脚本文件。将其命名为 export_idf_path.sh

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第8张图片

然后确定 ESP-IDF 目录的路径,也就是我们刚才安装 ESP-IDF 的路径,此处为 D:\esp\esp-idf。在 export_idf_path.sh 脚本中加入 export 命令:

export IDF_PATH="D:/esp/esp-idf"

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第9张图片

然后保存并关闭该文件即可。

至此 ESP-IDF 所有准备工作就完成了。

下载 ESP HomeKit Demo 程序

ESP HomeKit Demo 程序是 GitHub 上的一位大神开源的,原地址为:https://github.com/maximkulkin/esp-homekit-demo

但是上面的教程写的比较简单,所以我就做了一下搬运。

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第10张图片

还记得前文在 MSYS2 的终端窗口下创建了一个 ~\esp 路径么?这个路径是一个相对路径,它是相对 msys2 目录而言的,这个目录的具体位置为:D:\esp\msys32\home\ironpanda\esp ,其中 ironpanda 是我的电脑用户名,每个人电脑用户名不一样。

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第11张图片

我们将把 ESP HomeKit Demo 例程下载到 ~\esp 这个目录中,在 MSYS2 的终端窗口运行一下命令:

cd ~/esp
git clone https://github.com/maximkulkin/esp-homekit-demo.git
cd esp-homekit-demo
git submodule update --init --recursive

然后进入 esp-homekit-demo 目录,复制一份 wifi.h.sample 文件,并将其修改为 wifi.h 文件。这个文件主要用于设置掌控板联网时的 WiFi 账号密码。

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第12张图片

打开 wifi.h 文件,修改为你自己的 WiFi 账号密码,如下图所示:

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第13张图片

至此,所有的准备工作都完成了,下面正式开始烧写程序。

快速入门:第一个掌控板 Siri 项目

在快速入门的第一个项目中,我们主要希望实现 Siri 可以控制掌控板上外接的 LED 灯模块。

硬件连接

这里我通过掌控扩展板连接外部的 LED 灯模块,扩展板随便选,可以用 DF 出的扩展板,也可以用掌控宝,此处绘制电路图时使用了 DF 出品的扩展板,如下图所示,我们将 LED 模块连接到扩展板的 P13 引脚。

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第14张图片

修改例程

在刚刚下载的 esp-homekit-demo 文件夹下,有一个 examples 文件,里面提供了非常多的可以与苹果 Homekit 交互的案例(也就是可以用 Siri 控制),我们在里面找到 esp32 文件夹,这个文件夹里面提供了 ESP32 相关的例程,可以适用于掌控板。

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第15张图片

我们打开 esp32 文件夹,注意到里面的 led 文件了么?这篇教程,我就将教大家上传这个程序,实现 Siri 控制 LED 灯亮灭的程序。当然学会这个后,控制家里的电灯也是一样的道理,加个继电器开关即可。

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第16张图片

我们进入这个文件夹,找到 led.c 文件,这里面编写的就是主要程序,用你熟练的文本编辑器或 IDE 打开它。具体的程序原理,这篇文章暂时就不讲了,涉及到比较多的内容,后面有时间慢慢讲,我们主要关注下面几个地方。

第一个地方是连接 LED 的 GPIO 引脚设置。注意这里是 GPIO 引脚编号,而不是掌控板上的 Px 引脚编号。

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第17张图片

由于我们前面电路连接的是掌控板 P13 引脚,查看掌控板 ESP32 的引脚定义,发现 P13 对应的 GPIO 编号是 IO18,所以修改程序中的 led_gpio = 18

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第18张图片

然后再来看一下设备设置信息。如下图所示,其中 1 和 2 是用于设置 HomeKit 外设参数的,包括名字、厂商、序列号、型号、固件号等,可以不用修改。3 是用来设置配对密码的,待会要将这个外设加入 iPhone 的“家庭”软件时会用到, 请记住配对密码!这两个地方修改完之后,程序就完成了。

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第19张图片

下面我们将进入程序编译以及上传环节。

上传程序

先用 USB 线将掌控板连上电脑,然后打开 MSYS2 的终端窗口,还记得在哪里打开么?忘了的话,往前翻一下。然后切换到 esp-homekit-demo 路径下

cd ~/esp/esp-homekit-demo/

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第20张图片

然后输入以下命令,并回车。menuconfig 命令主要用于对项目程序进行编译和上传设置:

make -C examples/esp32/led menuconfig

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第21张图片

输入上述命令后,会弹出 menuconfig 配置界面。

menuconfig 使用技巧:

  • 使用 up & down 组合键在菜单中上下移动
  • 使用 Enter 键进入一个子菜单,Escape 键退出子菜单或退出整个菜单
  • 输入 ? 查看帮助信息,Enter 键退出帮助屏幕
  • 使用空格键或 YN 键来使能 (Yes) 和禁止 (No) 带有复选框 “[*]” 的配置项
  • 当光标在某个配置项上面高亮时,输入 ? 可以直接查看该项的帮助信息
  • 输入 / 搜索配置项

我们主要修改其中的 Serial flasher config ,也就是上传程序的串口参数,如下图所示:

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第22张图片
掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第23张图片

将其中的 Default serial port 修改为掌控板连接电脑的端口号,如下图所示,然后保存退出即可。

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第24张图片

然后继续在 MSYS2 的终端窗口输入以下命令,对程序进行编译:

make -C examples/esp32/led all

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第25张图片

这个过程时间比较长,约 2 分钟左右,请耐心等待。编译完成后,如果程序没有错误,就会出现类似下图界面:

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第26张图片

接着擦除掌控板上原来已有的程序:

make -C examples/esp32/led erase_flash

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第27张图片

擦除程序过程中,出现 Connecting…… 时,注意要按一下掌控板上的 A 键 1 秒左右

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第28张图片

擦除完成后,如下图所示:

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第29张图片

接着正式开始上传刚刚修改的 led 程序,继续输入以下命令:

make -C examples/esp32/led flash

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第30张图片

上传程序过程中,出现 Connecting…… 时,同样也要按一下掌控板上的 A 键 1 秒左右

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第31张图片

上传完成后,你的程序就已经在掌控板里面了。在 MSYS2 的终端窗口输入以下命令:

make -C examples/esp32/led monitor

这个命令可以让我们类似串口助手一样,查看相应的调试信息,如下图所示:

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第32张图片

接下来就可以掏出你的 iPhone 或 iPad 进行配对啦。

配对 iPhone

首先找到 iPhone 上自带的家庭 App,我的手机系统是英文,可能显示稍有不同,大家对照图片即可。

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第33张图片

打开家庭 App,这是苹果生态系统里的智能家具控制程序,可以用 Siri 去控制接入其中的设备、查看传感器信息等。可以在家庭 App 主页上看到,我已经接入了一个 LED 灯(红灯)设备,下面我将教你如何接入另一个设备。

点击 App 右上角的 “+” 号,在弹出的选择按钮中选择 Add Accessory。

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第34张图片

点击箭头所指处,选择使用配对密码进行配对。

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第35张图片

可以看到有一个 LED-XXXX 的设备等待我们连接,点击选择:

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第36张图片

接下来会弹出警告提醒,不用管它,点击 Add Anyway,然后输入配对密码。还记得配对密码吗?忘了的话,回到程序中看看。

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第37张图片

输入配对密码之后,系统就会提示你设备添加成功。

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第38张图片

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第39张图片

为了方便记忆,我们可以修改设备默认的名字和所在房间的名称,比如我将 LED 名称修改为“蓝灯”,房间名称修改为“掌控板”。

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第40张图片

回到家庭 App 主页面,看到刚刚添加的“蓝灯”了么?

Hey Siri

接下来就尽情用 Siri 玩耍吧!

Siri 是支持自然语言识别的,如果你像我一样添加了多个设备,比如两盏灯,你就可以用语音命令控制两盏灯同时打开或关闭。比如:

  • Hey Siri,打开所有灯;
  • Hey Siri,关闭掌控板;
  • Hey Siri,打开红灯。

掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!_第41张图片

搞定!

你可能感兴趣的:(掌控板)