Skip to content

ESP32从初见到入门 —— 目录 ​

许可协议: ​

本仓库中的文本、代码、图片和视频均采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议— CC BY-NC-SA 4.0。

〇、常见问题及解决方案: ​

本部分记录搭建环境和开发过程中常见的问题和解决方案,都是本人在开发过程中遇到的,作为经验积累,分享给大家。

常见问题及解决方案:常见问题及解决方案.md

一、认识ESP32 【完结】 ​

目标:学会安装ESP-IDF开发环境,并使用其烧录代码,掌握ESP32的基本特点及工具使用。

1.1 什么是ESP32 ​

本节主要介绍ESP32的基本概念,包括其硬件特点、应用场景及功能优势。通过本节内容,初学者可以快速了解ESP32的核心能力以及在物联网开发中的广泛应用。

1.2 ESP32开发环境搭建 ​

本节将详细讲解如何在不同操作系统(Windows/Linux/Mac)上搭建ESP-IDF开发环境,涵盖工具链安装、环境变量配置及调试工具的准备等内容。通过本节,读者可以完成开发环境的搭建,为后续开发做好准备。

1.3 初试ESP32-IDF.py的基本使用 ​

本节通过“Hello World”示例代码,指导读者创建第一个ESP32工程,并完成编译、烧录及运行调试流程。通过本节内容,初学者可以初步体验ESP-IDF的开发流程,快速进入ESP32开发的世界。


二、IDF基础与工具使用 【完结】 ​

目标:熟悉ESP-IDF的架构与开发流程,掌握常用开发工具及调试方法,建立高效开发基础。

2.1 ESP32工程结构 ​

本节详细介绍ESP-IDF项目的基本目录结构,包括CMake工具的基础知识,帮助读者掌握ESP32工程的整体组织方式,为日后开发复杂项目奠定基础。

2.2 ESP-IDF项目配置 ​

本节将重点讲解如何使用menuconfig工具配置项目,包含常见的配置选项及其实际用途。通过本节学习,读者可以根据项目需求快速定制和优化ESP32项目配置。

2.3 ESP-IDF自定义组件 ​

本节讲解如何创建和管理ESP-IDF的自定义组件,包括组件的目录结构、声明与调用方法,以及组件的复用和共享技巧,帮助读者构建模块化项目。

2.4 ESP-IDF组件管理器 ​

本节重点介绍ESP-IDF组件管理器的功能与使用方法,涵盖如何通过组件管理器导入外部库、配置组件依赖,使用官方提供的外部组件。


三、FreeRTOS基础(更新中) ​

目标:学习FreeRTOS的核心概念与基本功能,掌握任务管理与调度机制,为实时系统开发打下基础。

3.1 FreeRTOS介绍与引入 ​

本节将介绍FreeRTOS的核心概念,包括实时操作系统的特点、FreeRTOS的基本架构和设计思想,以及其在嵌入式开发中的应用场景,帮助读者快速了解FreeRTOS的基础知识。

3.2 FreeRTOS多任务与任务管理 ​

本节讲解FreeRTOS中的多任务机制及任务管理方法,包括任务创建、任务删除、任务优先级和任务状态的管理。通过本节学习,读者可以初步掌握在FreeRTOS中实现并发任务的基本技巧。

3.3 FreeRTOS任务看门狗 ​

本节讲解 FreeRTOS 中任务看门狗机制的原理包括如何监控任务执行状态、检测任务卡死以及触发系统恢复等功能。通过学习任务看门狗,读者可以掌握提高系统可靠性的重要技巧,确保任务能够在异常情况下得到及时处理。

3.4 FreeRTOS软件定时器 (Software Timer) ​

通过软件定时器实现定时触发任务逻辑,学习其管理及高级用法。


四、外设学习 (更新中) ​

目标:掌握ESP32常用外设的基本操作方法,学会与硬件交互并控制外设设备。

4.1 基础外设 ​

4.1.1 GPIO ​

本节介绍GPIO(通用输入输出)的基本功能,包括输入、输出及中断操作。通过实际案例,学习如何控制外部设备并响应硬件信号。

4.1.2 UART ​

本节讲解UART串口通信的原理及在ESP32中的实现,内容涵盖UART初始化、数据收发及常见调试方法。

4.1.3 定时器 ​

本节内容包括ESP32硬件定时器的初始化、配置及应用,通过案例学习如何实现精确的时间控制与定时任务。

4.1.4 ADC(模数转换) ​

本节讲解ESP32的ADC模块,包括采样的基本配置与信号转换,并通过示例学习如何读取模拟信号。

4.1.5 DAC(数模转换) ​

本节讲解DAC模块的基本操作,学习如何将数字信号转换为模拟信号输出。

4.1.6 LED PWM ​

本节介绍LED PWM(脉宽调制)的原理及操作方法,通过实际案例学习如何控制LED亮度。

4.1.7 I2C ​

本节讲解I2C通信协议及在ESP32中的实现,内容涵盖设备寻址、数据收发及实际应用。

4.1.8 SPI ​

本节介绍SPI通信协议及其在ESP32中的使用,学习如何通过SPI与外部设备通信。

4.1.9 I2S ​

本节介绍I2S通信协议及其在ESP32中的使用,学习如何通过I2S与外部设备通信。

4.2 存储外设 ​

