ESP-IDF学习记录(1)ESPIDF环境安装,框架了解,资料整理

news/2025/1/2 18:40:27/

        以后只要有空就会进行学习记录,主要是自用,学到哪记录到哪,有时候东西记录下来能得到不通的理解。

        最终的目的是为了用esp32驱动屏幕,学习设计LVGL界面,做一些小产品,有益于公司及个人。之前接触多的UI还是上位机的QT,esp32自己接触过arduino用的不熟,都是改别人的,调用一大堆库,idf仅有部分了解。个人感觉用idf只用自己需要的依赖,程序会不会更小一点,更容易理解底层。

        之前买过一堆电子垃圾,做出来一个没有太大用处的东西,用步进电机显示大概时间,屏幕显示天气,但好歹是我完全自己跨行做的第一个东西,元器件采购,pcb设计,焊接,简单外壳设计,程序都是我自己做的,对我来说还是有意义的。

houyawei - 嘉立创EDA开源硬件平台icon-default.png?t=O83Ahttps://oshwhub.com/houyawei/works废话说完了,开始记录学习。咱自己记录的东西,就尽量不复制官方原文了,会放链接和自己的简单理解。

1.安装ESP-IDF

        ①vscode官网下载安装

        ②左边扩展,搜索EDP-IDF并安装

        ③安装IDF环境

https://github.com/espressif/vscode-esp-idf-extension/blob/HEAD/README_CN.mdicon-default.png?t=O83Ahttps://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 documentationicon-default.png?t=O83Ahttps://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 文档icon-default.png?t=O83Ahttps://docs.espressif.com/projects/vscode-esp-idf-extension/zh_CN/latest/index.html#ESP-IoT-Solution 编程指南 - - — ESP-IoT-Solution latest 文档icon-default.png?t=O83Ahttps://docs.espressif.com/projects/esp-iot-solution/zh_CN/latest/index.html乐鑫音频应用开发指南 - - — ADF 音频应用开发框架 latest 文档icon-default.png?t=O83Ahttps://docs.espressif.com/projects/esp-adf/zh_CN/latest/index.htmlESP-IDF 编程指南 - ESP32-C3 - — ESP-IDF 编程指南 latest 文档icon-default.png?t=O83Ahttps://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32c3/index.htmlESP32C3-CORE开发板 - LuatOS 文档icon-default.png?t=O83Ahttps://wiki.luatos.com/chips/esp32c3/board.html立创开发板技术文档中心icon-default.png?t=O83Ahttps://wiki.lckfb.com/zh-hans/esp32s3r8n8/实战派开发板文档教程资料 | 立创开发板技术文档中心icon-default.png?t=O83Ahttps://wiki.lckfb.com/zh-hans/szpi-esp32c3/beginner/

//houyawei 20241228


http://www.ppmy.cn/news/1559478.html

相关文章

聊一聊 C#线程池 的线程动态注入

提高注入速度的两种方法 1. 降低GateThread的延迟时间 上一篇跟大家聊过 Result 默认情况下GateThread每秒会注入4个,底层逻辑是由 Blocking.MaxDelayMs250ms 变量控制的,言外之意就是能不能减少这个变量的值呢?当然可以的,这里我…

通过百度api处理交通数据

通过百度api处理交通数据 1、读取excel获取道路数据 //道路名称Data EqualsAndHashCode public class RoadName {ExcelProperty("Name")private String name; }/*** 获取excel中的道路名称*/private static List<String> getRoadName() {// 定义文件路径&…

计算机网络:IP地址相关知识总结

目录 一、IP地址的表现形式 1.1 十进制表示形式 1.2 二进制表示形式 1.3 转换示例介绍 二、IP地址的组成 2.1 网络ID 2.2 主机ID 2.3 示例 三、IP地址的分类 3.1 A类地址 3.2 B类地址 3.3 C类地址 3.4 D类地址 3.5 E类地址 四、常见的特殊IP地址 五、IP地址二进…

Leetcode - 146双周赛

目录 一&#xff0c;3392. 统计符合条件长度为 3 的子数组数目 二&#xff0c;3393. 统计异或值为给定值的路径数目 三&#xff0c;3394. 判断网格图能否被切割成块 四&#xff0c;3395. 唯一中间众数子序列 I 一&#xff0c;3392. 统计符合条件长度为 3 的子数组数目 本题…

pytorch torch.nn.LayerNorm类介绍

torch.nn.LayerNorm 是 PyTorch 中的一种标准化层,用于对输入的特征进行归一化。它在自然语言处理和序列建模中非常常见,可以帮助模型更快地收敛,并提高泛化能力。 关于类、层和模块 torch.nn.LayerNorm 是 一个类,它是 PyTorch 中标准化操作的实现,继承自 torch.nn.Modu…

上位机开发 的算法与数据结构

Python基础 Python是一种广泛使用的高级编程语言&#xff0c;以其简单易读的语法和强大的功能赢得了众多开发者的青睐。自1991年首次发布以来&#xff0c;Python已经经历了多个版本的更新&#xff0c;当前最新的稳定版本是Python 3.x。Python不仅适用于web开发、数据分析、人工…

【微服务】整合Nacos注册中心和动态配置

文章目录 1.Docker安装Nacos1.拉取镜像2.启动nacos3.开启8848和9848端口1.88482.9848 4.访问Nacos 2.项目集成Nacos的服务发现1.引入依赖1.sun-dependencies 指定版本2.sun-cloud-nacos引入服务发现依赖和bootstrap依赖3.注意&#xff1a;修改完sun-dependencies的依赖后clean-…

BUUCTF Pwn ciscn_2019_es_2 WP

1.下载 checksec 用IDA32打开 定位main函数 发现了个假的后门函数&#xff1a; 看看vul函数&#xff1a; 使用read读取 想到栈溢出 但是只有48个 只能覆盖EBP和返回地址 长度不够构造 所以使用栈迁移&#xff1a; 栈迁移需要用到leave ret 使用ROPgadget找地址&#xff1a; …