以后只要有空就会进行学习记录,主要是自用,学到哪记录到哪,有时候东西记录下来能得到不通的理解。
最终的目的是为了用esp32驱动屏幕,学习设计LVGL界面,做一些小产品,有益于公司及个人。之前接触多的UI还是上位机的QT,esp32自己接触过arduino用的不熟,都是改别人的,调用一大堆库,idf仅有部分了解。个人感觉用idf只用自己需要的依赖,程序会不会更小一点,更容易理解底层。
之前买过一堆电子垃圾,做出来一个没有太大用处的东西,用步进电机显示大概时间,屏幕显示天气,但好歹是我完全自己跨行做的第一个东西,元器件采购,pcb设计,焊接,简单外壳设计,程序都是我自己做的,对我来说还是有意义的。
houyawei - 嘉立创EDA开源硬件平台https://oshwhub.com/houyawei/works废话说完了,开始记录学习。咱自己记录的东西,就尽量不复制官方原文了,会放链接和自己的简单理解。
1.安装ESP-IDF
①vscode官网下载安装
②左边扩展,搜索EDP-IDF并安装
③安装IDF环境
https://github.com/espressif/vscode-esp-idf-extension/blob/HEAD/README_CN.mdhttps://github.com/espressif/vscode-esp-idf-extension/blob/HEAD/README_CN.md扩展工具里面写的教程已经很详细了,要注意:
1)主要是下载源别选github就行,中国源快
2)版本我一般喜欢选择次最新的版本,API不会太老,又相对稳定。在这里选择的是V5.2.2
2.了解ESP-IDF库和框架
一般大家学习装完环境就去测试helloworld了,我之前一直比较好奇一个东西,arduino里面一大堆别人封装的库,idf里面也应该有的。咱先不研究示例代码,先看看idf的各种库
①:框架是两种,一种是简单易用的arduino-esp32。
他是基于esp-idf的,所以idf的API会比arduino新。arduino也可以作为依赖,添加到idf的项目中。
Arduino as an ESP-IDF component - - — Arduino ESP32 latest documentationhttps://docs.espressif.com/projects/arduino-esp32/en/latest/esp-idf_component.html
②:另一种就是我想要学习的ESP-IDF了
1)ESP-WHO
ESP-WHO 是基于乐鑫芯片的图像处理开发平台,其中包含了实际应用中可能出现的开发示例。ESP-WHO 提供了例如人脸检测、人脸识别、猫脸检测和手势识别等示例。您可以基于这些示例,衍生出丰富的实际应用。ESP-WHO 的运行基于 ESP-IDF。ESP-DL 为 ESP-WHO 提供了丰富的深度学习相关接口,配合各种外设可以实现许多有趣的应用。
2)ESP Rainmaker
ESP RainMaker 是一个完整的轻量级 AIoT 解决方案,能够以简单、经济、高效的方式为客户实现私有云部署。
ESP RainMaker 是一个轻量级的 AIoT 云计算软件,与 AWS 无服务器架构高度集成,支持客户以极少的代码构建、开发和部署具有高安全性的定制 AIoT 解决方案。
3)ESP-ADF
这是乐鑫的音频开发框架,支持音频播放。
ESP-ADF 以最全面的方式支持 Espressif Systems SoC 的音频应用程序开发。使用 ESP-ADF,您可以轻松添加功能,开发从简单到复杂的音频和视频应用程序:
- 音乐播放器或录音机支持 MP3、AAC、FLAC、WAV、OGG、OPUS、AMR、TS、EQ、Downmixer、Sonic、ALC、G.711 等音频格式。
- 播放来自以下来源的音乐:HTTP、HLS(HTTP 实时流)、SPIFFS、SDCARD、A2DP-Source、A2DP-Sink、HFP 等。
- 集成媒体协议,例如:DLNA、VoIP、RMTP、ESP-RTC(SIP、RTSP 和 RTCP)等。
- 视频通话、视频录制和视频直播
- 网络电台
- 语音识别并与 Alexa、DuerOS 等在线服务集成
4)ESP-MDF
wifi mesh组网框架
ESP-MDF 在 ESP-WIFI-MESH 协议栈的基础上增加了配网、升级、调试机制及应用示例。使用 ESP-MDF 您可以快速上手 ESP-WIFI-MESH 开发。其主要特点如下:
- 快速配网:在 app 配网的基础上增加了设备间链式配网,以实现大范围快速配网;
- 稳定升级:通过断点续传、数据压缩、版本回退和固件检查等机制达到高效升级;
- 高效调试:支持指令终端、通过无线进行日志传输和调试等多种调试方式;
- 局域网控制:支持 app 控制、传感器控制等;
- 丰富的示例:提供了基于 ESP-WIFI-MESH 的照明等综合解决方案。
5)ESP-IOT Solution
提供各种iot,外设驱动,一些屏幕驱动就可以在这里面找到
ESP-IoT-Solution 包含物联网系统开发中常用的外设驱动和代码框架,提供了 ESP-IDF 的扩展组件,方便用户实现更简单的开发。
ESP-IoT-Solution 包含的内容如下:
- 传感器、显示屏、音频设备、输入设备、执行机构等设备驱动;
- 低功耗、安全加密、存储方案等代码框架或说明文档;
- 从实际应用的角度出发,为乐鑫开源解决方案提供了入口指引。
6)ESP-NOW
ESP-NOW 是乐鑫定义的一种无连接 Wi-Fi 通信协议。与传统的 Wi-Fi 协议不同,ESP-NOW 将 OSI 模型中的前 5 层简化为了一层,因此数据无需经过网络层、传输层、会话层、表示层和应用层进行传输,减少了网络拥塞下因数据丢包引起的延迟,实现了快速响应。
7)ESP-Jumpstart
这个是从头到尾介绍一款基于ESP32开发到落地整个流程
ESP-Jumpstart 项目专注于在 ESP32 上构建“产品”,展示了基于 ESP32 的完整产品开发流程。该项目分步介绍了一款真实产品的完整开发流程,即一款功能齐全、随时可推广的“智能电源插座”。
3.后续学习方向
我想做一个蓝牙播放器,有图形界面,就需要学习以下的东西
3.1 ESP-IDF的基本示例
3.2 ESP-IOT Solution外设相关
3.3 LVGL 图形库
3.4 ESP-ADF音频处理
4.学习硬件
一个ESP32C3,某宝搜合宙ESP32C3,其他品牌的也可以,很便宜的开发板,12RMB包邮
这个买简约款就行,9.9的。经典款的多个串口芯片反而不支持直接debug了。
参考:ESP-IDF学习记录(2)ESP-IDF 示例代码分析-CSDN博客文章浏览阅读31次。傻瓜式记录一个示例的打开,编译,运行。后面我再一个个运行简单分析每个demo的内容。https://blog.csdn.net/u011738895/article/details/144790339?spm=1001.2014.3001.5502
5.学习资料整理
适用于 VS Code 的 ESP-IDF 扩展 - - — ESP-IDF Extension for VSCode latest 文档https://docs.espressif.com/projects/vscode-esp-idf-extension/zh_CN/latest/index.html#ESP-IoT-Solution 编程指南 - - — ESP-IoT-Solution latest 文档https://docs.espressif.com/projects/esp-iot-solution/zh_CN/latest/index.html乐鑫音频应用开发指南 - - — ADF 音频应用开发框架 latest 文档https://docs.espressif.com/projects/esp-adf/zh_CN/latest/index.htmlESP-IDF 编程指南 - ESP32-C3 - — ESP-IDF 编程指南 latest 文档https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32c3/index.htmlESP32C3-CORE开发板 - LuatOS 文档https://wiki.luatos.com/chips/esp32c3/board.html立创开发板技术文档中心https://wiki.lckfb.com/zh-hans/esp32s3r8n8/实战派开发板文档教程资料 | 立创开发板技术文档中心https://wiki.lckfb.com/zh-hans/szpi-esp32c3/beginner/
//houyawei 20241228