ESP-IDF 例程——OpenThread 命令行界面
13. openthread 目录
13.1 ot_cli
| 字段 | 描述 |
|---|---|
| 例程名称 | OpenThread 命令行示例 |
| 所在文件夹路径 | examples/openthread/ot_cli |
| 核心功能说明 | 提供 OpenThread 命令行界面,支持 TCP、UDP 和 Iperf 等扩展功能,用于管理和调试 Thread 网络 |
| 主要调用的内部/外部函数或模块 | - OpenThread CLI API |
- OpenThread 协议栈
- IEEE 802.15.4 驱动
- console 组件(命令行界面)
- 支持 UART 和 USB Serial/JTAG 控制台输出
- 支持 ESP32-C5、ESP32-C6、ESP32-H2 芯片 |
| 输入输出参数说明 | 配置参数: - 控制台输出通道(UART 或 USB Serial/JTAG)
- Thread 网络参数(通道、PAN ID、地址等)
输出结果:
- 命令执行状态和结果
- 网络配置信息
- 节点状态和角色
- IP 地址信息
- 数据包发送和接收状态 |
| 适用场景及典型应用案例 | - Thread 网络的开发和调试 - Thread 协议栈的功能验证
- 不同 Thread 设备之间的兼容性测试
- 基于 Thread 的物联网设备开发
- 网络参数的优化和测试 |
13.2 ot_rcp
| 字段 | 描述 |
|---|---|
| 例程名称 | OpenThread Radio Co-Processor (RCP) 示例 |
| 所在文件夹路径 | examples/openthread/ot_rcp |
| 核心功能说明 | 实现 OpenThread 无线电协处理器,与主机配合工作,提供 802.15.4 无线电功能,用于 Thread 边界路由器或 Thread 嗅探器 |
| 主要调用的内部/外部函数或模块 | - OpenThread RCP 协议栈 |
- IEEE 802.15.4 驱动
- UART 通信接口
- 支持 ESP32-C5、ESP32-C6、ESP32-H2 芯片 |
| 输入输出参数说明 | 配置参数: - UART 通信参数(波特率、引脚)
- 固件大小优化配置
- 日志级别设置
输出结果:
- 设备初始化状态
- UART 通信状态
- 802.15.4 无线电状态
- 数据包处理状态 |
| 适用场景及典型应用案例 | - Thread 边界路由器的无线电组件 - Thread 网络嗅探器
- 工业自动化网络的无线通信组件
- 智能家居设备的无线连接解决方案
- 物联网网关的无线扩展 |
13.3 ot_br
| 字段 | 描述 |
|---|---|
| 例程名称 | OpenThread 边界路由器示例 |
| 所在文件夹路径 | examples/openthread/ot_br |
| 核心功能说明 | 实现 OpenThread 边界路由器,连接 Thread 网络和 Wi-Fi/Ethernet 网络,支持双向 IPv6 连接和服务发现 |
| 主要调用的内部/外部函数或模块 | - OpenThread 边界路由器功能 |
- WiFi 驱动(STA 模式)
- Ethernet 驱动
- IPv6 路由和邻居发现
- mDNS 服务发现
- SRP(Service Registration Protocol)支持
- 支持多种 ESP32 芯片 |
| 输入输出参数说明 | 配置参数: - Wi-Fi SSID 和密码
- 自动启动设置
- 以太网配置
- 控制台输出通道
输出结果:
- 网络连接状态
- Thread 网络形成状态
- IPv6 地址分配
- 服务发现结果
- 数据包转发状态 |
| 适用场景及典型应用案例 | - Thread 网络与外部网络的桥接 - 智能家居设备的互联网连接
- 工业自动化网络的边界网关
- 智能建筑的网络基础设施
- 物联网设备的远程监控和控制 |
13.4 ot_sleepy_device
| 字段 | 描述 |
|---|---|
| 例程名称 | OpenThread 休眠设备示例 |
| 所在文件夹路径 | examples/openthread/ot_sleepy_device |
| 核心功能说明 | 演示 OpenThread 休眠设备的实现,支持 802.15.4 无线电休眠,延长电池寿命 |
| 主要调用的内部/外部函数或模块 | - OpenThread 协议栈 |
- IEEE 802.15.4 驱动
- 休眠管理功能
- 支持 IEEE 802.15.4 芯片 |
| 输入输出参数说明 | 配置参数: - 休眠周期
- 唤醒时间
- Thread 网络参数
输出结果:
- 设备休眠和唤醒状态
- 网络连接状态
- 数据传输状态
- 电池寿命优化效果 |
| 适用场景及典型应用案例 | - 电池供电的传感器设备 - 环境监测设备
- 可穿戴设备
- 智能家居传感器
- 工业无线传感器网络 |
13.5 技术要点
OpenThread 协议支持:
- 完整的 Thread 1.3 协议支持
- IPv6 连接
- 服务发现(SRP 和 mDNS)
- 休眠设备支持
硬件兼容性:
- 支持多种 ESP32 芯片
- 支持单独的 802.15.4 芯片(如 ESP32-H2)
- 支持 Wi-Fi + Thread 双芯片解决方案
- 支持以太网连接
网络拓扑:
- 支持 Leader、Router、Child 等多种节点角色
- 支持自组织网络
- 支持网络自动修复
通信接口:
- UART 通信
- USB Serial/JTAG 支持
- 支持多种控制台输出通道
电源管理:
- 支持设备休眠
- 支持低功耗模式
- 电池寿命优化
13.6 构建与运行
所有 openthread 例程的构建方法基本一致:
- 配置项目:
idf.py menuconfig - 设置网络参数和硬件配置
- 构建项目:
idf.py build - 烧录到开发板:
idf.py -p PORT flash monitor - 根据具体例程的要求进行网络连接和测试
13.7 应用场景总结
- ot_cli:适用于 Thread 网络的开发和调试,以及协议功能验证
- ot_rcp:适用于 Thread 边界路由器和 Thread 嗅探器的无线电组件
- ot_br:适用于 Thread 网络与外部网络的桥接,实现双向 IPv6 连接
- ot_sleepy_device:适用于电池供电的传感器设备,延长设备寿命
- ot_trel:适用于需要长距离、高可靠性 Thread 网络通信的场景
这些例程展示了 ESP-IDF 在 OpenThread 方面的全面支持,从基础的命令行工具到复杂的边界路由器,满足不同场景下的 Thread 网络需求。开发者可以根据自己的应用场景选择合适的例程作为基础,进行二次开发和扩展。
ESP-IDF 例程——OpenThread 命令行界面
https://blog.zhaosn.top/ESP32-examples/13.openthread(WIP)/