基于FRDM-RW612 橋接 Matter Zigbee
本用戶(hù)指南提供了如何使用由 NXP RW612(支持 OpenThread 邊界路由器 - Openthread + WiFi)和 NXP K32W0x1(支持 Zigbee)組成的 NXP 無(wú)線(xiàn) MCU 系統(tǒng)將非 Matter 設(shè)備(例如傳統(tǒng) Zigbee 設(shè)備)橋接到 Matter 生態(tài)系統(tǒng)的說(shuō)明。
設(shè)計(jì)基礎(chǔ)設(shè)施:
硬件連接:
主板:FRDM-RW612
類(lèi)別:無(wú)線(xiàn)連接、橋接器、RTOS
外設(shè):UART
工具鏈:GCC
目錄
1.軟件要求
- Ubuntu 22.04 作為獨(dú)立 PC 或安裝在虛擬機(jī)(如 VirtualBox)中
- JLink 版本(> v.792f)
- K32W061 SDK26_16
- DK6Programmer.exe(SDK2616K32W061DK6toolsJN-SW-4407-DK6-Flash-ProgrammerJN-SW-4407 DK6 生產(chǎn) Flash 編程器 v4564.exe)
- JN-AN-1247 - Zigbee 控制橋:JN-AN-1247BinariesControlBridgeFullGpProxy1000000ControlBridgeFullGpProxy1000000.bin(構(gòu)建時(shí)波特率設(shè)置為 1000000bps)
- JN-AN-1244 - Zigbee 彩燈:JN-AN-1244BinariesExtendedColorLightGpProxyOM15081ExtendedColorLightGpProxyOM15081.bin(預(yù)構(gòu)建)
- JN-AN-1246 - Zigbee 溫度傳感器:JN-AN-1246BinariesLTOSensorNtagIcodeOtaOM15081R2LTOSensorNtagIcodeOtaOM15081R2_V1.bin(預(yù)構(gòu)建)
- 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協(xié)調(diào)器
- USB-UART轉(zhuǎn)換器作為信息記錄
- FRDM-RW612 J5 引腳 4 (GPIO03) FC0UART_TXD <=> 轉(zhuǎn)換器 RX
- FRDM-RW612 J5 引腳 8 (GND) <=> 轉(zhuǎn)換器 GND
- FRDM-MCXW71 作為 MatterOverThread Light
- K32W061 作為 Zigbee ColorLight
- K32W061 作為 Zigbee 光溫度占用 (LTO) 傳感器
3. 設(shè)置
- 創(chuàng)建構(gòu)建環(huán)境:
- 將 Matter repo 初始化為bridge-app/nxp/rt/rw61x/third_party內(nèi)的子模塊:
git submodule update --init
- 將補(bǔ)丁從補(bǔ)丁文件夾復(fù)制到?bridge-app/nxp/rt/rw61x/third_party?:
cp patches/* bridge-app/nxp/rt/rw61x/third_party/
- 將zigbee_bridge文件夾復(fù)制到?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/
- 轉(zhuǎn)到事項(xiàng)根文件夾:
cd bridge-app/nxp/rt/rw61x/third_party/matter/
- 安裝物質(zhì)所需的軟件包:
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
- 運(yùn)行引導(dǎo)腳本來(lái)初始化 Matter 構(gòu)建環(huán)境
source scripts/bootstrap.sh
- 如果引導(dǎo)已經(jīng)完成,則可以使用激活腳本來(lái)激活環(huán)境:
source scripts/activate.sh
?注意:?該環(huán)境僅在執(zhí)行引導(dǎo)/激活腳本的終端中處于活動(dòng)狀態(tài)。
- 對(duì)/src和/example文件夾應(yīng)用以下補(bǔ)?。?br />
```
git apply ../example-changes.patchgit apply ../src-changes.patch
``` - 初始化NXP SDK:
third_party/nxp/nxp_matter_support/scripts/update_nxp_sdk.py --platform common
- 轉(zhuǎn)到nxp_matter_support文件夾:
cd third_party/nxp/nxp_matter_support/
- 應(yīng)用以下補(bǔ)丁來(lái)修改板文件并啟用與 Zigbee 協(xié)調(diào)器的 UART 通信:
git apply ../../../../sdk-changes.patch
- 將 Matter repo 初始化為bridge-app/nxp/rt/rw61x/third_party內(nèi)的子模塊:
- 構(gòu)建 FRDM-RW612 Matter-Zigbee 橋接應(yīng)用程序
- 返回bridge-app/nxp/rt/rw61x文件夾
cd ../../../../../
- 使用 Thread BR 選項(xiàng)生成 FRDM-RW612 板的構(gòu)建文件:
gn gen --args="chip_enable_wifi=true chip_enable_openthread=true nxp_enable_matter_cli=true board_version="frdm"" out/debug
- 構(gòu)建示例:
ninja -C out/debug/
- 構(gòu)建完成后,可以在 out/debug/ 文件夾中找到應(yīng)用程序二進(jìn)制文件(.srec 文件),名稱(chēng)為chip-rw61x-bridge-example.srec。
- 按照以下說(shuō)明將應(yīng)用程序二進(jìn)制文件刷入主板
- 返回bridge-app/nxp/rt/rw61x文件夾
- 構(gòu)建 FRDM-MCXW71 Matter 開(kāi)/關(guān)燈應(yīng)用程序
- 返回 Matter 根文件夾
cd third_party/matter
- 按照專(zhuān)用readme 文件中提供的說(shuō)明,為 FRDM-MCXW71 構(gòu)建并刷新 Matter On/Off 燈應(yīng)用程序
- 返回 Matter 根文件夾
- 將 Zigbee 控制橋和 Zigbee 彩燈二進(jìn)制文件刷入兩塊 K32W061 開(kāi)發(fā)板
- 使用以下說(shuō)明將二進(jìn)制文件刷入主板
4. 運(yùn)行演示
- 通過(guò) Wi-fi 將 FRDM-RW612 連接到 Matter 網(wǎng)絡(luò),
啟動(dòng) FRDM-RW612 并等到其日志中出現(xiàn)消息“CHIPoBLE 廣告已啟動(dòng)”,然后運(yùn)行:
chip-tool pairing ble-wifi 1 SSID Passwd 20202021 3840
等到 Raspberry Pi 上顯示“設(shè)備調(diào)試成功完成”消息,這表明此 FRDM-RW612 已成功作為 MatterOverWifi 設(shè)備加入 Matter 控制器。
- 按照 CLI 上的命令在 FRDM-RW612 上設(shè)置 OpenThread 邊界路由器 (OTBR)
- otcli 數(shù)據(jù)集初始化
- otcli 數(shù)據(jù)集 panid 0xabcd --- 0xabcd 可以更改為其他值
- otcli 數(shù)據(jù)集通道 25 --- 25 可以在 11~26 之間更改
- otcli 數(shù)據(jù)集提交活動(dòng)
- otcli ifconfig up
- otcli線(xiàn)程啟動(dòng)
- otcli 狀態(tài) --- 必須等到“l(fā)eader”狀態(tài)出現(xiàn)
- otcli 數(shù)據(jù)集活動(dòng) –x --- chip-tool 中使用的線(xiàn)程數(shù)據(jù)集類(lèi)似于以下內(nèi)容:0e08000000000001000035060004001fffe002088711152e77458a490708fdcbf744a91020cb05100c208752e1bd2586f0a87ed481890312030f4f70656e5468726561642d633130640410d60d95cb5db1044086f7813e66de19020c0402a0f7f80102abcd0003000019
- 將 FRDM-MCXW71 MatterOverThread Light App 加入到 FRDM-RW612 OTBR 在出廠時(shí)刷入 chip-mcxw71-light-example.srec 的 FRDM-MCXW71 上按下 SW2,并在其 UART 控制臺(tái)上顯示“Started BLE Advertising”,然后運(yùn)行:
芯片工具配對(duì) ble 線(xiàn)程 2 十六進(jìn)制:0e08000000000001000035060004001fffe002088711152e77458a490708fdcbf744a91020cb05100c208752e1bd2586f0a87ed481890312030f4f70656e5468726561642d633130640410d60d95cb5db1044086f7813e66de19020c0402a0f7f80102abcd0003000019 20202021 3840
等到 Matter 控制器的日志中出現(xiàn)消息“設(shè)備調(diào)試成功完成”,這確認(rèn)此 K32W148 已通過(guò) FRDM-RW612 OTBR 作為 MatterOverThread 設(shè)備成功加入 Matter 網(wǎng)絡(luò)。 - 設(shè)置 Matter ZB Bridge,在 FRDM-RW612 CLI 上運(yùn)行以下命令,在刷入 ControlBridgeFullGpProxy_115200.bin 的外部 K32W061 MEZZANINE 模塊上形成 Zigbee 網(wǎng)絡(luò),然后允許其他 Zigbee 節(jié)點(diǎn)加入:
- zb-erasepdm --- 擦除當(dāng)前使用的 Zigbee 信道,如果想繼續(xù)使用現(xiàn)有信道,請(qǐng)?zhí)^(guò)此步驟
- zb-nwk-form 11 --- 可以是11~26之間的任意值作為有效的Zigbee通道
- zb-nwk-pjoin 255 --- 255 表示啟用,0 表示禁用允許加入
打開(kāi)工廠新的彩色燈 K32W061 并刷入 ExtendedColorLightGpProxyOM15081.bin,以下消息將顯示在 FRDM-RW612 控制臺(tái)上:
Add Color Light
Node Type=3,Short=0x18d4,MAC=0x158d00031f1742,EP=12928
(此處 EP=12928 是將非物質(zhì) Zigbee 節(jié)點(diǎn)映射為物質(zhì)設(shè)備的動(dòng)態(tài)分配端點(diǎn),如果更多 Zigbee 節(jié)點(diǎn)加入 FRDM-RW612 物質(zhì)網(wǎng)絡(luò),則增加的動(dòng)態(tài)端點(diǎn)為 12929、12930……將分別分配給這些附加節(jié)點(diǎn)。)打開(kāi)出廠新的溫度傳感器 K32W061,并刷新 LTOSensorNtagIcodeOtaOM15081R2V1.bin,在 FRDM-RW612 控制臺(tái)上可以看到類(lèi)似的消息。
5.結(jié)果
通過(guò) Matter 控制器控制臺(tái)運(yùn)行以下命令,Color Light K32W061 上的 RGB 將相應(yīng)更改:
- chip-tool onoff toggle 1 12928 --- RGB 交替開(kāi)啟和關(guān)閉
- chip-tool levelcontrol move-to-level 2 1 1 1 1 12928 --- RGB亮度等級(jí)改為2
- chip-tool colorcontrol move-to-hue 32 1 1 1 1 1 12928 --- RGB色調(diào)更改為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. 支持
如果您需要幫助,請(qǐng)聯(lián)系 FAE 或創(chuàng)建工單到NXP 社區(qū)。
項(xiàng)目元數(shù)據(jù)
來(lái)源:恩智浦appcodehub