4.2.1 分区表设计 ​

本节讲解ESP32的分区表结构及设计方法,学习如何规划存储空间以满足不同开发需求。

4.2.2 非易失性存储(NVS) ​

本节介绍NVS的使用方法,学习如何在ESP32中存储和读取持久化数据。

4.2.3 FAT文件系统 ​

本节讲解FAT文件系统的基本操作,学习如何在ESP32中管理文件及目录。

4.2.4 SPIFFS文件系统 ​

本节介绍SPIFFS文件系统的基本操作,学习如何在ESP32中使用轻量级文件系统进行数据存储与读取。

4.2.5 ESP32存储-SD、SDIO、MMC 驱动 ​

本节介绍ESP32存储-SD、SDIO、MMC 驱动的基本操作.

4.3 其他外设 ​


五、FreeRTOS进阶 (更新中) ​

目标:学习FreeRTOS任务间通信与系统优化技术,为后续高级外设的使用打下基础。

5.1 队列 (Queue) ​

学习FreeRTOS中队列的基本概念及用法,掌握如何在任务之间传递数据,并理解阻塞与优先级特性。

5.2 信号量 (Semaphore) 和互斥量 (Mutex) ​

理解信号量的分类(计数信号量与二值信号量),学习如何通过信号量实现任务同步及资源管理。

5.3 互斥量 (Mutex) ​

掌握互斥量的作用及优先级反转问题,学习如何保护共享资源以避免竞争条件。

5.4 事件组 (Event Group) ​

学习如何通过事件组实现复杂的任务同步逻辑及事件管理。

5.5 任务通知 (Task Notifications) ​

了解任务通知的特点,掌握其在任务间高效通信中的实际应用。


六、Wi-Fi功能与相关协议 (更新中) ​

目标:学会使用ESP32的Wi-Fi功能,实现无线网络连接及常见通信协议的应用开发。

6.1 Wi-Fi功能基础 ​

6.1.1 Wi-Fi模式与介绍 ​

本节介绍ESP32的Wi-Fi模式,包括STA模式和AP模式,以及如何进行基本的Wi-Fi操作,如连接网络和设置路由器等。

6.1.2 Wi-Fi STA与AP配置 ​

本节介绍如何在ESP32中配置Wi-Fi STA(Station)和AP(Access Point)模式,帮助用户快速实现设备与路由器或其他设备的连接。

6.2 网络协议应用 ​

6.2.1 TCP协议 ​

本节讲解TCP协议的原理及在ESP32中的实现,包含连接、数据传输及断开连接的操作步骤。

6.2.2 UDP协议 ​

本节介绍UDP协议的工作原理及在ESP32上的应用,包含数据发送与接收的实现方法。

6.2.3 HTTP协议 ​

本节介绍ESP32如何实现HTTP协议,包括创建HTTP客户端和服务器的步骤,以及常见的应用场景。

6.2.4 WebSocket协议 ​

本节讲解WebSocket协议在ESP32中的应用,如何通过WebSocket实现实时双向通信。

6.2.5 MQTT协议 ​

本节介绍ESP32如何实现MQTT协议,包括客户端连接、订阅和发布消息的基本操作。

6.2.6 ESP-NOW协议 ​

本节介绍ESP32的ESP-NOW协议,讲解其在无需Wi-Fi路由器的情况下实现设备间直接通信的应用场景。

6.2.7 SNTP校时 ​

本节介绍使用SNTP从网络获取准确时间。


七、蓝牙功能与相关协议 (更新中) ​

目标:掌握ESP32蓝牙功能的配置与使用,实现蓝牙低功耗和经典蓝牙的通信功能。

7.1 蓝牙功能基础 ​

  • BLE与经典蓝牙的区别
  • 蓝牙开发环境配置

7.2 BLE开发 ​

  • BLE广播与扫描
  • BLE连接与数据传输

7.3 经典蓝牙开发 ​

  • SPP协议基础
  • 经典蓝牙数据传输

八、图形界面开发 (更新中) ​

目标:学习LVGL图形库的基础知识,掌握图形界面开发的核心方法,设计简单的GUI界面。

8.1 LVGL基础 ​

  • LVGL环境搭建
  • LVGL的基本架构

8.2 常用组件与布局 ​

  • 常用控件的使用(按钮、标签等)
  • 布局系统与屏幕适配

8.3 图形界面项目开发 ​

  • 动态界面更新
  • 图形界面优化技巧

九、其他实用内容 ​

补充一些综合性性案例,与实用功能,为前八章做补充。

9.1 Wi-Fi配网技术 ​

9.1.1 Blufi配网 ​

9.1.2 Smartconfig配网 ​

9.1.3 SoftAP配网 ​

  • 📄在线文字教程:SoftAP配网.md
  • 📺在线视频教程:🚧 开发中
  • 💾教程配套代码:🚧 开发中

9.2 Web服务程序(Vue3+element-plus) ​

9.3 OTA功能 ​

  • 📄在线文字教程:ESP32-OTA初探.md
  • 📺在线视频教程:🚧 开发中
  • 💾教程配套代码:🚧 开发中

9.4 ModBus功能 ​

十、项目实战 ​

目标:通过综合项目实践,整合所学知识,独立开发基于ESP32的完整应用,提升实战能力。

参考链接 ​