当前位置: 首页 > news >正文

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

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

        最终的目的是为了用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

相关文章:

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

以后只要有空就会进行学习记录,主要是自用,学到哪记录到哪,有时候东西记录下来能得到不通的理解。 最终的目的是为了用esp32驱动屏幕,学习设计LVGL界面,做一些小产品,有益于公司及个人。之前接触多的UI还是…...

Windows系统提示synsoacc.dll文件报错要怎么解决?

一、文件丢失问题:深度剖析与应对策略 文件丢失是电脑运行时常见的问题之一。它可能由多种原因引起,如硬盘故障、病毒攻击、不当的文件操作等。当Windows系统提示synsoacc.dll丢失时,通常意味着该文件对于当前正在运行的程序或系统服务至关重…...

React(一)—— router/useRef/useState

文章目录 项目地址一、构建项目1.1 使用vite构建项目1.2 所需插件二、Router2.1 安装router2.2 创建路由规则2.3 创建导航栏2.3.1 添加样式文件2.3.2 添加导航栏组件2.3.3 给每个页面添加Menu导航栏2.4 通过路由给页面传值三、Hooks3.1 useRef3.2 useRef操作DOM元素3.3 useRef进…...

ipad如何直连主机(Moonlight Sunshine)

Windows 被连接主机(Windows) 要使用的话需要固定ip,不然ip会换来换去,固定ip方法本人博客有记载Github下载Sunshine Sunshine下载地址除了安装路径需要改一下,其他一路点安装完成后会打开Sunshine的Web UI&#xff…...

音视频入门知识(二)、图像篇

