当前位置: 首页 > 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框架实现网络入侵检测。近年来,网络安全威胁日益严峻,传统基于规则的方法难以应对复杂多变的入侵手段。 深度学习技术凭借其强大的特征学习能力和自适应性,…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

CMake控制VS2022项目文件分组

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

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...

数据结构第5章:树和二叉树完全指南(自整理详细图文笔记)

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 原创笔记&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 上一篇&#xff1a;《数据结构第4章 数组和广义表》…...

基于单片机的宠物屋智能系统设计与实现(论文+源码)

本设计基于单片机的宠物屋智能系统核心是实现对宠物生活环境及状态的智能管理。系统以单片机为中枢&#xff0c;连接红外测温传感器&#xff0c;可实时精准捕捉宠物体温变化&#xff0c;以便及时发现健康异常&#xff1b;水位检测传感器时刻监测饮用水余量&#xff0c;防止宠物…...

CSS3相关知识点

CSS3相关知识点 CSS3私有前缀私有前缀私有前缀存在的意义常见浏览器的私有前缀 CSS3基本语法CSS3 新增长度单位CSS3 新增颜色设置方式CSS3 新增选择器CSS3 新增盒模型相关属性box-sizing 怪异盒模型resize调整盒子大小box-shadow 盒子阴影opacity 不透明度 CSS3 新增背景属性ba…...

基于开源AI智能名片链动2 + 1模式S2B2C商城小程序的沉浸式体验营销研究

摘要&#xff1a;在消费市场竞争日益激烈的当下&#xff0c;传统体验营销方式存在诸多局限。本文聚焦开源AI智能名片链动2 1模式S2B2C商城小程序&#xff0c;探讨其在沉浸式体验营销中的应用。通过对比传统品鉴、工厂参观等初级体验方式&#xff0c;分析沉浸式体验的优势与价值…...

如何做好一份技术文档?从规划到实践的完整指南

如何做好一份技术文档&#xff1f;从规划到实践的完整指南 &#x1f31f; 嗨&#xff0c;我是IRpickstars&#xff01; &#x1f30c; 总有一行代码&#xff0c;能点亮万千星辰。 &#x1f50d; 在技术的宇宙中&#xff0c;我愿做永不停歇的探索者。 ✨ 用代码丈量世界&…...