ESP32从初见到入门 —— 目录
许可协议: 本仓库中的文本、代码、图片和视频均采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议— CC BY-NC-SA 4.0。
〇、常见问题及解决方案: 本部分记录搭建环境和开发过程中常见的问题和解决方案,都是本人在开发过程中遇到的,作为经验积累,分享给大家。
常见问题及解决方案:常见问题及解决方案.md
一、认识ESP32 【完结】 目标:学会安装ESP-IDF开发环境,并使用其烧录代码,掌握ESP32的基本特点及工具使用。
1.1 什么是ESP32 本节主要介绍ESP32的基本概念,包括其硬件特点、应用场景及功能优势。通过本节内容,初学者可以快速了解ESP32的核心能力以及在物联网开发中的广泛应用。
📄在线文字教程:ESP32介绍.md📺在线视频教程:ESP32介绍1.2 ESP32开发环境搭建 本节将详细讲解如何在不同操作系统(Windows/Linux/Mac)上搭建ESP-IDF开发环境,涵盖工具链安装、环境变量配置及调试工具的准备等内容。通过本节,读者可以完成开发环境的搭建,为后续开发做好准备。
📄在线文字教程-1:环境搭建-Windows.md📄在线文字教程-2:环境搭建-Ubuntu虚拟机.md📄在线文字教程-3:环境搭建-Windows与虚拟机组合使用.md📺在线视频教程-1:认识ESP32—1.2.1 Win下安装ESP-IDF开发环境📺在线视频教程-2:认识ESP32—1.2.2 Linux下安装ESP-IDF开发环境📺在线视频教程-3:认识ESP32—1.2.3 Windows下使用ssh调用Linux系统下的开发环境1.3 初试ESP32-IDF.py的基本使用 本节通过“Hello World”示例代码,指导读者创建第一个ESP32工程,并完成编译、烧录及运行调试流程。通过本节内容,初学者可以初步体验ESP-IDF的开发流程,快速进入ESP32开发的世界。
📄在线文字教程:ESP32初体验-idf.py的基本使用.md📺在线视频教程:ESP32初体验-idf.py的基本使用💾教程配套代码:ESP32-Guide/code/01.start/hello_world二、IDF基础与工具使用 【完结】 目标:熟悉ESP-IDF的架构与开发流程,掌握常用开发工具及调试方法,建立高效开发基础。
2.1 ESP32工程结构 本节详细介绍ESP-IDF项目的基本目录结构,包括CMake工具的基础知识,帮助读者掌握ESP32工程的整体组织方式,为日后开发复杂项目奠定基础。
📄在线文字教程:ESP32工程结构.md📺在线视频教程:ESP32工程结构💾教程配套代码:ESP32-Guide/code/02.idf_basic/sample_project2.2 ESP-IDF项目配置 本节将重点讲解如何使用menuconfig工具配置项目,包含常见的配置选项及其实际用途。通过本节学习,读者可以根据项目需求快速定制和优化ESP32项目配置。
📄在线文字教程:ESP-IDF项目配置.md📺在线视频教程:ESP-IDF项目配置详解💾教程配套代码:ESP32-Guide/code/02.idf_basic/config2.3 ESP-IDF自定义组件 本节讲解如何创建和管理ESP-IDF的自定义组件,包括组件的目录结构、声明与调用方法,以及组件的复用和共享技巧,帮助读者构建模块化项目。
📄在线文字教程:ESP-IDF自定义组件.md📺在线视频教程:ESP-IDF自定义组件💾教程配套代码:ESP32-Guide/code/02.idf_basic/blink_component2.4 ESP-IDF组件管理器 本节重点介绍ESP-IDF组件管理器的功能与使用方法,涵盖如何通过组件管理器导入外部库、配置组件依赖,使用官方提供的外部组件。
📄在线文字教程:ESP-IDF组件管理器.md📺在线视频教程:ESP-IDF组件管理器详解💾教程配套代码:ESP32-Guide/code/02.idf_basic/button_blink三、FreeRTOS基础(更新中) 目标:学习FreeRTOS的核心概念与基本功能,掌握任务管理与调度机制,为实时系统开发打下基础。
3.1 FreeRTOS介绍与引入 本节将介绍FreeRTOS的核心概念,包括实时操作系统的特点、FreeRTOS的基本架构和设计思想,以及其在嵌入式开发中的应用场景,帮助读者快速了解FreeRTOS的基础知识。
📄在线文字教程:FreeRTOS概述.md📺在线视频教程:🚧 开发中3.2 FreeRTOS多任务与任务管理 本节讲解FreeRTOS中的多任务机制及任务管理方法,包括任务创建、任务删除、任务优先级和任务状态的管理。通过本节学习,读者可以初步掌握在FreeRTOS中实现并发任务的基本技巧。
📄在线文字教程:FreeRTOS多任务与任务管理.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/03.freertos_basic/task3.3 FreeRTOS任务看门狗 本节讲解 FreeRTOS 中任务看门狗机制的原理包括如何监控任务执行状态、检测任务卡死以及触发系统恢复等功能。通过学习任务看门狗,读者可以掌握提高系统可靠性的重要技巧,确保任务能够在异常情况下得到及时处理。
📄在线文字教程:FreeRTOS任务看门狗.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/03.freertos_basic/watchdog3.4 FreeRTOS软件定时器 (Software Timer) 通过软件定时器实现定时触发任务逻辑,学习其管理及高级用法。
📄在线文字教程:FreeRTOS软件定时器.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/03.freertos_basic/timer四、外设学习 (更新中) 目标:掌握ESP32常用外设的基本操作方法,学会与硬件交互并控制外设设备。
4.1 基础外设 4.1.1 GPIO 本节介绍GPIO(通用输入输出)的基本功能,包括输入、输出及中断操作。通过实际案例,学习如何控制外部设备并响应硬件信号。
📄在线文字教程:外设-GPIO入门.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/04.peripheral/basics/gpio4.1.2 UART 本节讲解UART串口通信的原理及在ESP32中的实现,内容涵盖UART初始化、数据收发及常见调试方法。
📄在线文字教程:外设-UART串口.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/04.peripheral/basics/uart4.1.3 定时器 本节内容包括ESP32硬件定时器的初始化、配置及应用,通过案例学习如何实现精确的时间控制与定时任务。
📄在线文字教程:外设-硬件定时器.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/04.peripheral/basics/gptimer4.1.4 ADC(模数转换) 本节讲解ESP32的ADC模块,包括采样的基本配置与信号转换,并通过示例学习如何读取模拟信号。
📄在线文字教程:ADC模数转换.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/04.peripheral/basics/adc4.1.5 DAC(数模转换) 本节讲解DAC模块的基本操作,学习如何将数字信号转换为模拟信号输出。
📄在线文字教程:DAC数模转换.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/04.peripheral/basics/dac4.1.6 LED PWM 本节介绍LED PWM(脉宽调制)的原理及操作方法,通过实际案例学习如何控制LED亮度。
📄在线文字教程:LED PWM控制.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/04.peripheral/basics/led_pwm4.1.7 I2C 本节讲解I2C通信协议及在ESP32中的实现,内容涵盖设备寻址、数据收发及实际应用。
📄在线文字教程:I2C通信.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/04.peripheral/basics/i2c4.1.8 SPI 本节介绍SPI通信协议及其在ESP32中的使用,学习如何通过SPI与外部设备通信。
📄在线文字教程:SPI通信.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/04.peripheral/basics/spi4.1.9 I2S 本节介绍I2S通信协议及其在ESP32中的使用,学习如何通过I2S与外部设备通信。
📄在线文字教程:I2S通信.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/04.peripheral/basics/i2s4.2 存储外设 4.2.1 分区表设计 本节讲解ESP32的分区表结构及设计方法,学习如何规划存储空间以满足不同开发需求。
📄在线文字教程:分区表设计.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/04.peripheral/storage/partition4.2.2 非易失性存储(NVS) 本节介绍NVS的使用方法,学习如何在ESP32中存储和读取持久化数据。
📄在线文字教程:非易失性存储.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/04.peripheral/storage/nvs4.2.3 FAT文件系统 本节讲解FAT文件系统的基本操作,学习如何在ESP32中管理文件及目录。
📄在线文字教程:FAT文件系统.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/04.peripheral/storage/flash_fatfs4.2.4 SPIFFS文件系统 本节介绍SPIFFS文件系统的基本操作,学习如何在ESP32中使用轻量级文件系统进行数据存储与读取。
📄在线文字教程:SPIFFS文件系统.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/04.peripheral/storage/flash_spiffs4.2.5 ESP32存储-SD、SDIO、MMC 驱动 本节介绍ESP32存储-SD、SDIO、MMC 驱动的基本操作.
📄在线文字教程:SD卡驱动.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/04.peripheral/storage/sdmmc4.3 其他外设 五、FreeRTOS进阶 (更新中) 目标:学习FreeRTOS任务间通信与系统优化技术,为后续高级外设的使用打下基础。
5.1 队列 (Queue) 学习FreeRTOS中队列的基本概念及用法,掌握如何在任务之间传递数据,并理解阻塞与优先级特性。
📄在线文字教程:FreeRTOS队列使用教程.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/05.freertos_advanced/queue5.2 信号量 (Semaphore) 和互斥量 (Mutex) 理解信号量的分类(计数信号量与二值信号量),学习如何通过信号量实现任务同步及资源管理。
📄在线文字教程:FreeRTOS信号量教程.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/05.freertos_advanced/semphr5.3 互斥量 (Mutex) 掌握互斥量的作用及优先级反转问题,学习如何保护共享资源以避免竞争条件。
📄在线文字教程:FreeRTOS互斥量教程.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/05.freertos_advanced/semphr5.4 事件组 (Event Group) 学习如何通过事件组实现复杂的任务同步逻辑及事件管理。
📄在线文字教程:FreeRTOS事件组教程.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/05.freertos_advanced/event_group5.5 任务通知 (Task Notifications) 了解任务通知的特点,掌握其在任务间高效通信中的实际应用。
📄在线文字教程:FreeRTOS任务通知教程.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/05.freertos_advanced/task_notify六、Wi-Fi功能与相关协议 (更新中) 目标:学会使用ESP32的Wi-Fi功能,实现无线网络连接及常见通信协议的应用开发。
6.1 Wi-Fi功能基础 6.1.1 Wi-Fi模式与介绍 本节介绍ESP32的Wi-Fi模式,包括STA模式和AP模式,以及如何进行基本的Wi-Fi操作,如连接网络和设置路由器等。
📄在线文字教程:Wi-Fi模式与介绍.md📺在线视频教程:🚧 开发中6.1.2 Wi-Fi STA与AP配置 本节介绍如何在ESP32中配置Wi-Fi STA(Station)和AP(Access Point)模式,帮助用户快速实现设备与路由器或其他设备的连接。
📄在线文字教程:Wi-Fi的STA与AP配置.md📺在线视频教程: 🚧 开发中💾教程配套代码:ESP32-Guide/code/06.wifi/wifi_basic6.2 网络协议应用 6.2.1 TCP协议 本节讲解TCP协议的原理及在ESP32中的实现,包含连接、数据传输及断开连接的操作步骤。
📄在线文字教程:TCP协议应用.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/06.wifi/tcp6.2.2 UDP协议 本节介绍UDP协议的工作原理及在ESP32上的应用,包含数据发送与接收的实现方法。
📄在线文字教程:UDP协议应用.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/06.wifi/udp6.2.3 HTTP协议 本节介绍ESP32如何实现HTTP协议,包括创建HTTP客户端和服务器的步骤,以及常见的应用场景。
📄在线文字教程-1:HTTP协议(服务端).md📄在线文字教程-2:HTTP协议(客户端).md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/06.wifi/http6.2.4 WebSocket协议 本节讲解WebSocket协议在ESP32中的应用,如何通过WebSocket实现实时双向通信。
📄在线文字教程:WebSocket协议应用.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/06.wifi/websocket6.2.5 MQTT协议 本节介绍ESP32如何实现MQTT协议,包括客户端连接、订阅和发布消息的基本操作。
📄在线文字教程:MQTT协议应用.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/06.wifi/mqtt6.2.6 ESP-NOW协议 本节介绍ESP32的ESP-NOW协议,讲解其在无需Wi-Fi路由器的情况下实现设备间直接通信的应用场景。
📄在线文字教程:ESP-NOW协议应用.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/06.wifi/espnow6.2.7 SNTP校时 本节介绍使用SNTP从网络获取准确时间。
📄在线文字教程:SNTP校时.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/06.wifi/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配网 📄在线文字教程:BluFi配网.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/09.extra/wifi_config/blufi9.1.2 Smartconfig配网 📄在线文字教程:Smartconfig配网.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/09.extra/wifi_config/smart_config9.1.3 SoftAP配网 📄在线文字教程:SoftAP配网.md📺在线视频教程:🚧 开发中💾教程配套代码:🚧 开发中9.2 Web服务程序(Vue3+element-plus) 📄在线文字教程:WEB服务程序(Vue3+element-plus).md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/09.extra/restful_server_vue39.3 OTA功能 📄在线文字教程:ESP32-OTA初探.md📺在线视频教程:🚧 开发中💾教程配套代码:🚧 开发中9.4 ModBus功能 📄在线文字教程:ESP32上ModBus的使用-串口从站.md📺在线视频教程:🚧 开发中💾教程配套代码:ESP32-Guide/code/09.extra/modbus十、项目实战 目标:通过综合项目实践,整合所学知识,独立开发基于ESP32的完整应用,提升实战能力。
参考链接 孤独的二进制: https://space.bilibili.com/1375767826Augtons正(单片机): https://blog.csdn.net/m0_50064262/article/details/120250151乐鑫文档: https://docs.espressif.com/projects/esp-idf/zh_CN/release-v4.4/esp32c3/index.html第九个下弦月: https://space.bilibili.com/34165842?spm_id_from=333.999.0.0Michael_ee: https://space.bilibili.com/505630520/fans/follow?tagid=529812