ESP32开发__ESP-IDF, ESP-ADF官网下载,安装及环境配置

前言

不说废话,直面“干货”。最近公司项目涉及基于 ESP32 系列芯片开发,那我们新手小白如何准备相关工作及快速入门,本篇文章旨在:介绍ESP32,指导用户搭建 ESP32 硬件开发的软件环境( ESP-IDF V5.2.1 和 ESP-ADF master )和运行简单的例程DEMO确认开发环境正确安装。

考虑到编译效率问题,我选择“离线下载”

概述

 ESP32 是一款功能丰富的 SoC,集成 Wi-Fi 4蓝牙,适用于多样的物联网应用,具有 高性能、高集成、低功耗和多种接口的特点,可作为独立系统或从设备提供 Wi-Fi 和 …

  • 2.4 GHz Wi-Fi

  • 蓝牙

  • 高性能 Xtensa® 32 位 LX6 双核处理器

  • 超低功耗协处理器

  • 多种外设

ESP32 采用 40 nm 工艺制成,具有最佳的功耗性能、射频性能、稳定性、通用性和可靠性,适用于各种应用场景和不同功耗需求。

乐鑫信息科技(上海)股份有限公司

英文全称:ESPRESSIF SYSTEMS (SHANGHAI) CO., LTD.

官网地址:https://www.espressif.com.cn/zh-hanshttps://www.espressif.com.cn/zh-hans

总部位于上海张江高科技园区,是一家先进、专业的、全球化的无晶圆半导体公司,致力于研发设计 Wi-Fi 和蓝牙技术的无线系统级芯片,提供移动通讯和物联网解决方案

乐鑫科技(股票代码:688018)成立于 2008 年,在中国、捷克、印度、新加坡和巴西均设有办公地,团队来自约 30 个国家和地区。乐鑫多年来深耕 AIoT 领域软硬件产品的研发与设计,专注于研发高集成、低功耗、性能卓越、安全稳定、高性价比的无线通信 SoC,现已发布 ESP8266ESP32ESP32-SESP32-CESP32-H 系列芯片、模组和开发板,成为物联网应用的理想选择。我们致力于提供安全、稳定、节能的 AIoT 解决方案。同时,我们坚持技术开源,助力开发者们用乐鑫的方案开发智能产品,打造万物互联的智能世界。2019 年 7 月,乐鑫科技在上海证券交易所科创板挂牌上市。

乐鑫以开源的方式建立了开放、活跃的技术生态系统。自主研发了一系列开源的软件开发框架,如操作系统ESP-IDF音频开发框架 ESP-ADFMesh 开发框架 ESP-MDF设备连接平台 ESP RainMaker人脸识别开发框架 ESP-WHO 和 智能语音助手 ESP-Skainet 等,以此构建了一个完整、创新的 AIoT 应用开发平台。同时,乐鑫也支持许多创客社区的开源项目,让开发者们自由开发项目应用、交流技术心得。随后乐鑫的芯片和模组受到越来越多客户的青睐,被广泛应用于智能家居、电工、照明、智能音箱、消费电子、移动支付等领域。

ESP-ADF

ESP-ADF 以最全面的方式支持乐鑫 SoC 的音频应用程序开发。使用 ESP-ADF,您可以轻松添加功能,从简单到复杂开发音视频应用程序:

  • 音乐播放器或录音机支持MP3,AAC,FLAC,WAV,OGG,OPUS,AMR,TS,EQ,Downmixer,Sonic,ALC,G.711等音频格式。
  • 播放来自以下来源的音乐:HTTP、HLS(HTTP Live Streaming)、SPIFFS、SDCARD、A2DP-Source、A2DP-Sink、HFP 等。
  • 集成媒体协议,如:DLNA、VoIP、RMTP、ESP-RTC(SIP、RTSP 和 RTCP)等。
  • 视频通话、视频录制和视频直播
  • 网络电台
  • 语音识别和与Alexa、DuerOS等在线服务的集成。

