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

乐鑫发布 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 快速体验

Try it with ESP Launchpad

esp-iot-solution v2.0 同时提供了 esp-iot-solution-launchpad, 用户可以通过网页端烧录预编译固件,无需安装任何开发环境,即可快速体验最新功能。

在这里插入图片描述

更多特性

esp-iot-solution v2.0 支持的完整组件列表如下,您可以通过点击链接查看更多详细信息。欢迎大家下载体验,如果您有任何问题或建议,请在 esp-iot-solution/discussions 中提出。

ComponentVersion
aht20Stable v1.0.0
at581xStable v1.0.0
avi_playerStable v1.0.0
ble_anpBeta v0.1.0
ble_conn_mgrBeta v0.1.2
ble_hciStable v1.0.0
ble_hrpBeta v0.1.0
ble_htpBeta v0.1.0
ble_otaBeta v0.1.12
ble_servicesBeta v0.1.0
bootloader_support_plusBeta v0.2.6
buttonStable v3.4.0
cmake_utilitiesStable v1.0.0
drv10987Beta v0.1.0
elf_loaderBeta v0.1.0
esp_lcd_axs15231bStable v1.0.0
esp_lcd_ek79007Stable v1.0.1
esp_lcd_gc9b71Stable v1.0.2
esp_lcd_hx8399Stable v1.0.1
esp_lcd_jd9165Stable v1.0.1
esp_lcd_jd9365Stable v1.0.1
esp_lcd_nv3022bStable v1.0.0
esp_lcd_panel_io_additionsStable v1.0.1
esp_lcd_sh8601Stable v1.0.0
esp_lcd_spd2010Stable v1.0.2
esp_lcd_st7701Stable v1.1.1
esp_lcd_st7703Stable v1.0.1
esp_lcd_st77903_qspiStable v1.0.0
esp_lcd_st77903_rgbStable v1.0.0
esp_lcd_st77916Stable v1.0.0
esp_lcd_st77922Stable v1.0.2
esp_lcd_touch_spd2010Stable v1.0.0
esp_lcd_touch_st7123Stable v1.0.0
esp_lcd_usb_displayStable v1.0.0
esp_lv_decoderBeta v0.1.2
esp_lv_fsStable v1.0.0
esp_mmap_assetsStable v1.3.0
esp_msc_otaStable v1.0.0
esp_sensorless_bldc_controlStable v1.0.0
esp_simplefocStable v1.0.0
esp_tinyuf2Stable v1.0.0
extended_vfsBeta v0.3.2
gprofBeta v0.1.0
i2c_busStable v1.0.0
ina236Beta v0.1.0
iot_usbhBeta v0.2.1
iot_usbh_cdcBeta v0.2.2
iot_usbh_modemBeta v0.2.1
ir_learnStable v1.0.0
keyboard_buttonStable v1.0.0
knobStable v1.0.0
led_indicatorStable v1.0.0
lightbulb_driverStable v1.3.3
ntc_driverStable v1.1.0
openaiStable v1.0.1
pwm_audioStable v1.1.2
spi_busStable v1.0.0
touch_proximity_sensorBeta v0.1.2
usb_device_uacStable v1.0.0
usb_device_uvcStable v1.1.2
usb_streamStable v1.4.0
xzStable v1.0.0
zero_detectionBeta 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&#xf…...

支持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)——金融研究者的得力助手 🚀&#x1f3…...

UI设计从入门到进阶,全能实战课

课程内容: ├── 【宣导片】从入门到进阶!你的第一门UI必修课!.mp4 ├── 第0课:UI知识体系梳理 学习路径.mp4 ├── 第1课:IOS设计规范——基础规范与切图.mp4 ├── 第2课:IOS新趋势解析——模块规范与设计原则(上).mp4…...

Uniapp自动调整元素高度

获取设备的像素 如果你想让元素的高度相对于整个屏幕的高度占用一定的比例&#xff0c;可以通过获取屏幕的高度&#xff0c;然后计算出你想要的比例来设置元素的高度。以下是如何实现的示例&#xff1a; <script setup> import { ref, onMounted } from vue;// 定义一个…...

软考高项经验分享:我的备考之路与实战心得

软考&#xff0c;尤其是信息系统项目管理师&#xff08;高项&#xff09;考试&#xff0c;对于众多追求职业提升与专业认可的人士来说&#xff0c;是一场充满挑战与机遇的征程。我在当年参加软考高项的经历&#xff0c;可谓是一波三折&#xff0c;其中既有成功的喜悦&#xff0…...

安全关系型数据库查询新选择:Rust 语言的 rust-query 库深度解析

在当今这个数据驱动的时代&#xff0c;数据库作为信息存储和检索的核心组件&#xff0c;其重要性不言而喻。然而&#xff0c;对于开发者而言&#xff0c;如何在保证数据安全的前提下&#xff0c;高效地进行数据库操作却是一项挑战。传统的 SQL 查询虽然强大&#xff0c;但存在诸…...

《C++ 模型训练之早停法:有效预防过拟合的关键策略》

在 C 模型开发的复杂世界里&#xff0c;过拟合犹如一个潜藏的陷阱&#xff0c;常常使我们精心构建的模型在实际应用中表现大打折扣。而早停法&#xff08;Early Stopping&#xff09;作为一种行之有效的策略&#xff0c;能够帮助我们及时察觉模型训练过程中的异常&#xff0c;避…...

5.11【数据库】第一次实验

民宿预定&#xff0c;至少有不同的民宿&#xff0c;民宿下面有不同的房间&#xff08;面积&#xff0c;房间编号&#xff09; 房间类型&#xff0c;单价&#xff0c; 可预订以及不可预订 游客信息 订单信息 公司有很多课程&#xff0c; 学生&#xff0c;课程 每位学生每期…...

【CSS in Depth 2 精译_062】第 10 章 CSS 中的容器查询(@container)概述 + 10.1 容器查询的一个简单示例

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 【第十章 CSS 容器查询】 ✔️ 10.1 容器查询的一个简单示例 ✔️ 10.1.1 容器尺寸查询的用法 ✔️ 10.2 深入理解容器10.3 与容器相关的单位10.4 容器样式查询的用法10.5 本章小结 文章目录 第 10…...

蓝桥杯每日真题 - 第23天

题目&#xff1a;&#xff08;直线&#xff09; 题目描述&#xff08;12届 C&C B组C题&#xff09; 解题思路&#xff1a; 题目理解: 在平面直角坐标系中&#xff0c;从给定的点集中确定唯一的直线。 两点确定一条直线&#xff0c;判断两条直线是否相同&#xff0c;可通过…...

# Vue 入门级教程三

在前两篇 Vue 入门教程中&#xff0c;我们已经熟悉了 Vue 的基础语法、数据绑定、指令以及组件化开发等核心概念。在本教程中&#xff0c;我们将进一步探索 Vue 的高级特性&#xff0c;包括过滤器、自定义指令、过渡效果以及 Vue 与后端数据交互等内容&#xff0c;让你能够构建…...

hint: Updates were rejected because the tip of your current branch is behind!

问题 本地仓库往远段仓库推代码时候提示&#xff1a; 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 方头像转为圆图

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

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; 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&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; 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应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...