乐鑫发布 esp-iot-solution v2.0 版本
今天,乐鑫很高兴地宣布,esp-iot-solution v2.0 版本已经发布,release/v2.0
分支下的正式版本组件将为用户提供为期两年的 Bugfix 维护(直到 2027.01.25 ESP-IDF v5.3 EOL)。该版本将物联网开发中常用的功能进行了分类整理,包括显示、照明、传感器、音频、电机控制、输入设备、USB 等。每个类别下都包含了多个功能丰富的组件,用户可以通过 ESP 组件管理器来单独安装、使用和更新。此外,该版本还提供了丰富的示例代码,帮助用户快速上手。以下将选取一些有代表性的组件进行介绍,更多组件的详细信息请参考 esp-iot-solution v2.0 文档。
基础组件
button
在物联网设备中,按键功能是不可缺少的一部分。在 esp-iot-solution v2.0
中,button
组件提供了一套完整的按键驱动和事件处理功能,支持单击、双击、长按等多种事件。支持多种按键类型,包括普通按键、ADC 按键、矩阵按键、自定义按键等。除外,还提供了按键防抖、按键休眠等功能。基于 button
组件,用户无需深入了解按键的底层驱动,只需关心按键的事件处理即可。
led_indicator
LED 指示灯同样是物联网设备中基础且必要的功能,它通过提供及时的视觉反馈,帮助用户快速了解设备状态 。在实际产品设计中,如何有效定义和管理 LED 指示灯,增强其灵活性和易用性,是一个值得思考的问题。esp-iot-solution v2.0
提供了一套完整的 LED 指示灯解决方案 led_indicator
,涵盖以下功能: LED 灯效设计(包括色彩、亮度、闪烁)、LED 优先级管理、LED 灯效切换。该组件兼容多种 LED 类型,包括单色 LED、RGB LED、WS2812 等。
电工照明
lightbulb_driver
面向专业开发者和照明系统集成商,乐鑫提供了一套高性价比的照明解决方案,使用户能够快速开发出高性能、低功耗的智能照明产品。lightbulb_driver
组件整合了多种调光方案,通过一个抽象层简化了开发者的应用集成,全面支持 ESP32 系列的所有芯片。组件支持 PWM、IIC 及单总线等多种调光方案,包括 RGB+冷/暖色温、RGB+CCT/亮度等。同时,该组件提供丰富的功能,如渐变动效、白平衡校准、断电记忆和多达五种灯珠的组合配置,具有功率限制和低功耗特性。
zero_detection
过零检测是调光器的重要组成部分,用于检测电压或电流波形的零交叉点,以便在最佳时机对灯具进行调节,这不仅可以实现平滑无闪烁的调光效果,还能减少电磁干扰 (EMI),以及延长灯具的寿命。zero_detection
使用 MCPWM 捕捉或 GPIO 中断,检测信号周期和触发边缘,并判断信号的有效性、无效性、是否超出预期的频率范围以及信号丢失情况,并以事件的形式返回给用户进行实时处理,为调光器的设计提供了基础支持。
显示组件
display/lcd
乐鑫为开发者提供了从零开始构建 LCD 驱动的解决方案指南,详细覆盖 LCD 驱动开发到 GUI 应用的全过程。基于 ESP-IDF 的 esp_lcd 组件,提供了众多 LCD 驱动,支持 QSPI、RGB、MIPI 等多种接口。此外,该版本还创新性地提供了 esp_lcd_usb_display 组件,支持将 ESP32 的显示内容通过 USB 投射在 PC 上,显著提升调试和开发效率。
display/tools
针对资源有限的设备,esp-iot-solution v2.0
提供了一套轻量级的文件系统管理工具:esp_mmap_assets。该组件支持图像数据的快速加载和显示。同时为了更好的支持 GUI 应用,向 LVGL 提供一套与文件系统交互的接口,支持从文件系统中加载字体、图片等资源。
USB 组件
usb_device_uvc
UVC (USB Video Class) 是一种用于视频设备的 USB 设备类标准,usb_device_uvc
是基于 USB-OTG 外设的 UVC 设备类库,支持通过 USB-OTG 将 ESP32 的图像数据显示在 PC 等主机设备上。该组件支持多种分辨率、帧率、格式等参数设置,用户无需关心底层 USB 协议,只需注册回调函数即可按照 UVC 标准发送图像数据。基于该组件,用户可以开发标准 USB 摄像头、USB 显示器等功能。乐鑫还提供了一套完整的 UVC 设备示例,可以帮助用户将 ESP32-S3-EYE 开发板变成一个标准的 webcam。
esp_msc_ota
esp_msc_ota
是一套基于 USB MSC (Mass Storage Class) 的固件升级方案,支持通过 USB 存储设备将固件自动更新到 ESP32 设备中。用户只需将固件文件拷贝到 USB 设备(如 U 盘)中,插入 ESP 设备的 USB 主机接口,即可实现固件升级。基于该组件,用户可以在无网络的条件下轻松实现固件升级。这一方案适用于一些无网络环境的设备,如户外广告屏、广告灯箱等。
电机控制
esp_sensorless_bldc_control
无刷直流 (Brushless Direct Current, BLDC) 电机,通过电子换向来实现更好的转速-转矩特性和快速的动态响应,已经成为现代工业和消费电子领域的重要组成部分。esp_sensorless_bldc_control
是一套完整的无感方波控制方案,支持 ADC 采样和比较器采样两种方式,支持位置估算、堵转保护、过流和欠压保护等功能。除此以外,我们还提供了一套完整的 BLDC 智能电风扇解决方案,支持无极调速、自然风、Rainmaker 远程控制等功能。
esp_simplefoc
SimpleFOC 是一个流行的开源 FOC 控制库,esp_simplefoc
是基于 SimpleFOC 的 ESP32 适配版本,对外设接口进行了封装,使其支持任何带有 LEDC 或 MCPWM 的 乐鑫芯片,同时对 FOC 浮点计算进行了优化,进一步提高了控制效率。通过查看 esp-iot-solution
中提供的 FOC 示例,用户可以快速上手 FOC 控制,实现电机的高效控制。
大模型 (LLM) 接入
openai
OpenAI 推出的 GPT 系列模型,如 GPT-3,已经成为自然语言处理领域的重要突破,为开发者提供了强大的自然语言处理能力。openai
组件是基于 OpenAI API 开发的 LLM 接入组件,支持文字、语音、图像等多种输入方式,支持多种输出格式,包括文字、语音、图像等。用户可以通过该组件使用 ESP 系列芯片快速接入 OpenAI API,实现自然语言处理功能。您可以通过 esp-box chatgpt_demo 示例了解如何使用 openai
组件。
通过 esp-launchpad 快速体验