一般情况下,ESP-ADF 功能将支持如下所示:

49fd649e60dc27ec76b3c6273d94381d.png

一、准备工作

  • 一款 ESP32 开发板

  • USB 数据线 (A 转 Micro-B)

  • 电脑(Windows、Linux 或 macOS)

目前一些开发板使用的是 USB Type C 接口。请确保使用合适的数据线来连接开发板!

 

二、ESP-IDF安装,配置及编译DEMO

 注意:我这里使用的是:ESP-IDF最新稳定版本 V5.2.1 有其他版本的文档如下,仅供参考ESP-IDF 版本简介https://docs.espressif.com/projects/esp-idf/zh_CN/v5.2.1/esp32/versions.html

(一)使用什么版本?

如果你是用在工作的项目量产,当然首选还是使用稳定版本( 最新稳定版本 V5.2.1 ),ESP-IDF 的 GitHub 仓库时常更新,特别是用于开发新特性的 master 分支。下表总结了乐鑫芯片在 ESP-IDF 各版本中的支持状态,预览支持状态通常有时间限制,而且仅适用于测试版芯片。请确保使用与芯片相匹配的 ESP-IDF 版本。

ESP-IDF版本与芯片型号
芯片V4.3V4.4V5.0V5.1V5.2-
ESP32支持支持支持支持支持 
ESP32-S2支持支持支持支持支持 
ESP32-C3支持支持支持支持支持 
ESP32-S3 支持支持支持支持芯片发布公告
ESP32-C2  支持支持支持芯片发布公告
ESP32-C6   支持支持芯片发布公告
ESP32-H6   支持支持芯片发布公告
ESP32-P4    预览芯片发布公告

上述的 V5.2.1V5.2 下继续开发的Bugfix 版本,仅修复 bug,并不增加任何新特性;V5.2 是是 V5.0 继续开发的次要版本,代表有新增特性和 bug 修复,但现有特性不受影响,公开 API 的使用也不受影响。(升级至一个新的次要版本意味着你可能不需要更新工程代码,但需重新测试工程,特别是 发布说明页面中 专门提到的部分。)

当然,用于嵌入式的开发学习,我们可以基于最新版的框架去开发,通过以下链接,可以访问各个版本的配套文档:

  • 最新稳定版 ESP-IDF:ESP-IDF 编程指南 - ESP32 - — ESP-IDF 编程指南 v5.2.1 文档 (espressif.com)
  • 最新版 ESP-IDF(即 master 分支):ESP-IDF 编程指南 - ESP32 - — ESP-IDF 编程指南 latest 文档 (espressif.com)

每款乐鑫芯片都可能有不同版本。建议参考 ESP-IDF 版本与乐鑫芯片版本兼容性,了解 ESP-IDF 版本与各芯片版本之间的兼容性。对于 2016 年之前发布的乐鑫芯片(包括 ESP8266 和 ESP8285),请参考 RTOS SDK。

ESP-IDF 在 GitHub 平台上的完整发布历史请见 发布说明页面。该页面支持查看各个版本的发布说明、配套文档及相应获取方式。

此外,也可以直接前往文档页面,查看不同 ESP-IDF 版本的配套文档,具体可点击页面左上角中版本的下拉菜单(在目标下拉菜单和搜索栏之间),实现在不同版本间切换。

8f8d9689279ff46ad0c050fe34679122.png

旧版本的文档也仍然可用:

v5.2 - Release Notesv5.1.2 - Release Notesv5.1.1 - Release Notes
v5.1 - Release Notesv5.0.5 - Release Notesv5.0.4 - Release Notes
v5.0.3 - Release Notesv5.0.2 - Release Notesv5.0.1 - Release Notes
v5.0 - Release Notesv4.4.6 - Release Notesv4.4.5 - Release Notes
v4.4.4 - Release Notesv4.4.3 - Release Notesv4.4.2 - Release Notes
v4.4.1 - Release Notesv4.4 - Release Notesv4.3.6 - Release Notes
v4.3.5 - Release Notesv4.3.4 - Release Notesv4.3.3 - Release Notes
v4.3.2 - Release Notesv4.3.1 - Release Notesv4.3 - Release Notes
v4.2.5 - Release Notesv4.2.4 - Release Notesv4.2.3 - Release Notes
v4.2.2 - Release Notesv4.2.1 - Release Notesv4.2 - Release Notes
v4.1.4 - Release Notesv4.1.3 - Release Notesv4.1.2 - Release Notes
v4.1.1 - Release Notesv4.1 - Release Notesv4.0.4 - Release Notes
v4.0.3 - Release Notesv4.0.2 - Release Notesv4.0.1 - Release Notes
v4.0 - Release Notesv3.3.6 - Release Notesv3.3.5 - Release Notes
v3.3.4 - Release Notesv3.3.3 - Release Notesv3.3.2 - Release Notes
v3.3.1 - Release Notesv3.3 - Release Notesv3.2.5 - Release Notes
v3.1.7 - Release Notesrelease-v4.2release-v4.1
release-v4.0release-v3.3

(二)软件下载与安装

  • 设置 工具链,用于编译 ESP32 代码;

  • 编译构建工具 —— CMake 和 Ninja 编译构建工具,用于编译 ESP32 应用程序

  • 获取 ESP-IDF 软件开发框架。该框架已经基本包含 ESP32 使用的 API(软件库和源代码)和运行 工具链 的脚本;

3ea53a31243230f2deff58041dee2631.png

1. 离线安装程序下载(离线安装)

Windows Installer Downloadhttps://dl.espressif.cn/dl/esp-idf/?idf=4.497d2c592f9ae9a51efc2e2b1367ac2c5.png

点击下载

ESP-IDF v5.2.1 - Offline Installer(Windows 10, 11;Size: 1.5 GB)https://dl.espressif.com/dl/idf-installer/esp-idf-tools-setup-offline-5.2.1.execd18c9f9d53312f73b55a4ab70965510.png

2. 安装“入门指南”中提到的构建所依赖的工具,无脑“下一步”

e8a093b10f06fbd190a1d2e4214d48ac.png

d1f0c2f4d3f45f4b92b3d86a42b0763d.png

5fb3baebb24de322d85b8b3f764dc847.png

 943eee60dca48e235ed96ad6cd190099.png

本次项目,我用到的是“ 通用型 Wi-Fi + 低功耗蓝牙 MCU 模组 ESP32-S3-WROOM-1U

a0932a7326d1bcba49d78f4530c4e8c9.png

安装目录:我的选择是F:\盘的根目录

10d9cd6e12ce93efa026b14b24351a14.png0e9b95a25ab544f51d5c993e1bd981dc.png347caa1dd65bbe90de14524850dcbee3.png

f96146487249e60c2acbf310f399fb05.png

离线安装程序不需要任何网络连接。安装程序中包含了所有需要的依赖文件,包括 Git For Windows 安装器。

安装程序会安装以下组件:

  • 内置的 Python

  • 交叉编译器

  • OpenOCD

  • CMake 和 Ninja 编译工具

  • ESP-IDF

 3. 设置构建环境

(1)运行安装脚本,设置构建环境。可为 Windows shell 选择 install.bat 或 install.ps1

1042c4a6dfa54273ac4967319aae591b.png

273d409109daa5b478cf98f6e371a33e.png

(2)在使用 ESP-IDF 之前,需要在 shell 中运行导出脚本。Windows 下可运行 export.bat

75b77b3c885b9e210e26fafdea459af1.png

6a3e4594107bb1bf1052a400c8d3de74.png

4. 开始使用ESP-IDF

从 ESP-IDF 中 examples 目录下的 get-started/hello_world 工程开始。

(三)官方ESP-IDF编程指南 -> 快速入门

https://docs.espressif.com/projects/esp-idf/zh_CN/v5.2.1/esp32/get-started/index.html

 