⭐二、图像篇 视频基本要素:宽、高、帧率、编码方式、码率、分辨率 ​ 其中码率的计算:码率(kbps)=文件大小(KB)*8/时间(秒),即码率和视频文件大小成正比 YUV和RGB可相互转换 ★YUV(原始数据&am…...

v-if 和 v-show 的区别

一、原理区别 1. v-if 这是一个指令,用于条件性地渲染一个元素块。当v-if表达式的值为true时,元素及其包含的子元素才会被渲染到 DOM 中;当表达式的值为false时,元素及其子元素会被完全移除。这意味着在切换v-if的条件时&#x…...

解密MQTT协议:从QOS到消息传递的全方位解析

1、QoS介绍 1.1、QoS简介 使用MQTT协议的设备大部分都是运行在网络受限的环境下,而只依靠底层的TCP传输协议,并不 能完全保证消息的可靠到达。 MQTT提供了QoS机制,其核心是设计了多种消息交互机制来提供不同的服务质量,来满足…...

Java-02 深入浅出 MyBatis - MyBatis 快速入门(无 Spring) POM Mapper 核心文件 增删改查

点一下关注吧!!!非常感谢!!持续更新!!! 大数据篇正在更新!https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了: MyBatis&#xff…...

Unity功能模块一对话系统(4)实现个性文本标签

本期我们将了解如何在TMPro中自定义我们的标签样式&#xff0c;并实现两种有趣的效果。 一.需求描述 1.定义<float>格式的标签&#xff0c;实现标签处延迟打印功能 2.定义<r" "></r>格式的标签&#xff0c;实现标签区间内文本片段的注释显示功能…...

git在idea中操作频繁出现让输入token或用户密码,可以使用凭证助手(使用git命令时输入的用户密码即可) use credential helper

1、打开 idea 设置&#xff0c;找到 git 路径 File | Settings | Version Control | Git 2、勾选 Use credential helper 即可...

毫米波雷达技术:(九)快时间窗和慢时间窗的概念

&#xff08;一&#xff09;快时间窗&#xff1a; 快时间窗通常指的是在雷达脉冲周期内&#xff0c;对每个脉冲回波进行采样的时间段。这个时间段非常短&#xff0c;通常在 0 − 100 n s 0-100ns 0−100ns 。在快时间窗内&#xff0c;雷达系统会对接收到的回波信号进行高分辨…...

宠物行业的出路:在爱与陪伴中寻找增长新机遇

在当下的消费市场中&#xff0c;如果说有什么领域能够逆势而上&#xff0c;宠物行业无疑是一个亮点。当人们越来越注重生活品质和精神寄托时&#xff0c;宠物成为了许多人的重要伴侣。它们不仅仅是家庭的一员&#xff0c;更是情感的寄托和生活的调剂。然而&#xff0c;随着行业…...

Android MQTT关于断开连接disconnect报错原因

最近项目遇到一个需求&#xff0c;就是在登录状态的时候。才能接收到消息。所有我在上线&#xff0c;下线状态的时候。做了MQTT断开和连接的动作。然后就是发生了。我们标题的这关键点了。直接报错了。报错的内容如下&#xff1a; MqttAndroidClient unregisterRecevicer afte…...

Unity3D中Huatuo可行性的思维实验详解

引言 Unity3D作为一款功能强大的跨平台游戏引擎&#xff0c;在游戏开发领域具有举足轻重的地位。它不仅支持2D和3D游戏开发&#xff0c;还广泛应用于虚拟现实、建筑可视化等领域。其中&#xff0c;Huatuo作为一个强大的热更新解决方案&#xff0c;通过扩展Unity的IL2CPP运行时…...

ES-聚合分析

ES的聚合分析 什么是ES的聚合分析 ElasticSearch除搜索意外&#xff0c;提供的针对ES数据进行统计分析的功能通过聚合&#xff0c;我们会得到一个数据的概览&#xff0c;是分析和总结全套的数据&#xff0c;而不是寻找单独的文档高性能&#xff0c;只要一条语句就可以得到分析…...

【CSS in Depth 2 精译_093】16.2:CSS 变换在动效中的应用(上)—— 图标的放大和过渡效果的设置

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第五部分 添加动效 ✔️【第 16 章 变换】 ✔️ 16.1 旋转、平移、缩放与倾斜 16.1.1 变换原点的更改16.1.2 多重变换的设置16.1.3 单个变换属性的设置 16.2 变换在动效中的应用 ✔️ 16.2.1 放大图…...

Linux Debian安装ClamAV和命令行扫描病毒方法,以及用Linux Shell编写了一个批量扫描病毒的脚本

ClamAV是一个开源的跨平台病毒扫描引擎&#xff0c;用于检测恶意软件、病毒、木马等安全威胁。 一、Linux Debian安装ClamAV 在Linux Debian系统上安装ClamAV&#xff0c;你可以按照以下步骤进行&#xff1a; 更新软件包列表&#xff1a; 打开终端并更新你的软件包列表&#…...

Spring创建异步线程,使用@Async注解时不指定value可以吗?

在Spring中使用Async注解时&#xff0c;不指定value是可以的。如果没有指定value&#xff08;即线程池的名称&#xff09;&#xff0c;Spring会默认使用名称为taskExecutor的线程池。如果没有定义taskExecutor线程池&#xff0c;则Spring会自动创建一个默认的线程池。 默认行为…...

二分和离散化

为什么把二分和离散化放一起&#xff1a;因为离散化其实是一种二分整数的过程。 二分 相信大家都接触过二分查找&#xff08;折半查找&#xff09;&#xff0c;这就是二分的思想。 二分通过每次舍弃一半并不存在答案的区间&#xff0c;进而快速锁定要求的答案&#xff08;二…...

深度学习实战102-基于深度学习的网络入侵检测系统,利用各种AI模型和pytorch框架实现网络入侵检测

大家好,我是微学AI,今天给大家介绍一下深度学习实战102-基于深度学习的网络入侵检测系统,利用各种AI模型和pytorch框架实现网络入侵检测。近年来,网络安全威胁日益严峻,传统基于规则的方法难以应对复杂多变的入侵手段。 深度学习技术凭借其强大的特征学习能力和自适应性,…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

腾讯云V3签名

想要接入腾讯云的Api&#xff0c;必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口&#xff0c;但总是卡在签名这一步&#xff0c;最后放弃选择SDK&#xff0c;这次终于自己代码实现。 可能腾讯云翻新了接口文档&#xff0c;现在阅读起来&#xff0c;清晰了很多&…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...