基于FRDM-RW612 桥接 Matter Zigbee
本用户指南提供了如何使用由 NXP RW612(支持 OpenThread 边界路由器 - Openthread + WiFi)和 NXP K32W0x1(支持 Zigbee)组成的 NXP 无线 MCU 系统将非 Matter 设备(例如传统 Zigbee 设备)桥接到 Matter 生态系统的说明。
设计基础设施:
硬件连接:
主板:FRDM-RW612
类别:无线连接、桥接器、RTOS
外设:UART
工具链:GCC
目录
1.软件要求
- Ubuntu 22.04 作为独立 PC 或安装在虚拟机(如 VirtualBox)中
- JLink 版本(> v.792f)
- K32W061 SDK26_16
- DK6Programmer.exe(SDK2616K32W061DK6toolsJN-SW-4407-DK6-Flash-ProgrammerJN-SW-4407 DK6 生产 Flash 编程器 v4564.exe)
- JN-AN-1247 - Zigbee 控制桥:JN-AN-1247BinariesControlBridgeFullGpProxy1000000ControlBridgeFullGpProxy1000000.bin(构建时波特率设置为 1000000bps)
- JN-AN-1244 - Zigbee 彩灯:JN-AN-1244BinariesExtendedColorLightGpProxyOM15081ExtendedColorLightGpProxyOM15081.bin(预构建)
- JN-AN-1246 - Zigbee 温度传感器:JN-AN-1246BinariesLTOSensorNtagIcodeOtaOM15081R2LTOSensorNtagIcodeOtaOM15081R2_V1.bin(预构建)
- FRDM-RW612 Matter-Zigbee-Bridge:/examples/bridge-app/nxp/rt/rw61x/out/debug/chip-rw61x-bridge-example.srec
- MatterOverThread 灯:/examples/lighting-app/nxp/mcxw71/out/debug/chip-mcxw71-light-example.srec
2.硬件要求
- 基于 Matter 1.4 或更新版本的 Matter 控制器
- FRDM-RW612板
- K32W061-DK6(MEZZANINE模块+OM15076-3载板)作为Zigbee协调器
- USB-UART转换器作为信息记录
- FRDM-RW612 J5 引脚 4 (GPIO03) FC0UART_TXD <=> 转换器 RX
- FRDM-RW612 J5 引脚 8 (GND) <=> 转换器 GND
- FRDM-MCXW71 作为 MatterOverThread Light
- K32W061 作为 Zigbee ColorLight
- K32W061 作为 Zigbee 光温度占用 (LTO) 传感器
3. 设置
- 创建构建环境:
- 将 Matter repo 初始化为bridge-app/nxp/rt/rw61x/third_party内的子模块:
git submodule update --init
- 将补丁从补丁文件夹复制到bridge-app/nxp/rt/rw61x/third_party:
cp patches/* bridge-app/nxp/rt/rw61x/third_party/
- 将zigbee_bridge文件夹复制到bridge-app/nxp/rt/rw61x/third_party/matter/third_party/nxp:
cp -r zigbee_bridge/ bridge-app/nxp/rt/rw61x/third_party/matter/third_party/nxp/
- 转到事项根文件夹:
cd bridge-app/nxp/rt/rw61x/third_party/matter/
- 安装物质所需的软件包:
sudo apt-get install git gcc g++ pkg-config libssl-dev libdbus-1-dev libglib2.0-dev
libavahi-client-dev ninja-build python3-venv python3-dev python3-pip unzip
libgirepository1.0-dev libcairo2-dev libreadline-dev
- 查看 NXP 特定的 Matter 子模块:
scripts/checkout_submodules.py --shallow --platform nxp --recursive
- 运行引导脚本来初始化 Matter 构建环境
source scripts/bootstrap.sh
- 如果引导已经完成,则可以使用激活脚本来激活环境:
source scripts/activate.sh
注意:该环境仅在执行引导/激活脚本的终端中处于活动状态。
- 对/src和/example文件夹应用以下补丁:
```
git apply ../example-changes.patchgit apply ../src-changes.patch
``` - 初始化NXP SDK:
third_party/nxp/nxp_matter_support/scripts/update_nxp_sdk.py --platform common
- 转到nxp_matter_support文件夹:
cd third_party/nxp/nxp_matter_support/
- 应用以下补丁来修改板文件并启用与 Zigbee 协调器的 UART 通信:
git apply ../../../../sdk-changes.patch
- 将 Matter repo 初始化为bridge-app/nxp/rt/rw61x/third_party内的子模块:
- 构建 FRDM-RW612 Matter-Zigbee 桥接应用程序
- 返回bridge-app/nxp/rt/rw61x文件夹
cd ../../../../../
- 使用 Thread BR 选项生成 FRDM-RW612 板的构建文件:
gn gen --args="chip_enable_wifi=true chip_enable_openthread=true nxp_enable_matter_cli=true board_version="frdm"" out/debug
- 构建示例:
ninja -C out/debug/
- 构建完成后,可以在 out/debug/ 文件夹中找到应用程序二进制文件(.srec 文件),名称为chip-rw61x-bridge-example.srec。
- 按照以下说明将应用程序二进制文件刷入主板
- 返回bridge-app/nxp/rt/rw61x文件夹
- 构建 FRDM-MCXW71 Matter 开/关灯应用程序
- 返回 Matter 根文件夹
cd third_party/matter
- 按照专用readme 文件中提供的说明,为 FRDM-MCXW71 构建并刷新 Matter On/Off 灯应用程序
- 返回 Matter 根文件夹
- 将 Zigbee 控制桥和 Zigbee 彩灯二进制文件刷入两块 K32W061 开发板
- 使用以下说明将二进制文件刷入主板
4. 运行演示
- 通过 Wi-fi 将 FRDM-RW612 连接到 Matter 网络,
启动 FRDM-RW612 并等到其日志中出现消息“CHIPoBLE 广告已启动”,然后运行:
chip-tool pairing ble-wifi 1 SSID Passwd 20202021 3840
等到 Raspberry Pi 上显示“设备调试成功完成”消息,这表明此 FRDM-RW612 已成功作为 MatterOverWifi 设备加入 Matter 控制器。
- 按照 CLI 上的命令在 FRDM-RW612 上设置 OpenThread 边界路由器 (OTBR)
- otcli 数据集初始化
- otcli 数据集 panid 0xabcd --- 0xabcd 可以更改为其他值
- otcli 数据集通道 25 --- 25 可以在 11~26 之间更改
- otcli 数据集提交活动
- otcli ifconfig up
- otcli线程启动
- otcli 状态 --- 必须等到“leader”状态出现
- otcli 数据集活动 –x --- chip-tool 中使用的线程数据集类似于以下内容:0e08000000000001000035060004001fffe002088711152e77458a490708fdcbf744a91020cb05100c208752e1bd2586f0a87ed481890312030f4f70656e5468726561642d633130640410d60d95cb5db1044086f7813e66de19020c0402a0f7f80102abcd0003000019
- 将 FRDM-MCXW71 MatterOverThread Light App 加入到 FRDM-RW612 OTBR 在出厂时刷入 chip-mcxw71-light-example.srec 的 FRDM-MCXW71 上按下 SW2,并在其 UART 控制台上显示“Started BLE Advertising”,然后运行:
芯片工具配对 ble 线程 2 十六进制:0e08000000000001000035060004001fffe002088711152e77458a490708fdcbf744a91020cb05100c208752e1bd2586f0a87ed481890312030f4f70656e5468726561642d633130640410d60d95cb5db1044086f7813e66de19020c0402a0f7f80102abcd0003000019 20202021 3840
等到 Matter 控制器的日志中出现消息“设备调试成功完成”,这确认此 K32W148 已通过 FRDM-RW612 OTBR 作为 MatterOverThread 设备成功加入 Matter 网络。 - 设置 Matter ZB Bridge,在 FRDM-RW612 CLI 上运行以下命令,在刷入 ControlBridgeFullGpProxy_115200.bin 的外部 K32W061 MEZZANINE 模块上形成 Zigbee 网络,然后允许其他 Zigbee 节点加入:
- zb-erasepdm --- 擦除当前使用的 Zigbee 信道,如果想继续使用现有信道,请跳过此步骤
- zb-nwk-form 11 --- 可以是11~26之间的任意值作为有效的Zigbee通道
- zb-nwk-pjoin 255 --- 255 表示启用,0 表示禁用允许加入
打开工厂新的彩色灯 K32W061 并刷入 ExtendedColorLightGpProxyOM15081.bin,以下消息将显示在 FRDM-RW612 控制台上:
Add Color Light
Node Type=3,Short=0x18d4,MAC=0x158d00031f1742,EP=12928
(此处 EP=12928 是将非物质 Zigbee 节点映射为物质设备的动态分配端点,如果更多 Zigbee 节点加入 FRDM-RW612 物质网络,则增加的动态端点为 12929、12930……将分别分配给这些附加节点。)打开出厂新的温度传感器 K32W061,并刷新 LTOSensorNtagIcodeOtaOM15081R2V1.bin,在 FRDM-RW612 控制台上可以看到类似的消息。
5.结果
通过 Matter 控制器控制台运行以下命令,Color Light K32W061 上的 RGB 将相应更改:
- chip-tool onoff toggle 1 12928 --- RGB 交替开启和关闭
- chip-tool levelcontrol move-to-level 2 1 1 1 1 12928 --- RGB亮度等级改为2
- chip-tool colorcontrol move-to-hue 32 1 1 1 1 1 12928 --- RGB色调更改为32
- chip-tool colorcontrol move-to-saturation 64 1 1 1 1 12928 --- RGB饱和度改为64
- chip-tool colorcontrol move-to-color-temp 128 1 1 1 1 12928 --- RGB 温度更改为 128
- chip-tool colorcontrol move-to-color 30000 60000 1 1 1 1 12928 --- RGB ColorX 和 ColorY 分别更改为 30000 和 60000
6. 支持
如果您需要帮助,请联系 FAE 或创建工单到NXP 社区。
项目元数据
来源:恩智浦appcodehub