ESP-IDF
本章节包含以下部分,请按需阅读:
ESP-IDF 入门教程
初次接触 ESP32 ESP-IDF 开发,想要快速上手?我们为您准备了一套通用的 入门教程。
- 第0节 认识 ESP32
- 第1节 搭建环境
- 第2节 运行实例
- 第3节 创建项目
- 第4节 使用组件
- 第5节 调试程序
- 第6节 FreeRTOS
- 第7节 驱动外设
- 第8节 Wi-Fi 编程
- 第9节 BLE 编程
请注意:该教程使用 ESP32-S3-Zero 作为教学示例,所有硬件代码均基于其引脚布局。在动手实践前,建议您对照手中的开发板引脚图,确认引脚配置无误。
配置 ESP-IDF 开发环境
对于 ESP32-S3-LCD-1.85 开发板,需要使用 ESP-IDF V5.3.1 以上版本。
以下内容以 Windows 系统为例,使用 VS Code + ESP-IDF 扩展 的方式进行开发。Mac/Linux 用户请参考 官方说明。
此部分图示以安装 ESP-IDF V5.5.2 为例示范,安装时请选用与您开发板示例匹配的 ESP-IDF 版本。
安装 ESP-IDF 开发环境
-
前往 ESP-IDF Installation Manager 下载 ESP-IDF 安装管理器。这是乐鑫最新推出的跨平台安装工具,下文将演示如何使用其离线安装功能。
在页面中点击 Offline Installer 标签,然后在筛选栏中选择 Windows 操作系统和你需要的 ESP-IDF 版本(图示仅为参考,请以实际为准)。

确认选择无误后,点击下载按钮。浏览器将自动同时下载两个文件:一个是 ESP-IDF 离线整合包(.zst),另一个是 ESP-IDF 安装器(.exe)。

请耐心等待两个文件下载完成。
-
下载完成后,双击运行 ESP-IDF 安装器(eim-gui-windows-x64.exe)。
启动后,可在右上角将界面语言切换为中文。

安装工具会自动检测同一目录下是否存在离线整合包。点击 从存档安装。

接下来,选择安装路径。建议使用默认路径;若需自定义,请确保路径中不包含中文或空格。确认无误后,点击 开始安装。

-
当看到如下界面时,表示 ESP-IDF 已安装成功。

-
建议同时安装驱动程序。点击 完成安装,然后点击 安装驱动程序。

安装 Visual Studio Code 与 ESP-IDF 扩展
-
下载并安装 Visual Studio Code。
-
安装时建议勾选 通过 Code 打开操作添加到 Windows 资源管理器文件上下文菜单,以便快速打开项目文件夹。
-
在 VS Code 中,点击侧边活动栏中的
扩展图标(或使用快捷键 Ctrl + Shift + X)打开 扩展 视图。
-
在搜索框中输入 ESP-IDF,找到 ESP-IDF 扩展并点击安装。

-
当 ESP-IDF 扩展版本 ≥ 2.0 时,扩展会自动检测并识别上述步骤中安装的 ESP-IDF 环境,无需手动配置。
示例程序

ESP32-S3-LCD-1.85 示例程序
| 示例程序 | 基础例程说明 |
|---|---|
| ESP32-S3-LCD-1.85-Test | 测试板载设备功能 |
ESP32-S3-LCD-1.85-Test
【程序说明】
- 本示例演示了板载各个设备的功能,页面一显示 SD Card,Flash Size,Battery Voltage 等参数,页面二为音乐播放界面;另外,此示例增加语音识别功能。
【硬件连接】
- 将 SD 卡插入开发板中
- 将喇叭与开发板连接
- 将开发板接入电脑

