【ESP32-menuconfig(6) -- 蓝牙】

文章目录


其实这部分的内容,是Component config的一部分,但是蓝牙功能(标准蓝牙,ble以及ble mesh)作为ESP32的核心功能之一,我还是决定单独把它放到一片文章里面来介绍

在这里插入图片描述
首先说明bluetooch
在Bluetooth没开启的时候,是没有底下的ble mesh选项的
在这里插入图片描述
在这里插入图片描述

CONFIG_BT_ENABLED

功能:启用 Bluetooth 功能,显示子菜单(如 Bluedroid 或 NimBLE 选项)。

CONFIG_BT_HOST (Bluedroid - Dual-mode)

功能:选择 Bluetooth 主机堆栈。
当前设置:Bluedroid(双模,支持经典 Bluetooth 和 BLE)。
选项:

BLUEDROID:支持经典 Bluetooth 和 BLE。
NIMBLE:仅支持 BLE,内存占用低。
CONTROLLER_ONLY:仅控制器,需外部主机。

说明:这里选项虽然写支持双模蓝牙,但是不知道为什么,我在和乐鑫原厂AE沟通的时候,他说只有最早的标准ESP32(不带任何后缀)支持标准蓝牙功能(一般用来开发蓝牙音箱之类的),这块不知道谁是对的

CONFIG_BT_CONTROLLER (Enabled)

功能:启用 Bluetooth 控制器堆栈。

CONFIG_BT_CONTROLLER_MODEM_SLEEP

功能:启用调制解调器休眠模式,降低功耗。

CONFIG_BT_CONTROLLER_POWER_SAVING

功能:启用控制器功耗节省功能。

CONFIG_BT_CONTROLLER_BLE

功能:启用 BLE 控制器支持。

CONFIG_BT_CONTROLLER_ADV_PACK

功能:设置广播包大小(字节)。

CONFIG_BT_CONTROLLER_HCI

功能:启用 HCI 层支持。

CONFIG_BT_CONTROLLER_HCI_UART

功能:使用 UART 作为 HCI 传输接口。

CONFIG_BT_CONTROLLER_HCI_UART_PORT

功能:指定 HCI UART 端口。

CONFIG_BT_CONTROLLER_HCI_UART_BAUD

功能:设置 HCI UART 波特率(默认115200)

CONFIG_BT_CONTROLLER_HCI_VHCI

功能:启用虚拟 HCI 接口。

接下来是ble mesh的配置

CONFIG_BT_MESH

功能:启用 BLE Mesh 协议栈。

Support sending 2ms non-connectable advertising packets

功能:支持发送 2ms 非连接广告包,优化短周期广播。

Support Duplicate Scan In BLE Mesh

功能:支持重复扫描,防止丢失重复广播消息。

Support Active Scan In BLE Mesh

功能:支持主动扫描,获取设备详细信息。

这三个功能,当作为配网者,应该是必须打开的(个人觉得)

Support Initialization of BLE (Internal DRAM)

功能:使用内部 DRAM 初始化 BLE 堆栈,未启用 PSRAM。

BLE Mesh and BLE coexistence support

功能:支持 BLE Mesh 和普通 BLE 共存。

Enable BLE Mesh Fast Provisioning

功能:启用快速配对,缩短设备加入时间。

Support for BLE Mesh Provisioner

功能:启用配对器角色,管理网络设备。

Maximum number of devices that can be added to device queue

功能:设置配对器设备队列最大数量。

Maximum number of PB-ADV running at the same time by Provisioner

功能:设置配对器同时运行的 PB-ADV(广告信道配对)数量。

Maximum number of application keys that can be owned by Provisioner

功能:设置配对器拥有的最大应用密钥数量。

Support receiving Heartbeat messages that can be owned by Provisioner

功能:支持接收 Heartbeat 消息,监控网络状态。

BLE Mesh Provisioning support

功能:支持 BLE Mesh 配对流程。

Support Certificate-based provisioning authentication

功能:支持基于证书的配对认证,增强安全性。

Provisioning support using the advertising bearer (PB-ADV)

功能:支持通过广告信道配对。

Interval between two consecutive Unprovisioned Device Beacon

功能:设置未配对设备信标间隔。

Provisioning support using GATT (PB-GATT)

功能:支持通过 GATT 配对。

BLE Mesh GATT Proxy server

功能:启用 GATT 代理服务器,连接非 Mesh 设备。

Node Identity advertising timeout

功能:设置节点身份广告超时。

Maximum number of filter entries per Proxy Client

功能:设置每个代理客户端的最大过滤条目。

Support receiving Proxy Solicitation PDU

功能:支持接收代理请求 PDU。

BLE Mesh configuration model persistently

功能:持久化存储配置模型。

Maximum number of application keys per network

功能:设置网络最大应用密钥数量。

Maximum number of subscription lists per network

功能:设置网络最大订阅列表数量。

Maximum number of Label UUIDs used for Virtual Addresses

功能:设置虚拟地址使用的最大 Label UUID 数量。

Maximum capacity of the relay protection list

功能:设置中继保护列表容量。

Network message cache size

功能:设置网络消息缓存大小。

Divider for IV Index state refresh timer

功能:设置 IV 索引刷新计时器分频。

Segmentation and reassembly enhancement

功能:增强分段和重组,支持大消息。

Maximum number of simultaneously outgoing segmented messages

功能:设置同时发送的最大分段消息数。

Maximum incoming upper Transport Access PDU length

功能:设置最大上层传输访问 PDU 长度。

Relay support

功能:启用中继支持。

Support for Low Power feature

功能:支持低功耗功能,管理低功耗节点。

Disable BLE Mesh Debug logs (minimize bin size)

功能:禁用调试日志,减少二进制大小。

