11623| 21
|
[高级教程] 铁熊玩创客 | 学会掌控板 + Siri 语音控制,只要半小时! |
话不多说,先上效果演示视频: # 前言 # 前段时间,我在公众号上面发了一篇文章:掌控板 V1.1 语音识别初体验 在这篇文章中,我使用了还处于测试阶段的掌控板 V1.1 写了一篇语音识别的教程。好多老师看了后,都迫不及待想要玩一下掌控板语音识别功能,但无奈掌控板目前在售的最新版本(V1.0.1)还不支持这个功能,只能作罢。而且从我测试的结果来看,目前掌控板语音识别效果不是很理想。 于是我就想,还有没有其他方案可以做到语音识别呢? 看着手里的 iPhone,是时候轮到人工智障 Siri 上场了! 可是怎么做才可以让 Siri 完成智能家居的控制呢?可能很多人会说,加一个 Raspberry Pi (树莓派),在上面运行 Home Assistant 框架,变成智能家居网关,然后再用掌控板(ESP32)做外设,就可以实现了 DIY 的 Siri 语音控制智能家居方案了。 的确,我们可以用这种方法去实现很复杂的智能家居控制系统,而且我之前就利用过 Home Assistant 框架、树莓派和 ESP8266 做过智能家居系统,具体教程可以查看:
以下是这个方案的演示视频: 既然掌控板的主控芯片是 ESP32,而 ESP32 又是 ESP8266 的升级版,那么 ESP32 当然也同样可以接入 Home Assistant 系统。随着时间的推移,Home Assistant 系统也有了很多升级,功能也越来越全面,大家可以自行去尝试学习下这种方法。 Home Assistant 虽然是一个很强大的框架,但是如果我们只是做一些简单的灯光控制,而且还要用到树莓派,未免有点大材小用了。 所以这篇教程用的却是另一种方法,我们让掌控板或 ESP32 不用树莓派就可以直连 IPhone 上的 Siri。 具体怎么做呢?请继续往下看。 重要的事情说三遍: 以下教程基于 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的优秀参考。 如果你只想看精简版的,请继续往下看。你需要准备:
## 安装 Git 环境 首先你需要安装 Git 环境。Git 是做什么的呢?说的简单点,就是快速从 GitHub 下载代码的工具。安装方案很简单,从 Git 官网(https://git-scm.com/)下载最新的安装包,然后双击打开 exe 安装文件,一路 Next 就行。 ## 设置 ESP32 工具链 快速设置的方法是从 dl.espressif.com 下载集成在一起的工具链和 MSYS2 压缩文件。下载链接为: https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20181001.zip 将 zip 压缩文件解压到 `C:\` (或其它路径,我边边是 `D:\esp`),它会使用预先准备的环境创建一个 `msys32` 目录,如下图所示: 然后打开 `D:\esp\msys32\mingw32.exe` 程序,这将会打开一个 MSYS2 的终端窗口,该窗口的环境是一个 bash shell。后面会多次用到这个程序,请一定要记住!后面会多次用到这个程序,请一定要记住!后面会多次用到这个程序,请一定要记住! 运行如下命令,创建一个 `esp` 目录作为开发掌控板(ESP32) 应用的默认地址: [mw_shl_code=bash,true]mkdir -p ~/esp[/mw_shl_code] 输入 `cd ~/esp` 就进入到新创建的目录。如果没有错误信息出现则表明此步骤已完成。 [mw_shl_code=bash,true]cd ~/esp[/mw_shl_code] 请不要关闭这个窗口,后续步骤将会使用这个窗口来为掌控板(ESP32)设置开发环境。 ## 下载 ESP-IDF 框架 工具链安装完后,你还需要 ESP32 相关的 API 库。API 库在 [ESP-IDF 仓库](https://github.com/espressif/esp-idf) 中。 继续在 MSYS2 的终端窗口中输入以下命令,使用 `git clone` 命令克隆(下载) ESP-IDF 远程仓库: [mw_shl_code=bash,true]cd D:\esp git clone -b v3.2.2 --recursive https://github.com/espressif/esp-idf.git[/mw_shl_code] 该命令首先切换到 `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`。 然后确定 ESP-IDF 目录的路径,也就是我们刚才安装 ESP-IDF 的路径,此处为 `D:\esp\esp-idf`。在 `export_idf_path.sh` 脚本中加入 `export` 命令: [mw_shl_code=bash,true]export IDF_PATH="D:/esp/esp-idf"[/mw_shl_code] 然后保存并关闭该文件即可。 至此 ESP-IDF 所有准备工作就完成了。 ## 下载 ESP HomeKit Demo 程序 ESP HomeKit Demo 程序是 GitHub 上的一位大神开源的,原地址为:https://github.com/maximkulkin/esp-homekit-demo 但是上面的教程写的比较简单,所以我就做了一下搬运。 还记得前文在 MSYS2 的终端窗口下创建了一个 `~\esp` 路径么?这个路径是一个相对路径,它是相对 `msys2` 目录而言的,这个目录的具体位置为:`D:\esp\msys32\home\ironpanda\esp` ,其中 `ironpanda` 是我的电脑用户名,每个人电脑用户名不一样。 我们将把 ESP HomeKit Demo 例程下载到 `~\esp` 这个目录中,在 MSYS2 的终端窗口运行一下命令: [mw_shl_code=bash,true]cd ~/esp git clone https://github.com/maximkulkin/esp-homekit-demo.git cd esp-homekit-demo git submodule update --init --recursive[/mw_shl_code] 然后进入 `esp-homekit-demo` 目录,复制一份 `wifi.h.sample` 文件,并将其修改为 `wifi.h` 文件。这个文件主要用于设置掌控板联网时的 WiFi 账号密码。 打开 `wifi.h` 文件,修改为你自己的 WiFi 账号密码,如下图所示: 至此,所有的准备工作都完成了,下面正式开始烧写程序。 # 快速入门:第一个掌控板 Siri 项目 # 在快速入门的第一个项目中,我们主要希望实现 Siri 可以控制掌控板上外接的 LED 灯模块。 ## 硬件连接 这里我通过掌控扩展板连接外部的 LED 灯模块,扩展板随便选,可以用 DF 出的扩展板,也可以用掌控宝,此处绘制电路图时使用了 DF 出品的扩展板,如下图所示,我们将 LED 模块连接到扩展板的 P13 引脚。 ## 修改例程 在刚刚下载的 `esp-homekit-demo` 文件夹下,有一个 `examples` 文件,里面提供了非常多的可以与苹果 Homekit 交互的案例(也就是可以用 Siri 控制),我们在里面找到 `esp32` 文件夹,这个文件夹里面提供了 ESP32 相关的例程,可以适用于掌控板。 我们打开 `esp32` 文件夹,注意到里面的 `led` 文件了么?这篇教程,我就将教大家上传这个程序,实现 Siri 控制 LED 灯亮灭的程序。当然学会这个后,控制家里的电灯也是一样的道理,加个继电器开关即可。 我们进入这个文件夹,找到 `led.c` 文件,这里面编写的就是主要程序,用你熟练的文本编辑器或 IDE 打开它。具体的程序原理,这篇文章暂时就不讲了,涉及到比较多的内容,后面有时间慢慢讲,我们主要关注下面几个地方。 第一个地方是连接 LED 的 GPIO 引脚设置。注意这里是 GPIO 引脚编号,而不是掌控板上的 Px 引脚编号。 由于我们前面电路连接的是掌控板 P13 引脚,查看掌控板 ESP32 的引脚定义,发现 P13 对应的 GPIO 编号是 IO18,所以修改程序中的 `led_gpio = 18`。 然后再来看一下设备设置信息。如下图所示,其中 1 和 2 是用于设置 HomeKit 外设参数的,包括名字、厂商、序列号、型号、固件号等,可以不用修改。3 是用来设置**配对密码**的,待会要将这个外设加入 iPhone 的“家庭”软件时会用到, **请记住配对密码**!这两个地方修改完之后,程序就完成了。 下面我们将进入程序编译以及上传环节。 ## 上传程序 **先用 USB 线将掌控板连上电脑**,然后打开 MSYS2 的终端窗口,还记得在哪里打开么?忘了的话,往前翻一下。然后切换到 `esp-homekit-demo` 路径下 [mw_shl_code=bash,true]cd ~/esp/esp-homekit-demo/[/mw_shl_code] 然后输入以下命令,并回车。`menuconfig` 命令主要用于对项目程序进行编译和上传设置: [mw_shl_code=bash,true]make -C examples/esp32/led menuconfig[/mw_shl_code] 输入上述命令后,会弹出 `menuconfig` 配置界面。 > menuconfig 使用技巧: > > - 使用 up & down 组合键在菜单中上下移动 > - 使用 Enter 键进入一个子菜单,Escape 键退出子菜单或退出整个菜单 > - 输入 `?` 查看帮助信息,Enter 键退出帮助屏幕 > - 使用空格键或 `Y` 和 `N` 键来使能 (Yes) 和禁止 (No) 带有复选框 “``” 的配置项 > - 当光标在某个配置项上面高亮时,输入 `?` 可以直接查看该项的帮助信息 > - 输入 `/` 搜索配置项 我们主要修改其中的 `Serial flasher config` ,也就是上传程序的串口参数,如下图所示: 将其中的 `Default serial port` 修改为掌控板连接电脑的端口号,如下图所示,然后保存退出即可。 然后继续在 MSYS2 的终端窗口输入以下命令,对程序进行编译: [mw_shl_code=bash,true]make -C examples/esp32/led all[/mw_shl_code] 这个过程时间比较长,约 2 分钟左右,请耐心等待。编译完成后,如果程序没有错误,就会出现类似下图界面: 接着擦除掌控板上原来已有的程序: [mw_shl_code=bash,true]make -C examples/esp32/led erase_flash[/mw_shl_code] **擦除程序过程中,出现 Connecting…… 时,注意要按一下掌控板上的 A 键 1 秒左右**。 擦除完成后,如下图所示: 接着正式开始上传刚刚修改的 led 程序,继续输入以下命令: [mw_shl_code=bash,true]make -C examples/esp32/led flash[/mw_shl_code] **上传程序过程中,出现 Connecting…… 时,同样也要按一下掌控板上的 A 键 1 秒左右**。 上传完成后,你的程序就已经在掌控板里面了。在 MSYS2 的终端窗口输入以下命令: [mw_shl_code=bash,true]make -C examples/esp32/led monitor[/mw_shl_code] 这个命令可以让我们类似串口助手一样,查看相应的调试信息,如下图所示: 接下来就可以掏出你的 iPhone 或 iPad 进行配对啦。 # 配对 iPhone # 首先找到 iPhone 上自带的**家庭 App**,我的手机系统是英文,可能显示稍有不同,大家对照图片即可。 打开**家庭 App**,这是苹果生态系统里的智能家具控制程序,可以用 Siri 去控制接入其中的设备、查看传感器信息等。可以在家庭 App 主页上看到,我已经接入了一个 LED 灯(红灯)设备,下面我将教你如何接入另一个设备。 点击 App 右上角的 “**+**” 号,在弹出的选择按钮中选择 Add Accessory。 点击箭头所指处,选择使用配对密码进行配对。 可以看到有一个 LED-XXXX 的设备等待我们连接,点击选择: 接下来会弹出警告提醒,不用管它,点击 Add Anyway,然后输入配对密码。还记得配对密码吗?忘了的话,回到程序中看看。 输入配对密码之后,系统就会提示你设备添加成功。 为了方便记忆,我们可以修改设备默认的名字和所在房间的名称,比如我将 LED 名称修改为“蓝灯”,房间名称修改为“掌控板”。 回到家庭 App 主页面,看到刚刚添加的“蓝灯”了么? # Hey Siri # 接下来就尽情用 Siri 玩耍吧! Siri 是支持自然语言识别的,如果你像我一样添加了多个设备,比如两盏灯,你就可以用语音命令控制两盏灯同时打开或关闭。比如: - Hey Siri,打开所有灯; - Hey Siri,关闭掌控板; - Hey Siri,打开红灯。 搞定! # 广告时间 # 最后再打个小广告:欢迎关注我的个人公众号“铁熊玩创客”,不 kan 定 xin 期 qing 更新创客制作、技术教程以及一些胡言乱语。 # 往期作品 # ## 创客技巧 - 创客项目缺少高颜值电路图?看这里就对了:https://mc.dfrobot.com.cn/thread-289862-1-1.html - 小白也能学会的激光切割创意盒子设计方法:https://mc.dfrobot.com.cn/thread-276550-1-1.html ## 桌面机器人 - 桌面萌宠 Pando,这个机器人靠卖萌为生好多年:https://mc.dfrobot.com.cn/thread-35162-1-1.html - 桌面萌宠 Pandy,谁说智能车不能卖萌:https://mc.dfrobot.com.cn/thread-36721-1-1.html - 吃货战车:谁说泡面只能用来填肚子:https://mc.dfrobot.com.cn/thread-34679-1-1.html - 纯野生黑科技,分分钟教你自制最skr全向麦熊小车:https://mc.dfrobot.com.cn/thread-268968-1-1.html - 不会垃圾分类?教你制作一个瓦力机器人来帮你:https://mc.dfrobot.com.cn/thread-296340-1-1.html ## 智能家居 - Hey Siri, 打开 HAY 旋转灯:https://mc.dfrobot.com.cn/thread-26865-1-1.html - Hey Siri,请告诉我传感器数据:https://mc.dfrobot.com.cn/thread-28859-1-1.html ## 创意生活 - HAY,你好 ── DIY HAY旋转灯:https://mc.dfrobot.com.cn/thread-26212-1-1.html - DIY 你的专属酷炫照片投影灯:https://mc.dfrobot.com.cn/thread-26900-1-1.html - 好色灯:你们吸猫,我吸色:https://mc.dfrobot.com.cn/thread-34483-1-1.html - DIY 你的专属酷炫照片投影灯:https://mc.dfrobot.com.cn/thread-26900-1-1.html - 没有什么问题是猜拳不能解决的:https://mc.dfrobot.com.cn/thread-38060-1-1.html - 律动头饰皇冠:每个女孩心中都有一个公主梦:https://mc.dfrobot.com.cn/thread-267927-1-1.html ## 学生作品 - 陈朔:戒烟帽:https://mc.dfrobot.com.cn/thread-280204-1-1.html - 梁立昊:体感骑行安全帽:https://mc.dfrobot.com.cn/thread-280093-1-1.html ## HCRbot 机器人(SLAM) - HCRbot 系列 1──HCRbot 机器人简介:https://mc.dfrobot.com.cn/thread-26938-1-1.html - HCRbot 系列 2──HCRbot 硬件介绍与设置:https://mc.dfrobot.com.cn/thread-26939-1-1.html - HCRbot 系列 3──HCRbot 上位机 PC 端软件设置:https://mc.dfrobot.com.cn/thread-26975-1-1.html - HCRbot 系列 4──HCRbot下位机设置(树莓派版):https://mc.dfrobot.com.cn/thread-27020-1-1.html - HCRbot 系列 5──HCRbot下位机设置(Odroid XU4版):https://mc.dfrobot.com.cn/thread-27161-1-1.html - HCRbot 系列 6──HCRbot 底层驱动 OpenCR 设置:https://mc.dfrobot.com.cn/thread-27296-1-1.html - HCRbot 系列 7──启动 HCRbot 机器人:https://mc.dfrobot.com.cn/thread-28248-1-1.html - HCRbot 系列 8──远程控制 HCRbot 机器人:https://mc.dfrobot.com.cn/thread-29354-1-1.html - HCRbot 系列 9──控制 HCRbot 机器人绘制平面地图(SLAM):https://mc.dfrobot.com.cn/thread-29936-1-1.html ## 掌控板 - 让掌控板像 Mixly 串口监视器一样绘图:https://mc.dfrobot.com.cn/thread-288929-1-1.html - 掌控超声波传感器?可能没你想的那么简单:https://mc.dfrobot.com.cn/thread-296500-1-1.html - 首发测评 | 掌控板 V1.1 测试版语音识别初体验:https://mc.dfrobot.com.cn/thread-296662-1-1.html |
digi_cow 发表于 2019-8-20 10:45 用markdown写文档的时候,用第三方图床,比如七牛云、SM.MS图床、聚合图床等。写完之后,在支持markdown的地方直接粘贴就好,每个平台会自动从图床链接下载,然后把图片上传到自己的平台。然后在不同的平台排版时,稍微做一些小调整就行。 我一般都是在本地写好markdown文件,然后就可以在DF社区、微信、知乎、CSDN、简书等平台上粘贴了。不然每个平台都排版一遍,会累死的。 |
# make -C examples/esp32/led menuconfig make: 进入目录“/home/Administrator/esp/esp-homekit-demo/examples/esp32/led” Makefile:9: /make/project.mk: No such file or directory make: *** 没有规则可制作目标“/make/project.mk”。 停止。 make: 离开目录“/home/Administrator/esp/esp-homekit-demo/examples/esp32/led” 请问这个是怎么回事 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed