1. ESP-IDF简介

ESP-IDF(Espressif IoT Development Framework)是乐鑫信息科技(Espressif)为其 ESP32、ESP32-S 系列、ESP32-C 系列、ESP32-H 系列、ESP32-P 系列等芯片打造的官方开发框架。它是基于 C/C++ 的开源软件开发工具集,为开发者提供了从底层硬件驱动到上层应用开发的完整支持,是开发 ESP 系列芯片应用的核心工具。

2. ESP-IDF环境安装

  1. 下载ESP-IDF 工具安装器,建议选择离线安装。
    离线安装:离线安装程序不需要任何网络连接,一个安装包只能对应一个IDF版本,安装速度会慢一些,但是成功率更高。
    在线安装:在线安装程序非常小,可以安装 ESP-IDF 的所有版本,在安装过程中只下载必要的依赖文件,但是需要稳定的网络支持,如果网络不佳,可能会导致安装失败。

2.1 离线安装

  1. 下载成功后通过鼠标右键选择【以管理员身份运行】安装程序
  2. 选择安装时使用的语言 -> 同意许可协议
  3. 在环境验证页面如果出现"启用长路径" [异常],则点击【应用修复】。若未出现异常则点击【下一步】

  1. 选择需要安装位置(由于组件较大,建议安装C盘外的存储),点击【下一步】
  2. 选择需要安装的组件(部分芯片默认没有勾选,建议进行检查),点击【下一步】

  1. 确认安装信息无误后,点击【安装】
  2. 安装完成后点击【完成】,即可运行ESP-IDF PowerShell和ESP-IDF CMD

2.2 在线安装

  1. 下载成功后通过鼠标右键选择【以管理员身份运行】安装程序
  2. 选择安装时使用的语言 -> 同意许可协议
  3. 在环境验证页面如果出现"启用长路径" [异常],则点击【应用修复】。若未出现异常则点击【下一步】

  1. 选择【下载ESP-IDF】,点击【下一步】

  1. 选择需要安装的ESP-IDF版本,以及安装目录(由于组件较大,建议安装C盘外的存储)

  1. 选择ESP-IDF Tools安装目录,点击【下一步】
  2. 选择需要安装的组件(部分芯片默认没有勾选,建议进行检查),点击【下一步】

  1. 确认安装信息,点击【安装】
  2. 安装完成后点击【完成】,即可运行ESP-IDF PowerShell和ESP-IDF CMD

3. ESP-IDF常用命令

3.1 编译烧录流程及示例

编译烧录一个项目代码的过程通常为:
进入项目文件夹 -> 设置芯片型号 -> 配置工程(可选) -> 编译工程 -> 烧录代码。
下面将演示如何编译烧录“hello_world”示例

  1. 打开ESP-IDF CMD
  2. 找到ESP-IDF安装目录中找到hello_world文件夹,并通过cd命令进入
# 请修改项目路径
cd H:\IDFD\Espressif\frameworks\esp-idf-v5.5\examples\get-started\hello_world
  1. 设置芯片型号
#设置芯片型号为ESP32-S3
idf.py set-target esp32s3  
  1. 编译项目
# 编译项目
idf.py build
  1. 烧录代码并打开串口监视
# 烧录代码
idf.py flash monitor

3.2 常用命令

# 进入文件夹
cd xxxx
# 返回上一级目录
cd ..
# 当时当前目录下文件夹及文件
dir

# 设置目标ESP32芯片型号
idf.py set-target esp32           #设置芯片型号为ESP32
idf.py set-target esp32s3         #设置芯片型号为ESP32-S3
# 进入工程配置
idf.py menuconfig
# 编译工程
idf.py build
# 烧录工程
idf.py flash                      #尝试使用可用的串口烧录工程
idf.py -p PORT flash              #指定串口烧录工程(需将PORT 替换为 ESP32 开发板的串口名称)
idf.py flash monitor              #尝试使用可用的串口烧录工程,并通过串口打印
idf.py -p PORT flash monitor      #指定串口烧录工程,并通过串口打印
# 清除编译生成的文件
idf.py clean                      #清除当前项目的编译输出文件,适用于修改了少量代码后重新编译,快速清理中间文件
idf.py fullclean                  #彻底清除所有编译生成的文件,适用于切换芯片信号后或编译出现奇怪的错误
# 擦除flash
idf.py -p PORT erase-flash        #擦除整个 flash
idf.py -p PORT erase-otadata      #擦除的 OTA 数据

4. ESP-IDF组件介绍

4.1 组件简介

乐鑫除了ESP-IDF外,还提供了丰富的解决方案、组件和等,为开发者提供了极大的便利。例如:
解决方案

  • ESP-Insights:ESP Insights 是一种远程诊断解决方案,允许用户远程监控现场 ESP 设备的健康状况。
  • ESP-IoT-Solution:ESP-IoT-Solution 包含用于开发物联网系统的设备驱动程序和代码框架,作为 ESP-IDF 的额外组件,更易于启动。
  • ESP-NOW:无连接 Wi-Fi 通信协议
  • ESP-SR:ESP-SR(语音识别)为语音识别应用提供基本算法。
  • ESP-Mesh-Lite:ESP-MESH-LITE 是 IoT-Bridge 的 Wi-Fi 组网应用,基于 SoftAP + Station 模式,是一套构建在 Wi-Fi 协议之上的 Mesh 解决方案。
  • ESP-WHO:ESP-WHO 是基于乐鑫芯片的图像处理开发平台,包含可实际应用的开发示例。
    组件和库
  • ESP-DL:ESP-DL 是一个高性能深度学习资源库
  • ESP-DSP:ESP-DSP(数字信号处理)是 ESP32 芯片和 ESP32S3 的官方 DSP 库
  • ESP-MQTT:ESP-MQTT 是 Espressif 芯片组的消息队列遥测传输协议库。
  • ESP-NN:ESP-NN(神经网络)该库包含针对各种 Espressif 芯片组优化的神经网络功能。
  • ESP-Modbus:Espressif ESP-Modbus 库 (esp-modbus) 是一个支持基于 RS485、WiFi、以太网接口的网络中的 Modbus 通信的库。
  • Open AI component:与 ESP-IDF 兼容的 OpenAI 库。
    更多内容请访问:乐鑫开发项目

4.2 组件安装

注意:安装时需要注意组件对IDF版本的要求
下面以"esp-iot-solution"为例

  1. clone库
git clone --recursive https://github.com/espressif/esp-iot-solution
  1. 通过编译烧录流程即可编译烧录项目

5. ESP-IDF开发教程