三、ESP-ADF安装,配置及编译DEMO

ESP-ADF的安装是在ESP-IDF已安装的基础上进行的。

 (一)使用什么版本?

ESP-ADF 目前支持的 ESP-IDF 版本如下表所示。

ESP-IDF 主分支被标记为不受支持,因为它引入的主要功能更改可能会导致与 ESP-ADF 发生冲突。但是,不受这些功能更改影响的 ADF 示例仍然可以在 IDF 主分支上正确运行。

已删除生命周期终止的 IDF 分支。有关详细信息,请参阅 IDF支持的期限。

 ESP-IDF
Release/v4.4
ESP-IDF
版本/v5.0Release/v5.0版本/v5.0
ESP-IDF
版本/v5.1Release/v5.1版本/v5.1
ESP-IDF
版本/v5.2Release/v5.2版本/v5.2
ESP-IDF
主控Master主控
ESP-ADF
Master

fc15df566b433bdd24aa7f27c4221826.png

fc15df566b433bdd24aa7f27c4221826.png

fc15df566b433bdd24aa7f27c4221826.png

fc15df566b433bdd24aa7f27c4221826.png

882baba45bfb39743d1cdadbd8f6453b.png

ESP-ADF
Release/v2.6

fc15df566b433bdd24aa7f27c4221826.png

 1

fc15df566b433bdd24aa7f27c4221826.png

fc15df566b433bdd24aa7f27c4221826.png

882baba45bfb39743d1cdadbd8f6453b.png

882baba45bfb39743d1cdadbd8f6453b.png

ESP-ADF
Release/v2.5

fc15df566b433bdd24aa7f27c4221826.png

 1

882baba45bfb39743d1cdadbd8f6453b.png

882baba45bfb39743d1cdadbd8f6453b.png

882baba45bfb39743d1cdadbd8f6453b.png

882baba45bfb39743d1cdadbd8f6453b.png

ESP-ADF
Release/v2.4

fc15df566b433bdd24aa7f27c4221826.png

 1

882baba45bfb39743d1cdadbd8f6453b.png

882baba45bfb39743d1cdadbd8f6453b.png

882baba45bfb39743d1cdadbd8f6453b.png

882baba45bfb39743d1cdadbd8f6453b.png

注1:ESP-ADF v2.4 内置的 IDF 分支目前为 IDF Release/v4.4。 

 最终决定,我使用的是 master 分支下的工程代码。

(二)调用git命令克隆仓库:

https://github.com/espressif/esp-adf/tree/master

克隆路径为:预安装的ESP-IDF安装目录下的 frameworks/

bcd56e2fa3c9b087a284e3f408f9f84a.png

安装成功后,我们进入 目录esp-adf 

24631e4abc6edd5644849d117b73e6bd.png

安装过后,会出现几个文件的克隆失败,分别是esp-idfesp-idf-libs(adf音频库)esp-sr(adf语音识别库),因为这些库在esp-adf-master仓库下都是以分支branch链接形式存储的。需要单独安装。

(三)删除文件夹,克隆仓库,下载 ESP-IDF V5.2.1 版本

删除空文件夹 esp-idf,克隆仓库:GitHub - espressif/esp-idf: Espressif IoT Development Framework. Official development framework for Espressif SoCs.Espressif IoT Development Framework. Official development framework for Espressif SoCs. - espressif/esp-idfhttps://github.com/espressif/esp-idf.git

85e3817cee86391c2a3b5d22850cbdd2.png

(四) 删除文件夹,克隆仓库,下载 esp-adf-libs 版本

进入到 esp-adf\components 目录,删除空文件夹 esp-adf-libs ,克隆仓库https://gitclone.com/github.com/espressif/esp-adf-libshttps://gitclone.com/github.com/espressif/esp-adf-libs4e1d76131100bfc89f0840cc0342a0a6.png

(五) 删除文件夹,克隆仓库,下载 esp-adf-libs 版本

