ESP-BLE-MESH 完整指南:ESP32 蓝牙 Mesh 从入网到固件升级的四条能力线
2026/9/20 2:39:32 网站建设 项目流程

ESP-BLE-MESH 完整指南:ESP32 蓝牙 Mesh 从入网到固件升级的四条能力线

【免费下载链接】esp-idfEspressif IoT Development Framework. Official development framework for Espressif SoCs.项目地址: https://gitcode.com/GitHub_Trending/es/esp-idf

ESP-BLE-MESH 是 ESP-IDF 内置的蓝牙 Mesh 协议栈组件,面向多对多大规模组网,支持 Proxy、Relay、低功耗等节点特性。本文按一台设备"入网—组网—模型应用—v1.1 进阶—固件升级"的生命周期展开,每个能力点给出源码文件与官方示例锚点,帮助首次接触 BLE Mesh 的开发者十分钟建立全景。

能力总览:四条能力线一张表

能力线解决什么问题源码位置
核心协议(Mesh Core)配网流程、Relay/SAR 组网传输、Friend/LPN、Proxy、密钥更新core/
标准模型Foundation 模型 + Generic/Sensor/Time-Scene/Lighting 四大域,Client/Server 成对齐全models/
BLE Mesh v1.1 新特性远程配网、定向转发、私有信标、子网桥接、操作码聚合、大容量 Composition Datav1.1/
OTA 预览(Preview)Firmware Update 与 Firmware Distribution 两套模型,明确标注预览v1.1/dfu/

🔑 入网篇:蓝牙 Mesh 配网流程走一遍

三种配网承载怎么选:PB-ADV、PB-GATT、PB-Remote

配网(Provisioning)是把未配网设备(Unprovisioned Device)通过身份认证安全纳入网络的过程。ESP-BLE-MESH 提供三种承载:

  • PB-ADV:走 BLE 广播信道,无需建立连接,适合近距离批量配网;
  • PB-GATT:走 GATT 连接,常与 Proxy 搭配,适合手机 App 配网场景;
  • PB-Remote:Mesh v1.1 引入,由已入网节点替远处设备完成配网,remote_provisioning 示例有完整演示。

节点侧逻辑在core/prov_node.c,Provisioner 侧在core/prov_pvnr.c,公共部分在prov_common.cpvnr_mgmt.c负责 Provisioner 自身的管理。

配网认证:OOB、证书与 v1.1 增强

认证等级按需选择:No OOB(无认证,仅限开发)、Static OOB(预置静态值)、Output/Input OOB(设备屏幕/按键交互),用于抵御中间人攻击。需要强身份验证的场景可启用基于证书的配网(Certificate-based Provisioning);Mesh v1.1 还提供增强型入网认证(Enhanced Provisioning Authentication)。

重启免配网:NVS 持久化

配网成功后,节点的单播地址、密钥与配置信息由core/storage/settings_nvs.c写入 NVS。上电后直接读回复原已入网状态,无需重新配对——这是设备量产部署的基础能力。

📡 组网篇:消息如何在 Mesh 网络里流动

  • Relay:无线覆盖不够时由节点多跳转发,net.ctransport.c实现;
  • SAR(分段重组):消息超过单包 MTU 时拆段发送、目的端重组,长配置消息依赖它;
  • Friend / LPN:低功耗节点周期性休眠,消息由 Friend 节点代为缓存(lpn.cfriend.c),电池供电设备必备;
  • Proxy Server / Client:不支持 Mesh 广播的设备经 GATT 代理信道接入网络(proxy_server.cproxy_client.c);
  • Key Refresh:密钥泄露后全网滚动更新 NetKey/AppKey,控制受损范围;
  • IV Update:周期性更新 IV Index,保证网络长期运行的安全唯一性。

以上能力集中在 core/,增强传输另见transport.enh.c

⚡ BLE Mesh v1.1 新特性:ESP32 新增的六项进阶能力

v1.1 能力集中在v1.1/目录,每项特性都有对应的公开 API 文件(v1.1/api/core/下的*_model_api.c):

v1.1 特性用途
Directed Forwarding 定向转发仅路径上节点转发定向消息,降低全网开销,directed_forwarding 示例可跑通
Private Beacon 私有信标信标内容随机化,削弱链路可追踪性,强化隐私
Subnet Bridge 子网桥接跨子网转发消息,把大网络拆成独立安全域
Opcodes Aggregator 操作码聚合批量聚合多个操作码发送,减少报文数量
Large Composition Data元素多的设备可分段传输大容量 Composition Data
On-Demand Private Proxy 等按需私有代理、SAR 配置、Solicitation PDU RPL 配置(见下节模型矩阵)

