一、簡介
本文介紹 NXP 原廠利用 K32W 開發板建立 matter 標準的範例, 以下將會圍繞著 light-switch-app 範例說明如何建立這個範例並燒錄到 K32W 開發板中執行, 最後會透過 chip-tool 這套 matter SDK 當中隨附的控制端工具, 將與 lgihting-app 做裝置綁定, 便可透過其一K32W 開發板 ( light-switch-app ) 上 button 模擬燈控開關控制另一塊 K32W 開發板 ( light-switch-app ) 上 LED 燈號使其燈亮或是燈滅, 以上做為一個 matter 燈控開關裝置的範例。
二、事前準備
K32W 開發板 x2
i.MX 8M Nano 開發板 x1
三、操作步驟
1. 建立 i.MX 8M Nano ( 以下簡稱 i.mx 8mn ) 開發板操作環境, 請參照以下博文
[ NXP & Matter 系列 ] (一) 建立 K32W 範例 lighting-app
2. 建立 matter 開發環境請參照以下博文
[ NXP & Matter 系列 ] (一) 建立 K32W 範例 lighting-app
3. light-switch-app 建置步驟如下 :
( 請必須使用下列 github 連結版本, 最後的功能測試才會成功, 原因如下圖片說明 )
https://github.com/NXP/matter/tree/light-switch-base-on-v1.0.0.2-tag-nxp/examples/light-switch-app/nxp/k32w/k32w0
參照 BUILD 章節將 light-switch-app 產生 Binary 檔案
4. lighting-app 燒錄到 K32W 開發板
下載並安裝FTDI Driver : CDM21228_Setup.exe
請參照博文內容 : [ NXP & Matter 系列 ] (一) 建立 K32W 範例 lighting-app
下載並安裝 Production Flash Programmer v4564
請參照博文內容 : [ NXP & Matter 系列 ] (一) 建立 K32W 範例 lighting-app
DK6 EVK Jumper 設置 ( 下圖紅圈處 JP7 JP4 jumper 皆放在中間位置 )
開啟 win 10 命令提示單元 , 依序下指令 (記得先將 bin 檔案放置 c:\nxp\DK6Programmer 資料夾下):
cd c:\nxp\DK6Programmer
DK6Programmer.exe –list
( 範例為 COM9 , 需要下 DK6Programmer.exe -l 確認目前 comport 編號 )
< Erase >
DK6Programmer.exe -V0 -P 1000000 -s COM9 -e Flash -Y
< Write PSECT & ssbl bin >
DK6Programmer.exe -V0 -s COM9 -P 1000000 -w image_dir_0=0000000010000000 -Y
DK6Programmer.exe -V0 -s COM9 -P 1000000 -w image_dir_1=00400000CD040101 -Y
DK6Programmer.exe -V0 -s COM9 -P 1000000 -p FLASH@0x00=k32w061dk6_ssbl_MR3_QP1_enable_PDM_EXT_FLASH.bin -Y
< Write Application >
DK6Programmer.exe -V0 -s COM9 -P 1000000 -p FLASH@0x4000= chip-k32w0x-light-switch-example.bin -Y
四、功能測試K32W 開發板軟體配置
K32W 開發板01 ( 以下簡稱 K32W_01 )
請先燒錄 lighting-app > 參照博文[ NXP & Matter 系列 ] (一) 建立 K32W 範例 lighting-app
K32W 開發板02 ( 以下簡稱 K32W_02 )
請先燒錄 light-switch-app 至 K32W_02 板子
開發板連接方式
i.MX 8MN 需要連接以下三條
POWER > 變壓器 5V 接到市電
RCP > 接到 K32W board ( OM15080-K32W ) 下圖右邊 dongle board
Debug > 接到電腦或是筆電, 輸出 console , 也能輸入指令
K32W061 EVK
使用 mini USB cable 上電如下圖下方紅框處, 左側處有 TX RX 的 J4 與 J7 jumper ,
請將 J4 與 J7 jumper 插至 middle ( 中間位置, 由左到右總共 4 pins , 將中間 2 pins 短路 )
下圖右邊紅框處 Button 為 User Interface Button, 可按下操作 example ( 啟動 BLE advertising )
軟體操作步驟 :
1. 新建一個 WIFI AP , 可使用手機熱點分享 , SSID 跟連線密碼盡可能簡單, 建置好擺放一旁.
2. i.mx 8MN 將 SW101 撥到 ON 位置開機 , 下面紅框處
3. K32W 開發板利用 mini USB cable 上電。
4. 以下為依序輸入指令
login : root
cd matter
若有修改 WiFi AP 需求, 可輸入下列指令
vi otbr-setup-imx8mm.sh
若無可跳過接下來這三個指令
利用 VI 另存一個新 script 並且將 SSID 與 密碼填入, 不修改原本檔案
:w otbr-setup-imx8mm_tim.sh
修改 SSID 與連線密碼, 連入 手機熱點的 SSID 與密碼
:w otbr-setup-imx8mm.sh
退出 VI
:wq
連線到手機熱點 有看到 IP ADDRESS 出現就可以輸入 ping 做測試
./otbr-setup-imx8mm_tim.sh
測試 WIFI 有沒有連上 , 對中華的 DNS 8888 PING的到的話 就代表有能連到外網
ping -i mlan0 8.8.8.8
Factory the history in i.mx 8MN
ot-ctl factoryreset
./otbr-form-nwk.sh 會看到以下畫面, 注意紅框處
Execute otbr-form-nwk.sh
將上圖紅框處帶入下列 XXX 並送出下列指令 ( 指定為 endpoint 1 )
同時按下 K32W_01 開發板 ( lighting-app ) user button 啟動 BLE 廣播
chip-tool pairing ble-thread 1 hex:XXX 20202021 3840
將上圖紅框處帶入下列 XXX 並送出下列指令 ( 指定為 endpoint 2 )
同時按下 K32W_02 開發板 ( light-switch-app ) user button 啟動 BLE 廣播
chip-tool pairing ble-thread 2 hex:XXX 20202021 3840
輸入以下指令設定K32W_02 開發板 ( lighting-app )
chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": [2], "targets": [{"cluster": 6, "endpoint": 1, "deviceType": null}, {"cluster": 8, "endpoint": 1, "deviceType": null}]}]' 1 0
輸入以下指令設定K32W_01 開發板 ( ligh-switch-app )
chip-tool binding write binding '[{"fabricIndex": 1, "node": 1, "endpoint": 1, "cluster": 6}, {"fabricIndex": 1, "node": 1, "endpoint": 1, "cluster": 8}]' 2 1
等待一陣子燈控綁定完成後, 可透過開發板上的 button SW3 短按控制 D3 LED ON/OFF, 如下紅框
五、參考來源
評論