进入到 esp-adf\components 目录,删除空文件夹 esp-adf-sr ,克隆仓库

https://gitclone.com/github.com/espressif/esp-sr.git

2f665e8f83814477047fdb095079ab5e.png

(七)设置环境变量

打开系统环境变量设置,添加ESP-ADF安装路径

bcf2d0fbf51e70b7e4778e34fde9051a.png

设置成功后,在命令行中输入命令echo %ADF_PATH%应该返回ESP-ADF 目录的路径。 

a012f4ae553a96c33b8209b315683492.png

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/899981.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解码专业术语——应用系统开发项目中的专业词汇解读

文章目录 引言站点设置管理具体要求包括: Footer管理基于URL的权限控制利用数据连接池优化数据库操作什么是数据连接池?优化的优势 利用反射改造后端代码,AJAX反射的作用及其在后端代码中的应用AJAX 实现前后端无刷新交互 引言 创新实践项目二…

Bash 中的 ${} 和 $() 有什么区别 ?

Bash (Bourne-Again SHell) 是一种流行的 Unix SHell,用于编写脚本。如果您使用 Bash 脚本,那么了解不同的语法元素对于提高脚本的效率和避免错误是很重要的。 在本文中,我们将解释 Bash 中 ${} 和 $() 语法之间的区别,并向您展示…

「iOS」——AFNetworking的简单使用

iOS学习 前言原生网络请求使用AFNetworking库进行网络请求具体使用 单例创建的原因单例使用 总结 前言 我们之前学习了通过OC原生内容进行网络申请,AFNetworkikng第三方库的使用,可以极大地简化网络申请的代码量。 原生网络请求 网络请求主要分为上面五…

JAVA单列集合

List系列集合:添加的元素是 有序、可重复、有索引 Set系列集合:添加的元素是 无序、不重复、无索引 Collection Collection是单列集合的接口,它的功能是全部单列集合都可以继承使用的 public boolean add(E e) 把给定的对象添加到当前集合中 public void …

【大数据学习 | Zookeeper】Zookeeper的选举机制

zookeeper的选举机制分为第一次启动和非第一次启动两种情况。 1. 选举机制 - > 第一次启动 (1)服务器1启动,发起一次选举。服务器1投自己一票。此时服务器1票数一票,不够半数以上(3票),选举无法完成,服务器1状态保持为 LOOKIN…

docker run 命令解析

docker run 命令解析 docker run 命令用于从给定的镜像启动一个新的容器。这个命令可以包含许多选项,下面是一些常用的选项: -d:后台运行容器,并返回容器ID;-i:以交互模式运行容器,通常与 -t …

中国信通院联合中国电促会开展电力行业企业开源典型实践案例征集

自2021年被首次写入国家“十四五”规划以来,开源技术发展凭借其平等、开放、协作、共享的优秀创作模式,正持续成为推动数字技术创新、优化软件生产模式、赋能传统行业转型升级、助力企业降本增效的重要引擎。电力是国民经济的重要基础性产业,…

Atlassian Team ‘24 Europe:推出Rovo、开发人员AI助手、新版Jira等多款AI创新,重塑团队协作

过去一周,Atlassian Team 24 Europe在巴塞罗那盛大举行!展示了Atlassian在推动团队协作和业务发展方面的最新成果与前沿见解。 本文,Atlassian联合创始人兼首席执行官Mike Cannon-Brookes为我们分享了Atlassian在AI创新和系统化工作两项关键任…

2019年计算机网络408真题解析

第一题: 解析:OSI参考模型第5层完成的功能 首先,我们需要对OSI参考模型很熟悉:从下到上依次是:物理层-数据链路层-网络层- 运输层-会话层-表示层-应用层,由此可知,题目要问的是会话层的主要功能…

python 爬虫 入门 二、数据解析(正则、bs4、xpath)