这些都属于 Mesh v1.1 版本属性,与 v1.0 基础能力(Relay、Friend、Proxy 等)并存。

🧩 模型矩阵:Client/Server 支持一表速查

Foundation 模型负责网络管理与设备配置,标准模型承载业务语义。Client 侧按域拆成models/client/下 5 个文件(generic/lighting/sensor/time_scene/client_common),Server 侧对应 4 个域文件加server_common.c

模型ClientServer一句话说明
ConfigurationAppKey/NetKey、订阅管理;Server 仅用 DevKey 加密,无需绑 AppKey
Health设备健康状态上报与查询
Generic(OnOff/Level/Transition Time/Power OnOff/Power Level/Battery/Location/Property)通用域 8 个子模型全覆盖
Sensor传感器数据上报,配 Sensor Setup Server
Time / Scene / Scheduler时钟、场景、定时任务,各配 Setup Server
Lighting(Lightness/CTL/HSL/xyL/LC)五大灯效家族,各配 Setup Server
v1.1 Foundation 八对(Remote Provisioning/DF Config/Bridge Config/Private Beacon/ODP Proxy/SAR Config/RPL Config/Aggregator/Large CD)对应上节 v1.1 特性的配置面模型
Firmware Update / Distribution(v1.1)预览特性,见下一章

Server 侧另有两个横切机制:state_binding.c做跨模型状态联动(如 Generic Level 驱动 Light Lightness),state_transition.c实现过渡时间内的平滑渐变。

注意:Configuration Server 只使用 DevKey 加密上层消息,配网后无需为其绑定 AppKey,这是使用配置客户端时的常见疑问点。

📦 BLE Mesh 固件升级(预览):Firmware Update 与 Distribution

Mesh v1.1 的 OTA 能力在 ESP-BLE-MESH 中为Preview(预览),位于 v1.1/dfu/:

  • Firmware Update Client/Serverdfu_cli.c/dfu_srv.c):设备间直接完成固件升级,dfu_metadata.c管理升级元数据、dfu_slot.c管理写入槽位;
  • Firmware Distribution Client/Serverdfd_cli.c/dfd_srv.c):固件经多个节点接力分发,适合全网批量升级。

预览特性不做量产级稳定性承诺,启用前请核对所用 ESP-IDF 版本的发布说明与后续更新。

🛠 动手篇:ESP32 BLE Mesh 示例导读,最快 60 秒配 100 台

  • Node(onoff_models):含onoff_clientonoff_server,Server 演示 Configuration Server + Generic OnOff Server 驱动 RGB LED,两端均附逐步 walkthrough 教程;
  • Provisioner(provisioner):一台设备充当 Provisioner 配网他机,组合 Configuration Client 与 Generic OnOff Client,附教程;
  • Fast Provisioning(fast_provisioning 示例):效率卖点最突出——60 秒内完成多达 100 台设备配网,client/server 两种角色均附教程;
  • Wi-Fi 共存(wifi_coexist):演示 Wi-Fi 与蓝牙 Mesh 同板共存,附 walkthrough。

另有sensor_models(Sensor Client/Server)、vendor_models(厂商自定义模型)、remote_provisioning(远程配网 + 定向转发)等补充示例,全部在 esp_ble_mesh 示例目录下可直接构建。

选型与延伸:文档入口、API 位置与方案区分

  • 文档入口:ble-mesh-index.rst 是主入口,同目录还有架构、FAQ、术语与功能清单文档,其中 ble-mesh-feature-list.rst 可作为能力核对表;
  • API Reference:公开 API 头文件在 esp_ble_mesh 组件的api/子目录,按api/core/api/models/分域组织;
  • 方案区分:要的是蓝牙 Mesh 协议栈选 ESP-BLE-MESH;要的是基于 Wi-Fi 的 Mesh 组网方案则看乐鑫的 ESP-WIFI-MESH,两者是互不相关的独立方案。

下一步

从 Mesh v1.0 的基础配网、Relay、Friend/LPN、Proxy 与全量标准模型,到 v1.1 的远程配网、定向转发、私有信标与子网桥接,再到预览版固件升级,ESP-BLE-MESH 覆盖了从原型验证到量产部署的主要需求。建议先跑通 onoff_models 节点 + provisioner 这条最短链路,再按业务需要叠加 Fast Provisioning 与 v1.1 特性;对协议细节有疑问时,回到功能清单与架构文档逐条核对是最省时的路径。

【免费下载链接】esp-idfEspressif IoT Development Framework. Official development framework for Espressif SoCs.项目地址: https://gitcode.com/GitHub_Trending/es/esp-idf

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询