ESP-IDF 例程——MESH组网
10. mesh 目录
10.1 internal_communication
| 字段 | 描述 |
|---|---|
| 例程名称 | mesh 内部通信示例 |
| 所在文件夹路径 | examples\mesh\internal_communication |
| 核心功能说明 | 演示如何使用 mesh API 设置 mesh 网络、在 mesh 网络上发送和接收消息,以及实现基于 mesh 的灯光控制应用 |
| 主要调用的内部/外部函数或模块 | - ESP-MESH API |
- WiFi 驱动
- 事件处理系统
- 支持 ESP32、ESP32-C3、ESP32-C5、ESP32-C6、ESP32-C61、ESP32-S2、ESP32-S3 芯片 |
| 输入输出参数说明 | 配置参数: - mesh 网络通道
- 路由器 SSID 和密码
- mesh softAP 设置
输出结果:
- mesh 网络状态变化
- 设备层级信息
- 消息发送和接收状态
- 灯光控制命令执行结果
- RGB 灯颜色变化(ESP-WROVER-KIT 板) |
| 适用场景及典型应用案例 | - 基于 mesh 的灯光控制系统 - 智能家居设备网络
- 传感器数据采集网络
- 工业自动化控制系统
- 大型场馆的无线网络覆盖
- 物联网设备的自组织网络 |
10.2 ip_internal_network
| 字段 | 描述 |
|---|---|
| 例程名称 | mesh IP 内部网络示例 |
| 所在文件夹路径 | examples\mesh\ip_internal_network |
| 核心功能说明 | 演示如何使用 mesh 创建支持 IP 的子网络,结合 MQTT 实现节点间通信和外部网络连接 |
| 主要调用的内部/外部函数或模块 | - ESP-MESH API |
- WiFi 驱动
- 事件处理系统
- MQTT 客户端
- 实验性 NAT 功能
- DHCP 服务器
- 支持多种 ESP32 芯片 |
| 输入输出参数说明 | 配置参数: - mesh 网络通道
- 路由器 SSID 和密码
- mesh softAP 设置
- MQTT 服务器配置
输出结果:
- mesh 网络状态变化
- 内部 IP 地址分配
- MQTT 连接状态
- 节点层级和 IP 信息发布
- 路由表更新
- 事件通知和消息传递 |
| 适用场景及典型应用案例 | - 支持 IP 的 mesh 网络 - 物联网设备的远程监控和控制
- 传感器网络的数据采集和上传
- 智能家居系统
- 工业物联网应用
- 大型建筑的网络覆盖 |
10.3 manual_networking
| 字段 | 描述 |
|---|---|
| 例程名称 | mesh 手动组网示例 |
| 所在文件夹路径 | examples\mesh\manual_networking |
| 核心功能说明 | 演示如何禁用 ESP-MESH 的自组织网络功能,手动为节点选择和设置父节点,实现手动组网 |
| 主要调用的内部/外部函数或模块 | - ESP-MESH API |
- WiFi 驱动
- 事件处理系统
- 支持多种 ESP32 芯片 |
| 输入输出参数说明 | 配置参数: - mesh 网络通道
- 路由器 SSID 和密码
- mesh softAP 设置
输出结果:
- mesh 网络状态变化
- 父节点扫描和选择结果
- 节点层级信息
- RGB 灯颜色变化(ESP-WROVER-KIT 板) |
| 适用场景及典型应用案例 | - 需要精确控制网络拓扑的场景 - 特殊环境下的网络部署
- 测试和调试 mesh 网络
- 小型固定网络拓扑
- 工业控制网络 |
10.4 技术要点
mesh 网络特性:
- 支持自组织网络和手动组网
- 节点自动分层(根节点、子节点等)
- 支持多跳通信
- 节点故障自动恢复
- 动态路由表更新
通信方式:
- 低级别 mesh 消息发送/接收 API
- IP 内部网络通信
- MQTT 消息发布/订阅
- 支持 IPv4(不支持 IPv6-only 配置)
网络配置:
- 根节点通过 WiFi STA 连接到外部路由器
- 根节点创建内部子网并运行 DHCP 服务器
- 子节点通过 mesh 连接到根节点
- 实验性 NAT 功能实现地址/端口转换
设备层级指示:
- ESP-WROVER-KIT 板上的 RGB 灯显示设备层级
- 根节点:粉色
- 2 层:黄色
- 3 层:红色
- 4 层:蓝色
- 5 层:绿色
- 5 层以上:白色
10.5 构建与运行
所有 mesh 例程的构建方法基本一致:
- 配置项目:
idf.py menuconfig - 设置 mesh 网络参数、路由器信息和其他配置
- 构建项目:
idf.py build - 烧录到多个开发板:
idf.py -p PORT flash monitor - 观察 mesh 网络的形成和节点间通信
10.6 应用场景总结
- internal_communication:适用于基于 mesh 的设备间直接通信,如灯光控制系统
- ip_internal_network:适用于需要连接外部网络的 mesh 网络,结合 MQTT 实现远程监控
- manual_networking:适用于需要精确控制网络拓扑的场景
这些例程展示了 ESP-MESH 技术的多种应用方式,从简单的设备间通信到复杂的 IP 内部网络,满足不同场景下的 mesh 网络需求。开发者可以根据自己的应用场景选择合适的例程作为基础,进行二次开发和扩展。
ESP-IDF 例程——MESH组网
https://blog.zhaosn.top/ESP32-examples/10.mesh/