OpenThread 边界路由器
边界路由器是能够在网状网络内外路由数据包的设备。Thread 边界路由器是连接 Thread 网络和其他基于 IP 的网络 (如 Wi-Fi 或以太网) 的设备。以下是 OTBR 支持的关键网络功能:
Thread 和 Wi-Fi/以太网网络之间的双向 IP 连接。
通过 mDNS (在 Wi-Fi/以太网链路上) 和 SRP (在 Thread 网络中) 进行双向服务发现。
基于基础架构的 Thread 分区通过 IP 链路合并。
外部 Thread 委托 (例如,手机) 来验证并将 Thread 设备加入 Thread 网络。
需求
要建立 OpenThread 边界路由器 (OTBR) 环境,请确保您拥有以下硬件和软件。以下是详细的设置要求:
硬件
一台树莓派 3/4 设备和至少 8 GB 容量的 SD 卡
一台未在路由器上启用 IPv6 Router Advertisement Guard 的 Wi-Fi AP
8771GUV RCP dongle
Matter 设备 (例如智能插座)
一台至少搭载 Android 8.1 的 Android 手机
软件
角色 |
硬件 |
软件 |
---|---|---|
OTBR |
树莓派 RTL8771GUV RCP dongle |
树莓派 Imager |
Wi-Fi AP |
Wi-Fi AP |
|
Thread 终端设备 |
Matter 设备 (例如智能插座) |
|
测试设备 |
Android 手机 |
CHIPTool |
环境设置和测试流程
在树莓派上设置 OTBR
前提条件 用户应为 OTBR 准备一个 RCP 模式的 Thread 设备。
设置树莓派。
下载并安装 树莓派 Imager。
选择
。选择
。选择 设置, 填入 主机名 字段,勾选 启用 SSH,并填入用户名和密码字段,必要时勾选 配置无线局域网,并填入 SSID 和密码字段。
保存并点击写入按钮,将引导镜像写入 SD 卡。
将 SD 卡插入树莓派并上电,现在您已完成树莓派的设置。
克隆 OTBR 仓库。
$ git clone https://github.com/openthread/ot-br-posix
修改 RCP dongle 的设备端口。
将设备端口修改为 ttyACM0,波特率修改为 2000000。
$ cd ot-br-posix $ vi CMakeLists.txt set(OTBR_RADIO_URL "spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=2000000"
构建并安装 OTBR。
安装依赖。
$ ./script/bootstrap
使用以太网进行边界路由。
$ INFRA_IF_NAME=eth0 ./script/setup
使用 WiFi 进行边界路由。
$ INFRA_IF_NAME=wlan0 ./script/setup
备注
如果不确定网络接口名称,可以输入 ifconfig 命令列出所有网络接口。
验证 8771GUV RCP dongle 用于 OTBR。
将 USB 端口连接到树莓派和 8771GUV RCP dongle 之间。
重启并检查 OTBR 状态。
8771GUV 会被识别为 /dev/ttyACM0,活跃 (运行) 状态表示您成功在树莓派上设置了 OTBR。
$ sudo service otbr-agent restart $ sudo service otbr-agent status ● otbr-agent.service - Border Router Agent Loaded: loaded (/lib/systemd/system/otbr-agent.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2021-03-01 05:46:26 GMT; 2s ago Main PID: 2997 (otbr-agent) Tasks: 1 (limit: 4915) CGroup: /system.slice/otbr-agent.service └─2997 /usr/sbin/otbr-agent -I wpan0 -B wlan0 spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate… Mar 01 05:46:26 raspberrypi otbr-agent[2997]: Initialize OpenThread Border Router Agent: OK Mar 01 05:46:26 raspberrypi otbr-agent[2997]: Border router agent started.
测试步骤
按照以下指示操作:
启动 OTBR 并形成 Thread 网络。
启动 otbr-agent 服务。
$ sudo service otbr-agent restart $ sudo service otbr-agent status ● otbr-agent.service - Border Router Agent Loaded: loaded (/lib/systemd/system/otbr-agent.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2021-03-01 05:46:26 GMT; 2s ago Main PID: 2997 (otbr-agent) Tasks: 1 (limit: 4915) CGroup: /system.slice/otbr-agent.service └─2997 /usr/sbin/otbr-agent -I wpan0 -B wlan0 spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate… Mar 01 05:46:26 raspberrypi otbr-agent[2997]: Initialize OpenThread Border Router Agent: OK Mar 01 05:46:26 raspberrypi otbr-agent[2997]: Border router agent started.
形成 Thread 网络。
$ ot-ctl dataset init new $ ot-ctl dataset commit active $ ot-ctl ifconfig up $ ot-ctl thread start
等待几秒钟并验证网络状态。
小技巧
确保 OTBR 成为 leader 角色。
$ ot-ctl state leader
$ ot-ctl netdata show Prefixes: fd76:a5d1:fcb0:1707::/64 paos med 4000 Routes: fd49:7770:7fc5:0::/64 s med 4000 Services: 44970 5d c000 s 4000 44970 01 9a04b000000e10 s 4000 Done
$ ot-ctl ipaddr fda8:5ce9:df1e:6620:0:ff:fe00:fc11 fda8:5ce9:df1e:6620:0:0:0:fc38 fda8:5ce9:df1e:6620:0:ff:fe00:fc10 fd76:a5d1:fcb0:1707:f3c7:d88c:efd1:24a9 fda8:5ce9:df1e:6620:0:ff:fe00:fc00 fda8:5ce9:df1e:6620:0:ff:fe00:4000 fda8:5ce9:df1e:6620:3593:acfc:10db:1a8d fe80:0:0:0:a6:301c:3e9f:2f5b Done
打开 Matter 设备。
打开 Matter 设备电源。
等待手机开始配网过程。
备注
请注意,如果 Matter 设备已与其他移动设备配网,您可以按照 Matter 设备的指南将其恢复出厂设置 (例如:按住电源键 10 秒)。
将手机连接到 WiFi。
将手机连接到与 OTBR 相同的 WiFi 接入点 (AP) 。
确保手机和 OTBR 在同一网络上。
启动 CHIPTool App。
选择 PROVISION CHIP DEVICE WITH THREAD 项目扫描 Matter 设备的二维码。
一旦成功,将显示 OTBR 的设置页面,如下图所示。
填写 OTBR 的相应设置后,点击 SAVE NETWORK 开始配网。
用户可以在 OTBR 上输入以下命令以获取相应设置:
$ ot-ctl channel $ ot-ctl panid $ ot-ctl extpanid $ ot-ctl networkkey
备注
在开发阶段,由于尚未获得正式证书,配网过程中可能会弹出如下图所示的对话框。请选择 CONTINUE 继续。右下角显示的对话框弹出时,表示配网成功。
完成调试。
等待调试过程完成。
完成后,继续下一步。
进入控制面板。
在 CHIPTool 应用中,选择菜单项:LIGHT ON/OFF & LEVEL CLUSTER。
这将打开 Matter 设备的控制面板。
控制 Matter 设备。
使用手机通过 OTBR 控制 Matter 设备。
测试打开和关闭灯光、调节灯光亮度等功能。
最后,你可以通过手机通过 OTBR 按下图控制 Matter 设备。
下图说明了通过 OTBR 控制 Matter 设备的测试步骤。