esp-iot-solution v2.0
同时提供了 esp-iot-solution-launchpad, 用户可以通过网页端烧录预编译固件,无需安装任何开发环境,即可快速体验最新功能。
更多特性
esp-iot-solution v2.0
支持的完整组件列表如下,您可以通过点击链接查看更多详细信息。欢迎大家下载体验,如果您有任何问题或建议,请在 esp-iot-solution/discussions 中提出。
Component | Version |
---|---|
aht20 | Stable v1.0.0 |
at581x | Stable v1.0.0 |
avi_player | Stable v1.0.0 |
ble_anp | Beta v0.1.0 |
ble_conn_mgr | Beta v0.1.2 |
ble_hci | Stable v1.0.0 |
ble_hrp | Beta v0.1.0 |
ble_htp | Beta v0.1.0 |
ble_ota | Beta v0.1.12 |
ble_services | Beta v0.1.0 |
bootloader_support_plus | Beta v0.2.6 |
button | Stable v3.4.0 |
cmake_utilities | Stable v1.0.0 |
drv10987 | Beta v0.1.0 |
elf_loader | Beta v0.1.0 |
esp_lcd_axs15231b | Stable v1.0.0 |
esp_lcd_ek79007 | Stable v1.0.1 |
esp_lcd_gc9b71 | Stable v1.0.2 |
esp_lcd_hx8399 | Stable v1.0.1 |
esp_lcd_jd9165 | Stable v1.0.1 |
esp_lcd_jd9365 | Stable v1.0.1 |
esp_lcd_nv3022b | Stable v1.0.0 |
esp_lcd_panel_io_additions | Stable v1.0.1 |
esp_lcd_sh8601 | Stable v1.0.0 |
esp_lcd_spd2010 | Stable v1.0.2 |
esp_lcd_st7701 | Stable v1.1.1 |
esp_lcd_st7703 | Stable v1.0.1 |
esp_lcd_st77903_qspi | Stable v1.0.0 |
esp_lcd_st77903_rgb | Stable v1.0.0 |
esp_lcd_st77916 | Stable v1.0.0 |
esp_lcd_st77922 | Stable v1.0.2 |
esp_lcd_touch_spd2010 | Stable v1.0.0 |
esp_lcd_touch_st7123 | Stable v1.0.0 |
esp_lcd_usb_display | Stable v1.0.0 |
esp_lv_decoder | Beta v0.1.2 |
esp_lv_fs | Stable v1.0.0 |
esp_mmap_assets | Stable v1.3.0 |
esp_msc_ota | Stable v1.0.0 |
esp_sensorless_bldc_control | Stable v1.0.0 |
esp_simplefoc | Stable v1.0.0 |
esp_tinyuf2 | Stable v1.0.0 |
extended_vfs | Beta v0.3.2 |
gprof | Beta v0.1.0 |
i2c_bus | Stable v1.0.0 |
ina236 | Beta v0.1.0 |
iot_usbh | Beta v0.2.1 |
iot_usbh_cdc | Beta v0.2.2 |
iot_usbh_modem | Beta v0.2.1 |
ir_learn | Stable v1.0.0 |
keyboard_button | Stable v1.0.0 |
knob | Stable v1.0.0 |
led_indicator | Stable v1.0.0 |
lightbulb_driver | Stable v1.3.3 |
ntc_driver | Stable v1.1.0 |
openai | Stable v1.0.1 |
pwm_audio | Stable v1.1.2 |
spi_bus | Stable v1.0.0 |
touch_proximity_sensor | Beta v0.1.2 |
usb_device_uac | Stable v1.0.0 |
usb_device_uvc | Stable v1.1.2 |
usb_stream | Stable v1.4.0 |
xz | Stable v1.0.0 |
zero_detection | Beta v0.0.6 |
相关文章:

