docs:ESP32介绍

This commit is contained in:
DuRuofu
2025-01-02 12:28:47 +08:00
parent aa9f2428d9
commit acc5809330
12 changed files with 148 additions and 46 deletions

View File

@@ -1,11 +1,26 @@
### 前言:
本教程文档旨在记录并分享个人学习ESP32过程中的经验和心得以帮助其他初学者快速上手ESP32开发。这是一份从初学者视角出发整理了学习ESP32的一条较为合理的路径和方法的笔记汇编。
本教程旨在记录并分享个人学习ESP32过程中的经验和心得以帮助其他初学者快速上手ESP32开发。这是一份从初学者视角出发整理了学习ESP32的一条较为合理的路径和方法的笔记汇编。
文档内容基于对大量优质ESP32教程、官方文档以及实际项目实践的总结和理解力求做到内容清晰、条理分明既注重基础知识的巩固也兼顾实战技能的提升。希望通过本教程读者能少走弯路从初学到实战开发逐步掌握ESP32的开发技能。
文档内容从基础到进阶,适合循序渐进地学习。如果您是初学者,可以按照章节顺序逐步学习;如果您已有一定的开发经验,可以直接跳转到感兴趣的部分阅读。同时,鼓励读者在学习过程中动手实践,以便更好地理解相关知识点。
此外,文档配有对应的视频教程,可前往[B站点击跳转](https://www.bilibili.com/video/BV1fi6qY5EAC/?vd_source=ef5a0ab0106372751602034cdd9ab98e)浏览。
### 初衷:
1. 一方面本人在从零开始学习ESP32的过程中曾经走过很多弯路踩过很多坑现在回过头来觉得有更适合初学者学习的路径故推荐给大家希望后来人不要走了弯路。
2. 另一方面我始终认为学习嵌入式学习ESP32的秘诀是以实践促学习也就是我们常说的费曼学习法—以输出倒逼输入。不要想着等我学会ESP32我就可以做什么不妨换个思路想想我现在需要做什么做的这个东西需要用到ESP32的什么功能然后点对点的去学习某个部分这样学习完后可以立马投入使用加深记忆。这份教程本身也算是我个人践行费曼学习法的实践过程。
### 目录:
![](attachments/20250102082222.png)
本教程共八个章节三个阶段基础1-3实践4进阶5-8
其中基础章节一定要确保自己掌握,实践和进阶部分推荐按照个人需求进行选学。
<div STYLE="page-break-after: always;"></div>
### 修订历史:
@@ -21,15 +36,14 @@
| ESP32学习计划 | v1.4.0 | DuRuofu | 2024-04 | 补充WIFI部分 |
| ESP32从菜鸟到入门一稿 | v1.5.0 | DuRuofu | 2024-12-26 | 整理汇总,重新编排 |
<div STYLE="page-break-after: always;"></div>
### 当前进度:
| 章节 | 教程 | 文字教程 | 视频教程 | 配套代码 |
| -------------- | ---------------------- | :--: | :--: | :--: |
| 一、认识ESP32 | 1.1 什么是ESP32 | | | 无 |
| 一、认识ESP32 | 1.2 ESP32开发环境搭建 | | | |
| 一、认识ESP32 | 1.1 ESP32介绍 | | | 无 |
| 一、认识ESP32 | 1.2 ESP32开发环境搭建 | | | |
| 一、认识ESP32 | 1.3 初试ESP32-HelloWorld | | | |
| 二、IDF基础与工具使用 | 2.1 ESP32工程结构及构建 | | | |
| 二、IDF基础与工具使用 | 2.2 ESP-IDF项目配置 | | | |
@@ -83,8 +97,8 @@
本节主要介绍ESP32的基本概念包括其硬件特点、应用场景及功能优势。通过本节内容初学者可以快速了解ESP32的核心能力以及在物联网开发中的广泛应用。
> 在线文字教程:[ESP32及开发环境介绍](./docs/01.认识ESP32/1.1-ESP32及开发环境介绍/ESP32及开发环境介绍.md)
> 在线视频教程:[ESP32及开发环境介绍]
> 在线文字教程:[ESP32介绍](docs/01.认识ESP32/1.1-ESP32介绍/ESP32介绍.md)
> 在线视频教程:[ESP32介绍]
## 1.2 ESP32开发环境搭建
@@ -271,7 +285,7 @@
# 五、FreeRTOS进阶
> 目标:深入学习FreeRTOS任务间通信与系统优化技术提升实时应用的开发能力
> 目标学习FreeRTOS任务间通信与系统优化技术为后续高级外设的使用打下基础
## 5.1 队列 (Queue)
@@ -447,7 +461,7 @@
---
# 九、项目实战
# 九、项目实战
> 目标通过综合项目实践整合所学知识独立开发基于ESP32的完整应用提升实战能力。
@@ -486,4 +500,4 @@ ESP-IDF:
其他:
- 查询可用串口:`ls /dev/ttyUSB*`
- 添加串口权限(需重启)`sudo usermod -aG dialout username`
- 添加串口权限(需重启)`sudo usermod -aG dialout username`

Binary file not shown.

After

Width:  |  Height:  |  Size: 854 KiB

View File

@@ -0,0 +1,125 @@
# 一、ESP32是什么
ESP32是一款由乐鑫Espressif公司研发的高性能、低功耗Wi-Fi和蓝牙双模芯片。它专为物联网IoT设计集成了丰富的功能模块和硬件接口是目前最流行的物联网嵌入式开发平台之一。
ESP32指的是ESP32裸芯片但我们常说的“ESP32”一词通常指ESP32系列芯片及开发板一系列硬件
以ESP32基础芯片为例乐鑫官网对其的描述是`32-bit MCU & 2.4 GHz Wi-Fi & Bluetooth/Bluetooth LE`,即ESP32 是集成2.4GHzWi-Fi 和蓝牙双模的单芯片方案。
![](attachments/20250102113713.png)
乐鑫Espressif公司开发了多个 ESP32 系列产品根据性能和成本的不同满足多样化的项目需求。包括基础版本的ESP32还有以下系列
- ESP32-S3 系列:主打 高性能,适合需要图形处理和复杂运算的场景。
- ESP32-C3 系列:采用 RISC-V 架构,主打 低成本 和 高安全性,是 BLE 为主的轻量级应用的理想选择。
以及ESP-P系列ESP-H系列等我们可以通过官方给出的芯片选型工具对各个系列的芯片进行对比[ESP Product Selector](https://products.espressif.com/#/product-selector?language=zh&names=)
![](attachments/20250102114250.png)
初学阶段我们使用最基础的ESP32系列进行学习即可用于熟悉基本的外设操作后续有其他特殊需求就可以考虑其他系列。
这里还需要补充一点,**初学者应该分清楚芯片,模组,开发板的区别**
![](attachments/20250102115153.png)
芯片是最基础的核心部件,仅适合专业硬件开发;模组在芯片基础上增加了天线、电源等外围电路,便于嵌入产品;而开发板是在模组或者芯片的基础上,增加外围电路,整合了电源管理、调试接口(如 USB 转串口)、外接引脚等。所以初学者仍建议先用开发板学习,再深入了解芯片和模组的细节。
---
# 二、为什么要学习ESP32
学习ESP32不仅是掌握一项技能更是打开物联网开发大门的关键。以下是学习ESP32的几大优势
1. **物联网核心技能**
ESP32 集成了 Wi-Fi 和蓝牙功能,是物联网开发的核心硬件平台。掌握 ESP32 就能轻松搭建从传感器数据采集到云端通信的完整物联网系统。
2. **性价比高**
ESP32 功能强大,价格低廉,非常适合学习、开发和测试物联网项目,不需要高昂的投入。
3. **丰富的开发生态**
ESP32 支持多种开发环境(如 Arduino IDE、ESP-IDF并拥有大量开源代码和社区资源新手也能快速上手。
4. **强大的性能**
ESP32 拥有双核处理器和低功耗设计,适合处理复杂任务和低功耗场景,是学习高性能嵌入式开发的理想选择。
5. **广泛的应用场景**
从智能家居到工业物联网、从可穿戴设备到环境监测ESP32 覆盖了几乎所有物联网领域的应用场景,学习它能帮助你开发多样化的项目。
学习 ESP32 不仅能让你掌握物联网开发的基础,还能带你探索软硬件结合的乐趣,为未来的智能时代打下坚实基础。
---
# 三、怎么学习ESP32
## 3.1 选择开发环境
ESP32开发方式主要分为以下三种本教程推荐使用第一种ESP-IDF进行开发下面是几种开发框架的对比分析。
### 3.1.1 ESP-IDF
![](attachments/1.png)
ESP-IDFEspressif IoT Development Framework是乐鑫官方提供的开发框架适用于 ESP32、ESP32-S、ESP32-C 和 ESP32-H 系列 SoC功能全面性能强大。
**特点**
- 提供底层硬件访问,功能最强大,但学习曲线较陡。
- 支持 C 和 C++ 开发,适合需要高度自定义的项目。
- 内置 FreeRTOS适合实时多任务开发。
**适用人群**:有嵌入式开发经验或需要深度优化性能的开发者。
推荐使用:官方文档 + VS Code 插件 + Linux/Windows 开发环境。
### 3.1.2 ESP-Arduino
![](attachments/2.png)
基于 Arduino 平台的开发方式且有官方支持的库开发速度比较快Arduino 生态有丰富的第三方库资源可以调用。缺点是缺点Arduino开发不够底层无法掌控程序的细节。
**特点**
- 封装了 ESP32 的底层操作,只需编写少量代码即可实现 Wi-Fi、蓝牙等功能。
- 支持 Arduino 丰富的库和社区资源,可以快速完成项目原型。
- 开发环境轻量,支持 Arduino IDE 或 PlatformIO。
**适用人群**:嵌入式初学者、爱好者以及需要快速开发和验证功能的开发者。
**推荐使用**Arduino IDE 或 PlatformIO 。
### 3.1.3 Micro Python
![](attachments/3.png)
使用 Python 编程语言开发 ESP32简洁高效特别适合快速开发和教学但是运行效率不及以C、C++编写的程序,资料教程并不如前面两者丰富和成熟。
**特点:**
- 基于 Python代码简单开发效率高。
- 内置交互式 REPL方便调试和运行代码。
- 适合小型项目和快速验证,但性能和硬件控制能力稍逊于 ESP-IDF。
**适用人群**编程初学者、Python 开发者,或对嵌入式感兴趣但不熟悉 C/C++ 的用户。
**推荐使用**Thonny IDE ,结合官方 MicroPython 文档。
## 3.2 学习方法
### 心法:
1. 迅速掌握基本开发知识
初学阶段不要纠结于细枝末节,重点是快速上手,掌握 ESP32 开发的基本流程和核心概念。
2. 以官方文档为主,视频教程为辅
官方文档内容权威、完整,是学习的主线;视频教程则适合作为辅助工具,用于加深理解或解决疑问。
3. 用好官方历程代码
ESP32 提供了丰富的示例代码,覆盖了大部分常用功能模块。通过实践这些代码可以快速熟悉开发框架和基本用法。
4. 以项目驱动学习(费曼学习法)
学习的最佳方式是通过动手做项目,解决实际问题的过程中不仅巩固知识,还能找到自己的薄弱环节并加以改进。
### 途径:
![](attachments/4.png)
首先选择一个实际项目作为切入点,例如让 ESP32 控制一个 LED 并通过 Wi-Fi 连接到本地网络进行远程控制。在项目中遇到具体功能需求时,针对性地学习相关模块,比如 GPIO 操作、Wi-Fi 配置等MQTT协议。通过搜索引擎如Bing或视频教程快速理解基础概念在掌握基础概念后去阅读官方文档了解ESP32这个模块如何使用看不懂再去看视频以官方历程代码为参考结合项目需求进行实验和优化。随着学习的深入可以拓展到更复杂的功能模块比如蓝牙通信或低功耗模式最终通过一个个项目的积累系统掌握 ESP32 的开发技能。这种以项目驱动为核心、逐步深入的学习方式,可以帮助快速上手,同时在实践中巩固知识。
## 3.3 学习资源推荐
重要的事情说三遍:
- **官方文档**[Espressif 官方文档](https://idf.espressif.com/zh-cn/index.html)
- **官方文档**[Espressif 官方文档](https://idf.espressif.com/zh-cn/index.html)
- **官方文档**[Espressif 官方文档](https://idf.espressif.com/zh-cn/index.html)
乐鑫的官方文档和官方历程一定是最好的学习ESP32的素材和指南。
其次我在这里推荐一些相关的ESP32视频教程UP主看不懂文档时可以参考他们的视频
- **Michael_ee**https://space.bilibili.com/505630520/fans/follow?tagid=529812
- 孤独的二进制https://space.bilibili.com/1375767826
- 第九个下弦月https://space.bilibili.com/34165842?spm_id_from=333.999.0.0
- 宸芯IOThttps://space.bilibili.com/1458941333?spm_id_from=333.337.search-card.all.click
- ESP_Friendshttps://space.bilibili.com/3493296718482287?spm_id_from=333.337.search-card.all.click

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 514 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

View File

@@ -1,36 +0,0 @@
# 一、ESP32是什么
ESP32是一款由乐鑫Espressif公司研发的高性能、低功耗Wi-Fi和蓝牙双模芯片。它专为物联网IoT设计集成了丰富的功能模块和硬件接口是目前最流行的物联网嵌入式开发平台之一。
### 1.1 ESP32的核心特点
### 1.2 ESP32的应用场景
ESP32凭借其功能强大且成本低廉的特点已成为物联网开发的首选平台。
---
# 二、为什么要学习ESP32
学习ESP32不仅是掌握一项技能更是打开物联网开发大门的关键。以下是学习ESP32的几大优势
---
# 三、怎么学习ESP32
学习ESP32可以从以下几个步骤入手循序渐进地掌握从入门到精通的开发技能。
# 四、 相关资源与学习路径
- **官方文档**[Espressif 官方文档](https://docs.espressif.com/)
- **开发者社区**[乐鑫论坛](https://bbs.espressif.com/)
- **教程与示例**[GitHub - ESP-IDF Examples](https://github.com/espressif/esp-idf/tree/master/examples)
- **硬件资源**建议购买官方或认证的ESP32开发板。

View File

@@ -4,7 +4,6 @@
在Windows系统下使用VS Code插件直接安装ESP-IDF可以参考官方文档[Install ESP-IDF and Tools](https://docs.espressif.com/projects/vscode-esp-idf-extension/zh_CN/latest/installation.html),下面介绍安装过程:
安装VS Code并安装ESP-IDF插件
![](attachments/20241230173816.png)