跳到主要内容

ESP-IDF

本章节包含以下部分,请按需阅读:

ESP-IDF 入门教程

初次接触 ESP32 ESP-IDF 开发,想要快速上手?我们为您准备了一套通用的 入门教程

请注意:该教程使用 ESP32-S3-Zero 作为教学示例,所有硬件代码均基于其引脚布局。在动手实践前,建议您对照手中的开发板引脚图,确认引脚配置无误。

配置 ESP-IDF 开发环境

信息

对于 ESP32-S3-CAM-OVxxxx 开发板,需要使用 ESP-IDF V5.5.1 以上版本。

备注

以下内容以 Windows 系统为例,使用 VS Code + ESP-IDF 扩展 的方式进行开发。Mac/Linux 用户请参考 官方说明

安装 ESP-IDF 开发环境

  1. 前往 ESP-IDF Installation Manager 下载 ESP-IDF 安装管理器。这是乐鑫最新推出的跨平台安装工具,下文将演示如何使用其离线安装功能。

    在页面中点击 Offline Installer 标签,然后在筛选栏中选择 Windows 操作系统和你要安装的版本。

    下载 EIM 和整合包

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

    下载 EIM 和整合包2

    请耐心等待两个文件下载完成。

  2. 下载完成后,双击运行 ESP-IDF 安装器(eim-gui-windows-x64.exe)

    启动后,可在右上角将界面语言切换为中文。

    切换 EIM 语言

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

    自动检测整合包

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

    选择安装路径
  3. 当看到如下界面时,表示 ESP-IDF 已安装成功。

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

    用 ESP-IDF 安装管理器安装驱动

安装 Visual Studio Code 与 ESP-IDF 扩展

  1. 下载并安装 Visual Studio Code

  2. 安装时建议勾选 通过 Code 打开操作添加到 Windows 资源管理器文件上下文菜单,以便快速打开项目文件夹。

  3. 在 VS Code 中,点击侧边活动栏中的 扩展图标 扩展图标(或使用快捷键 Ctrl + Shift + X)打开 扩展 视图。

  4. 在搜索框中输入 ESP-IDF,找到 ESP-IDF 扩展并点击安装。

    在 VS Code 中搜索并安装 ESP-IDF 扩展

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

示例程序

ESP-IDF 示例程序位于 示例程序包ESP-IDF 目录中。

示例程序基础例程说明
01_simple_video_server在局域网络上使用不同端口创建多个 HTTP 服务器,通过网页浏览器访问,提供视频流功能
02_esp_sr通过 ESP-SR 组件演示语音识别及语音唤醒功能
03_audio_play此示例扫描 TF 卡,并播放 MP3
04_dvp_camera_display此示例展示摄像头画面推流到 LCD 屏幕并显示
05_lvgl_brookesia通过 brookesia 组件展示 LVGL APP 风格 UI
06_usb_host_uvc模拟 UVC 设备,演示 USB 摄像头功能

01_simple_video_server

程序说明

  • 本示例演示创建 HTTP 服务器,通过浏览器访问,获取视频流的功能

硬件连接

  • 将开发板接入电脑
  • 摄像头:支持 GC0308,GC2145,OV5640,OV3660

代码分析

  • example_connect():初始化 WIFI 连接
    • 在 menuconfig 配置中设置 ssid 和 password
    • 默认 ssid:WSTEST
    • 默认 password:waveshare0755
  • start_cam_web_server():初始化 http 服务器和初始化摄像头
    • 先初始化摄像头,如果检测到不支持的摄像头或者格式会提示错误并退出
    • 等待摄像头初始化成功,再初始化 http 服务器

运行效果

  • 此示例不会点亮屏幕
  • 需要查看串口监视器打印出的 IP 地址
  • 用浏览器打开 IP 地址,注意需要在同一局域网下

02_esp_sr

程序说明

  • 本示例使用 ESP-SR 组件演示离线语音唤醒和语音识别效果

硬件连接

  • 将开发板接入电脑
  • 请勿遮挡麦克风

代码分析

  • Speech_Init():初始化麦克风以及创建识别任务
    • 通过bsp_audio_codec_microphone_init()返回麦克风控制句柄
    • 创建数据读取和检测识别任务
  • Speech_register_callback():注册识别事件回调函数
    • 可以在回调函数中获取事件

运行效果

  • 此示例不会点亮屏幕
  • 在串口监视器中查看语音唤醒及识别结果

03_audio_play

程序说明

  • 本示例展示播放 TF 中的 MP3 音频文件

硬件连接

  • 插入内存卡,需要在根目录中放置 MP3 文件
  • 插入喇叭
  • 将开发板接入电脑

代码分析

  • bsp_io_expander_init();():初始化外部扩展 IO
    • 初始化 PA 控制脚控制音频输出
  • bsp_sdcard_mount():挂载 TF 卡
  • Search_Music():搜索并保存 TF 卡内的 MP3 文件路径
  • Audio_Play_Init():初始化音频播放器
  • Volume_Adjustment():设置音量大小
  • Audio_Play_Music():播放 MP3

运行效果

  • 此示例不会点亮屏幕
  • 运行后会自动搜索 TF 卡内的 MP3 文件并播放

04_dvp_camera_display

程序说明

  • 本示例为 app 风格 UI+摄像头例程,点击摄像头 APP 即可屏幕上显示图像

硬件连接

  • 接入 DVP 摄像头:支持 GC0308,GC2145,OV5640,OV3660
  • 接入屏幕,支持 1.83,2inch,2.8inch,3.5inch
  • 将开发板接入电脑

代码分析

  • bsp_display_start():BSP 初始化显示相关资源
    • 初始化 LCD 屏幕
    • 初始化 LVGL
  • bsp_display_backlight_on():打开背光
  • new ESP_Brookesia_Phone(disp):初始化 Brookesia 组件
  • new PhoneCameraConf(1,0);:安装摄像头 APP

运行效果

  • 点击摄像头 APP 图标,屏幕开始显示摄像头图像,点击屏幕任意位置即可返回摄像头设置界面

05_lvgl_brookesia

程序说明

  • 本示例展示完整手机风格 UI 系统,包含状态栏、导航栏、应用启动器和手势交互等组件

硬件连接

代码分析

  • bsp_display_start():BSP 初始化显示相关资源
    • 初始化 LCD 屏幕
    • 初始化 LVGL

运行效果

-展示效果为 2inch 屏幕

06_usb_host_uvc

程序说明

  • 本示例为模拟 UVC 设备,演示 USB 摄像头功能

硬件连接

  • 接入 DVP 摄像头:支持 OV5640,OV3660
  • 将开发板接入电脑

代码分析

  • uvc_device_config()配置 UVC 设备相关接口函数
  • uvc_device_init():开始初始化 UVC 设备

运行效果

  • 在电脑中打开相机功能即可看到画面,略有延迟,可稍微等待或者重新上电
  • 此例程会占用 USB 烧录接口,再次烧录程序时需要按住 BOOT 按键进入下载模式