乐鑫发布 esp-iot-solution v2.0 版本
今天,乐鑫很高兴地宣布,esp-iot-solution v2.0 版本已经发布,release/v2.0 分支下的正式版本组件将为用户提供为期两年的 Bugfix 维护(直到 2027.01.25 ESP-IDF v5.3 EOL)。该版本将物联网开发中常用的功能进行了分类整…...

动态代理如何加强安全性
在当今这个信息爆炸、网络无孔不入的时代,我们的每一次点击、每一次浏览都可能留下痕迹,成为潜在的安全隐患。如何在享受网络便利的同时,有效保护自己的隐私和信息安全,成为了每位网络使用者必须面对的重要课题。动态代理服务器&a…...
Flutter 之 InheritedWidget
InheritedWidget 是 Flutter 框架中的一个重要类,用于在 Widget 树中共享数据。它是 Flutter 中数据传递和状态管理的基础之一。通过 InheritedWidget,你可以让子 Widget 在不需要显式传递数据的情况下,访问祖先 Widget 中的数据。这种机制对…...

AI 助力开发新篇章:云开发 Copilot 深度体验与技术解析
本文 一、引言:技术浪潮中的个人视角1.1 AI 和低代码的崛起1.2 为什么选择云开发 Copilot? 二、云开发 Copilot 的核心功能解析2.1 自然语言驱动的低代码开发2.1.1 自然语言输入示例2.1.2 代码生成的模块化支持 2.2 实时预览与调整2.2.1 实时预览窗口功能…...
MyBatis-Plus介绍及基本使用
文章目录 概述介绍MyBatis-Plus 常用配置分页插件配置类注解配置 快速入门maven 依赖编写配置文件编写启动类编写 MybatisPlus 配置类 代码生成器:MybatisPlusGeneratormaven依赖代码生成器核心类 概述 介绍 MyBatis-Plus(简称 MP)是一个 M…...

