pdf-icon

ESP Thread Boarder Router

Module Gateway H2 支持搭配 ESP32 系列 Wi-Fi SoC 运行 ESP Thread Boarder Router SDK,该 SDK 构建基于 ESP-IDF 和 OpenThread,将 Thread 网络运行在 H2 上,H2 通过串口与主处理器通信。

1. 准备工作

ESP-IDF 版本
该案例编译推荐使用 ESP-IDF 版本v5.3.1
git clone --recursive https://github.com/espressif/esp-idf.git
cd esp-idf
git checkout v5.3.1 # recommend
./install.sh
. ./export.sh

  • 3. 后续教程使用到的 idf.py 指令均依赖 ESP-IDF, 运行指令前需要执行 ESP-IDF 中. ./export.sh用于激活相关的环境变量。详细说明请参考ESP-IDF - ESP32S3上手教程

2. 编译 RCP 固件

  • 1. 在编译 Thread Boarder Router 固件之前,需要先生成 RCP 固件。参考下方指令进入对应的 rcp 固件目录,设置编译 target 为esp32h2
cd $IDF_PATH/examples/openthread/ot_rcp
idf.py set-target esp32h2
idf.py menuconfig
  • 2. 使用idf.py menuconfig进入配置页面。在 menuconfig 中配置:Component config -> OpenThread RCP Example - Enable OPENTHREAD_NCP_VENDOR_HOOK

  • 3. 完成配置后,执行以下指令进行 RCP 固件编译。

idf.py build

3. 编译 ESP Thread BR 固件

  • 1. 拉取项目。
git clone https://github.com/Ocean-lhy/esp-thread-br.git
  • 2. 根据使用的主控设备,切换到对应的分支。
# coreS3
git checkout demo_for_core_s3_test
cd examples/thread_border_router_credential_sharing
idf.py set-target esp32s3
# core2 v1.0和v1.1的电源管理芯片分别为AXP192和AXP2101,需要在menuconfig中配置
git checkout demo_for_core_2_test
cd examples/thread_border_router_credential_sharing
idf.py set-target esp32
# core
git checkout demo_for_core_test
cd examples/thread_border_router_credential_sharing
idf.py set-target esp32
  • 3. 使用idf.py menuconfig进入配置页面。在 menuconfig 中配置 WiFi 信息:Component config -> Example Connection Configuration
idf.py menuconfig
  • 4. 编译并烧录 ESP Thread BR 固件
idf.py build
idf.py erase_flash
idf.py flash

4. 开始运行

  • 1. 烧录后重启设备,设备进入 rcp update 状态。在 rcp update 成功后,设备将重启、连接 Wi-Fi 和 Thread 网络。完成设备初始化将显示以下信息内容:

  • generate epskc按钮

  • factoryreset按钮

  • Border router web server网址

  • 2. 点击generate epskc按钮,设备将生成一个 epskc,并显示在屏幕上,可用于快捷入网使用。
  • 3. 在局域网内,使用浏览器访问 Border router web server 网址,可以查看 Thread 网络信息。
  • 4. 如果想修改连接的 WIFI 可以用串口连接指令界面,输入指令wifi -s SSID -p PASSWORD,然后重启设备。

5. 测试

使用 Module Gateway H2 (ESP32-H2) 或 NanoC6 (ESP32-C6),参考案例程序烧录OpenThread SimpleCLI例程,连接到 Thread 网络,查看 Thread 网络信息。

  1. 在 ThreadBoarderRouter 的后台输入networkkeypanidchannel,获取 Thread 网络的网络密钥、panid 和 channel。

  2. 在 SimpleCLI 例程中输入配置命令并启动 Thread 网络

networkkey <networkkey>
panid <panid>
channel <channel>
ifconfig up
thread start
  1. 在 SimpleCLI 串口交互输入state,查看 Thread 网络状态,如果作为 child/router 连接上网络,则 Thread 网络连接成功。如果作为 leader 成立网络,则配置可能有误。
  2. 在 SimpleCL 串口交互输入parent,查看 Thread 网络的父节点;输入extaddr,查看此节点的扩展地址。
  3. 在 ThreadBoarderRouter 的串口交互输入extaddr,查看此节点的扩展地址,应与 SimpleCLI 例程中的parent extaddr一致。
  4. 在 ThreadBoarderRouter 的串口交互输入neighbor table,查看 Thread 网络的邻居节点,应包含 SimpleCLI 例程的节点。
On This Page