导语:
有没有想过,不用手机、不用按键,只要说一句话,就能让 ESP32 开灯、关灯、控制设备?今天给大家分享一个非常有意思的方案:语音控制 ESP32。借助“天问”软件和语音助手模块,配合 MicroPython,几分钟就能做出一个能听懂人话的智能设备。
一、运行效果
先来看实际效果:对着语音模块说“开灯”,ESP32 控制的小灯就会亮起;说“关灯”,灯就会熄灭。整个过程响应迅速,识别准确,非常适合做智能家居、语音交互类的小项目。
【此处插入图片 1:运行效果图】
图片内容:语音控制 ESP32 的实际运行效果,可以是开灯/关灯的前后对比,或者演示视频截图
二、整体流程介绍
整个项目并不复杂,核心思路是:语音模块负责“听”,ESP32 负责“做”。语音模块识别到指令后,通过串口把指令发给 ESP32,ESP32 再执行相应的动作。

三、实现功能流程
大体流程如下:
下面一步步来。
四、实现功能
4.1 使用“天问”软件,编译一个固件
4.1.1 首先下载
下载地址:
http://www.twen51.com/new/twen51/art_show.php?id=230

4.1.2 安装
这个与平时软件安装一样,不多介绍。
4.1.3 运行后的效果
安装完成后,打开软件,界面如下:

4.1.4 连接语音模块
使用 USB 数据线将语音模块与电脑相连。如果电脑没有安装驱动,看下面的图示:

4.1.5 选择模板
在软件中选择合适的模板:


4.1.6 配置
根据自己的需求进行配置:

4.1.7 生成模型
其实就是将我们设定的文字,转换成 mp3 文件,以及对应的语音模块需要识别的特殊文件(注意这个需要联网)。

如果未登录,需要先登录;如果未注册,先注册。


4.2 将固件烧录到语音助手模块中
生成完成后,把固件烧录到语音助手模块中:



4.3 使用 逗脑IDE 编写 MicroPython 代码
烧录完成后,在 逗脑 中编写 ESP32 的 MicroPython 代码:
from machine import UART, Pin
import time
p2 = Pin(2, Pin.OUT)
uart = UART(2, 115200)
while True:
data = uart.read()
if data:
print("收到的数据", data)
if data == b"light on\\r\\n":
print("开灯")
p2.value(1)
elif data == b"light off\\r\\n":
print("关灯")
p2.value(0)
time.sleep(1)
这段代码的逻辑很简单:ESP32 通过串口 2 接收语音模块发来的数据,如果收到 light on 就开灯,收到 light off 就关灯。
4.4 使用杜邦线连接语音模块与 ESP32 模块
按照下面的接线方式,用杜邦线把语音模块和 ESP32 连接起来:

4.5 通电测试
连接完成后,通电测试:


【此处插入图片 17:通电测试效果图 2】
图片内容:语音控制开灯/关灯的实际效果
对应原文图片名:image-20240326121556515
五、小结
语音控制 ESP32 是一个非常实用又有趣的项目:
- 用“天问”软件快速生成语音固件
- 烧录到语音助手模块,即插即用
- 用 MicroPython 编写简单的串口控制代码
- 杜邦线连接,通电即可测试
- 适合智能家居、语音交互、创客项目
如果你也想让 ESP32“听懂人话”,不妨试试这个方案。硬件不复杂,代码也不难,动手就能做出效果。

网硕互联帮助中心





评论前必须登录!
注册