目录 一、待匹配数据获取 二、正则 三、bs4 (一)、访问属性 (二)、获取标签的值 (三)、查询方法 四、xpath 后续:登录和代理 上一节我们已经知道了如何向服务器发送请求以获得数据&#x…

三周精通FastAPI:10 Cookie 参数 和Cookie 参数模型

官方文档:Cookie 参数 - FastAPI Cookie 参数 定义 Cookie 参数与定义 Query 和 Path 参数一样。 源码: from typing import Annotatedfrom fastapi import Cookie, FastAPIapp FastAPI()app.get("/items/") async def read_items(ads_id…

PHP泵的比例流量控制阀放大器

01 PHP 05 PCS005、01 PHP 1 PCS005、01 PHP 2 PCS005、01 PHP 3 PCS005,01 FCV 2 M、01 FCV 3 M、01 PHP 05 PCLS005、01 PHP 1 PCLS005、01 PHP 2 PCLS005、01 PHP 3 PCLS005,FCV比例流量控制阀旨在与Berarma的PHP2和PHP3泵最佳集成,但由于…

戴尔电脑win11找不到D盘的解决办法

新公司给配的戴尔电脑,系统是win11,第一天用的好好地,第二天不知道什么原因,D盘找不到了,在网上搜了好多教程也没用,最后咨询客服,找到了解决办法 若【磁盘管理】界面看不到硬盘分区或无法进入…

比亚迪车机安装第三方应用教程

比亚迪车机安装第三方应用教程 比亚迪车机U盘安装APP, 无论是dlink3.0还是4.0都是安卓系统,因此理论上安卓应用是都可以安装的,主要就是横屏和竖屏的区别。在比亚迪上安装软件我主要推荐两种方法。 第一种,直接从电脑端下载安装布…

《计算机视觉》—— 基于dlib库的人检检测

文章目录 一、dlib库的安装1. 通过PyCharm的Settings安装2. 通过Anaconda安装(适用于Windows等操作系统)3. 通过命令行安装4.懒人安装 二、基于dlib库的人检测1.对图像进行人脸检测2.打开电脑摄像头,检测人脸 一、dlib库的安装 在PyCharm中&…

域渗透AD渗透攻击利用 MS14-068漏洞利用过程 以及域渗透中票据是什么 如何利用

目录 wmi协议远程执行 ptt票据传递使用 命令传递方式 明文口令传递 hash口令传递 票据分类 kerberos认证的简述流程 PTT攻击的过程 MS14-068 漏洞 执行过程 wmi协议远程执行 wmi服务是比smb服务高级一些的,在日志中是找不到痕迹的,但是这个主…

mongodb在linux下的部署

目录 版本部署上传到服务器中创建目录,解压创建mongodb.conf添加环境变量添加到系统服务中centos6 中添加到服务中 重新加载服务并启动卸载,mongodb.conf配置项等 创建用户,设置用户名密码角色启动验证验证 常见知识mongodb角色mongodb.conf配…

如何禁止上班期间浏览无关网站?

禁止员工在上班期间浏览无关网页主要是为了提升工作效率和生产力,确保员工能够专注于工作任务。同时,这种做法有助于降低网络安全风险,防止恶意软件和钓鱼攻击,减少数据泄露和法律风险,维护公司的专业形象,…

数据结构深度优先搜索遍历连通图+非连通图(C语言代码+遍历+终端输入内容)

首先数据结构(C语言版第二版)的关于深度优先搜索遍历连通图的图G4如下: 使用邻接表去创建上面这个无向图&#xff0c;然后再使用书本DFS函数以及DFSTraverse函数实现深度优先搜索遍历 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #…

微调大模型-2-Qwen基座模型使用

下载Qwen源码 Qwen作为中文支持非常nice的模型&#xff0c;很适合用于LLM学习。在云服务器里clone Qwen工程。 git clone https://github.com/QwenLM/Qwen2.5.git原始模型使用主要基于cli_demo.py-命令行调用&#xff0c;web_demo.py-网页调用。 预览这两个文件时&#xff0c…