SpringBoot 整合 Avro 与 Kafka
优质博文:IT-BLOG-CN 【需求】:生产者发送数据至 kafka 序列化使用 Avro,消费者通过 Avro 进行反序列化,并将数据通过 MyBatisPlus 存入数据库。 一、环境介绍 【1】Apache Avro 1.8;【2】Spring Kafka 1.2…...
支持JT1078和GB28181的流媒体服务器-LKM启动配置文件参数说明
流媒体服务器地址:https://github.com/lkmio/lkm GB28181信令,模拟多个国标设备工具:https://github.com/lkmio/gb-cms 文章目录 gop_cachegop_buffer_sizeprobe_timeoutwrite_timeoutmw_latencylisten_ippublic_ipidle_timeoutreceive_timeo…...
什么是隐式类型转换?隐式类型转换可能带来哪些问题? 显式类型转换(如强制类型转换)有哪些风险?
C 中的隐式类型转换 定义:在 C 中,隐式类型转换是指由编译器自动执行的类型转换,不需要程序员显式地进行操作。这种转换在很多情况下会自动发生,比如在表达式求值、函数调用传参等过程中。常见场景 算术运算中的转换:…...
量化交易新利器:阿布量化(AbuQuant)——金融研究者的得力助手
🚀 量化交易新利器:阿布量化(AbuQuant)——金融研究者的得力助手 🚀 文章目录 🚀 量化交易新利器:阿布量化(AbuQuant)——金融研究者的得力助手 🚀dz…...
UI设计从入门到进阶,全能实战课
课程内容: ├── 【宣导片】从入门到进阶!你的第一门UI必修课!.mp4 ├── 第0课:UI知识体系梳理 学习路径.mp4 ├── 第1课:IOS设计规范——基础规范与切图.mp4 ├── 第2课:IOS新趋势解析——模块规范与设计原则(上).mp4…...
Uniapp自动调整元素高度
获取设备的像素 如果你想让元素的高度相对于整个屏幕的高度占用一定的比例,可以通过获取屏幕的高度,然后计算出你想要的比例来设置元素的高度。以下是如何实现的示例: <script setup> import { ref, onMounted } from vue;// 定义一个…...

软考高项经验分享:我的备考之路与实战心得
软考,尤其是信息系统项目管理师(高项)考试,对于众多追求职业提升与专业认可的人士来说,是一场充满挑战与机遇的征程。我在当年参加软考高项的经历,可谓是一波三折,其中既有成功的喜悦࿰…...

安全关系型数据库查询新选择:Rust 语言的 rust-query 库深度解析
在当今这个数据驱动的时代,数据库作为信息存储和检索的核心组件,其重要性不言而喻。然而,对于开发者而言,如何在保证数据安全的前提下,高效地进行数据库操作却是一项挑战。传统的 SQL 查询虽然强大,但存在诸…...
《C++ 模型训练之早停法:有效预防过拟合的关键策略》
在 C 模型开发的复杂世界里,过拟合犹如一个潜藏的陷阱,常常使我们精心构建的模型在实际应用中表现大打折扣。而早停法(Early Stopping)作为一种行之有效的策略,能够帮助我们及时察觉模型训练过程中的异常,避…...

5.11【数据库】第一次实验
民宿预定,至少有不同的民宿,民宿下面有不同的房间(面积,房间编号) 房间类型,单价, 可预订以及不可预订 游客信息 订单信息 公司有很多课程, 学生,课程 每位学生每期…...

【CSS in Depth 2 精译_062】第 10 章 CSS 中的容器查询(@container)概述 + 10.1 容器查询的一个简单示例
当前内容所在位置(可进入专栏查看其他译好的章节内容) 【第十章 CSS 容器查询】 ✔️ 10.1 容器查询的一个简单示例 ✔️ 10.1.1 容器尺寸查询的用法 ✔️ 10.2 深入理解容器10.3 与容器相关的单位10.4 容器样式查询的用法10.5 本章小结 文章目录 第 10…...

蓝桥杯每日真题 - 第23天
题目:(直线) 题目描述(12届 C&C B组C题) 解题思路: 题目理解: 在平面直角坐标系中,从给定的点集中确定唯一的直线。 两点确定一条直线,判断两条直线是否相同,可通过…...
# Vue 入门级教程三
在前两篇 Vue 入门教程中,我们已经熟悉了 Vue 的基础语法、数据绑定、指令以及组件化开发等核心概念。在本教程中,我们将进一步探索 Vue 的高级特性,包括过滤器、自定义指令、过渡效果以及 Vue 与后端数据交互等内容,让你能够构建…...

hint: Updates were rejected because the tip of your current branch is behind!
问题 本地仓库往远段仓库推代码时候提示: error: failed to push some refs to 192.168.2.1:java-base/java-cloud.git hint: Updates were rejected because the tip of your current branch is behind! refs/heads/master:refs/heads/master [rejected] (…...

PHP 方头像转为圆图
业务需要把创建海报上的用户头像由方形转为圆形,前端的样式设置不能用。 故采用GD的函数来对方图进行裁剪处理为圆图。 目录 裁剪函数 本地图片 远程图片 效果 参考文章 总结 裁剪函数 从网上找的一个裁剪图片的函数。 代码如下: /* * 将图片切…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...