【代码分析】
- MIC_Speech_init()
- 该函数主要用于初始化语音识别模块。首先设置初始状态,接着初始化 I2S 接口以接收麦克风音频数据。然后配置 AFE(音频前端处理)模块参数,并创建 AFE 数据实例。最后创建两个任务,一个负责音频数据读取和处理(
feed_handler),另一个负责语音命令检测和识别(detect_hander)
- 该函数主要用于初始化语音识别模块。首先设置初始状态,接着初始化 I2S 接口以接收麦克风音频数据。然后配置 AFE(音频前端处理)模块参数,并创建 AFE 数据实例。最后创建两个任务,一个负责音频数据读取和处理(
- detect_hander()
- 此函数在独立任务中运行,处理 AFE 模块输出结果以检测语音命令。它根据配置确定多网络模型,打印活动语音命令。在循环中,不断从 AFE 模块获取结果,根据不同唤醒状态和多网络检测状态进行处理,如检测到唤醒词时进行相应操作,检测到语音命令时设置命令状态和调整 LCD 背光等。任务结束时销毁多网络模型实例释放资源
【运行效果】
- LCD 屏幕显示参数说明
| 参数 | 功能 | 说明 |
|---|---|---|
| SD Card | 显示 SD 卡的大小 | 连接 SD 卡,若识别失败请将 SD 卡格式化为 FAT32 格式(首次识别失败请等待一会后复位下再查看) |
| Flash Size | 显示 Flash 大小 | 当前板载 16MB Flash |
| Battery Voltage | 电池电压 | 连接电池时可检测到电池电压 |
| Angular deflection | 显示板子角度偏移 | 显示三个方向的偏移 |
| RTC Time | 显示 RTC 时间 | 显示当前 RTC 时间 RTC 时间与当前时间不一致,是因为掉电状态下并不能留存数据,如需要保持 RTC 时间正常,则需连接 RTC 电池并更新 RTC 时间 |
| Wireless scan | 显示扫描到的 WIFI 个数 | 扫描结束会在末尾显示 Scan Finish |
| Backlight brightness | 亮度滑动条 | 调节屏幕亮度 |
- 页面 2 为播放 SD 卡根目录下的 mp3 音频的 UI 页面
- 本示例可以通过 BOOT 按键与 PWR 按键进行部件选择,以模拟触摸功能,同时按下这两个按键则表示确定按下
- 本程序默认启用语音识别,唤醒词为 “hi esp”,唤醒后,背光变暗后即可说出指令(背光未变暗则表示未被唤醒,识别要求较为严格,发音需要标准,语速放缓)
- 以下提供几种格式的 MIC 测试音频(请注意,每次 hi esp 唤醒失败的话请重新将音频调至该次唤醒词播放处重新播放)
- 请不要在使用喇叭播放音频时进行语音识别
- 测试音频中之所以播放两次唤醒词,是由于当前固件版本首次唤醒需要聚焦设备(比喻),并且当前固件并不允许关闭该功能
// 指令
Turn on the backlight
Turn off the backlight
Backlight is brightest
Backlight is darkest
切换为中/英文识别模型
环境初始状态默认为英文识别环境,按照以下步骤可切换为中文识别模型或英文识别模型
【切换为中/英文识别模型】
- 删除工程中的两个文件
- 进入文件 sdkconfig.defaults,找到此处。
- 使用 "#" 注释①处则切换为英文识别模型
- 使用 "#" 注释②处则切换为中文识别模型

生成语音控制指令
环境准备
- 检查电脑是否有 Python 环境
- 打开命令行:win+r ->输入 cmd
- ①. 输入
python --version出现 Python 版本号,则表示已安装 - ②. 输入
where python查看 Python 安装位置- C 盘下的 Python 环境为安装 VS Code 时自动安装的 Python 环境
- E 盘下是以下步骤用到的 Python 环境
若没有安装环境请查看 python 环境安装教程,已安装请继续
- 命令行输入
pip install g2p_en安装 g2p_en 包 - 安装 资源包 放在对应用户的
C:\Users\用户名\AppData\Roaming路径下,双击解压文件 - 命令行输入
pip install pypinyin安装 pypinyin 库
生成中文拼音
- 下载 中文指令生成文件
- 命令行切换路径至中文指令生成文件夹下(路径因人而异,以下仅参考)
cd /d E:\download\Generate_Chinese_command
-
命令行执行
multinet_pinyin.py生成中文拼音python multinet_pinyin.py "要转为拼音的中文"例:
python multinet_pinyin.py "你好微雪电子"
生成英文音素
-
下载 英文指令生成文件
-
命令行切换路径至英文指令生成文件夹下(路径因人而异,以下仅参考)
cd /d E:\download\Generate_English_command -
命令行执行 gen_sr_commands.py 生成音素指令
python gen_sr_commands.py "要转为音素的英文"例:
python gen_sr_commands.py "hello waveshare"
指令修改
-
Arduino 下

-
ESP-IDF 下
- 中文指令

- 英文指令
