Bootstrap

乐鑫发布 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
;