BLE Mesh Debug Log Level

功能:设置日志级别。
当前设置:默认 NONE。
选项:

NONE、ERROR、WARNING、INFO、DEBUG。

Support for BLE Mesh Client/Server models

功能:支持客户端/服务器模型。
这里面有很多种模型,如图
在这里插入图片描述
常见的IO开关,使用onoff model
情景模式使用scene model
vendor model在这里没有,不过官方有vendor model的例程
这块就不一一介绍了,建议直接百度

Test the IV Update Procedure

功能:测试 IV 更新流程。

Make BLE Mesh experimental features visible

功能:显示实验性功能。

还有一个很关键的功能,就是
在这里插入图片描述
这个一定要打开,这样才会把你的配网信息存入nvs,重启后不丢失,我之前就是在这踩了不少的坑,因为我例程测试成功以后,是把例程的功能移植到之前测试的smart config工程里,结果忽略了这个选项。

<think>好的,我现在需要帮助用户了解如何使用ESP32-C3开发蓝牙音箱,并找到相关的教程和示例代码。首先,我要回顾用户的问题和提供的引用资料,看看有哪些信息可以利用。 用户提到了引用[1]中的ESP32-A2DP库,这个库是专门为ESP32设计的,支持蓝牙音频传输。虽然用户询问的是ESP32-C3,但根据引用[2],ESP32-C3支持蓝牙5 LE,但主要针对低功耗蓝牙(BLE)。这里可能存在一个问题:A2DP通常用于传统蓝牙的音频传输,而BLE可能不支持A2DP,因为BLE的带宽较低。因此,ESP32-C3是否适合做蓝牙音箱需要确认。 接下来,引用[3]和[4]提到了ESP-IDF的开发环境和示例代码,特别是controller_hci_uart的例子,但用户需要的是蓝牙音箱相关的示例。可能需要检查ESP-IDF或ESP-ADF中是否有适用于C3的A2DP示例。 首先,我需要确认ESP32-C3是否支持A2DP。根据引用[2],C3的蓝牙是低功耗类型,可能不支持传统的蓝牙音频协议如A2DP。这意味着用户可能需要使用其他ESP32型号(如ESP32-S3)或调整项目需求,改用BLE音频传输,但这可能音质较差或延迟较高。 如果用户坚持使用C3,可能需要寻找替代方案,例如通过BLE传输音频,但这可能不适用于标准的音箱场景。或者,可能用户的信息有误,需要进一步确认C3的蓝牙功能。 假设用户希望继续使用C3,可能需要指导他们使用BLE进行音频传输,或者调整硬件选型。但根据引用[1],ESP32-A2DP库可能不兼容C3,因为它需要传统蓝牙的支持。 因此,在回答中需要明确说明C3的限制,并建议使用其他ESP32型号,如ESP32-S3或标准ESP32,这些支持传统蓝牙和A2DP。同时,提供使用ESP-IDF或ESP-ADF配置A2DP的步骤,并指出可能需要调整硬件。 另外,需要提供示例代码的路径,如ESP-ADF中的示例,并指导用户如何配置开发环境,如安装必要的库和工具链。同时,提醒用户注意硬件连接,如I2S接口和DAC的使用。 最后,生成相关问题,帮助用户深入理解可能遇到的挑战和解决方案,比如硬件选型、协议限制和优化方法。</think>根据ESP32-C3的硬件特性和蓝牙协议支持,以下是开发蓝牙音箱的完整指南: ### 一、ESP32-C3蓝牙音频开发基础 1. 硬件特性确认: - ESP32-C3仅支持Bluetooth LE 5.0协议栈,不支持传统蓝牙的A2DP协议[^2] - 无法直接实现标准蓝牙音箱的音频流传输 - 需要采用BLE Audio(LC3编码)或自定义音频传输协议 2. 替代方案建议: $$ \text{推荐方案} = \begin{cases} \text{使用支持A2DP的ESP32-S3/S2} & \text{传统蓝牙音频} \\ \text{采用BLE Audio + LC3编码} & \text{低功耗音频场景} \\ \text{自定义UART/I2S传输协议} & \text{特定应用场景} \end{cases} $$ ### 二、开发环境搭建(基于ESP-IDF) 1. 安装ESP-IDF v4.4+: ```bash mkdir -p ~/esp cd ~/esp git clone -b v4.4.7 --recursive https://github.com/espressif/esp-idf.git ./esp-idf/install.sh ``` 2. 配置蓝牙协议栈: ```python # menuconfig配置路径 Component config → Bluetooth → Bluetooth controller → Bluetooth mode (BR/EDR/BLE/DUALMODE) ``` ### 三、BLE Audio开发流程 1. 创建GATT服务: ```c // 定义音频特征 #define AUDIO_UUID 0x2B77 static esp_ble_gatts_cb_t gatts_cb; esp_ble_gatts_create_service(gatts_if, &gl_profile_tab[PROFILE_AUDIO].service_id, 4); ``` 2. 音频数据接收处理: ```c void audio_data_handler(uint8_t *data, uint16_t len) { i2s_write(I2S_PORT, data, len, &bytes_written, portMAX_DELAY); } ``` ### 四、硬件连接参考 | 硬件模块 | 连接引脚 | 备注 | |----------|----------|-----------------------| | I2S DAC | GPIO18 | BCK时钟 | | | GPIO19 | LRCK左右声道时钟 | | | GPIO4 | DATA数据线 | | 功放模块 | GPIO2 | 使能引脚 | ### 五、示例代码获取 1. ESP-IDF基础示例: ```bash cd ~/esp/esp-idf/examples/bluetooth/ ``` 2. ESP-ADF音频框架(需更换支持A2DP的芯片): ```bash git clone --recursive https://github.com/espressif/esp-adf.git ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值