之前我們構(gòu)建了Matter固件和chip-tool,接下來我們需要建立Thread網(wǎng)絡(luò)并通過BLE配網(wǎng),這樣才能通過chip-tool來控制Matter設(shè)備。
1建立Thread網(wǎng)絡(luò)并獲取DATASET
01建立Thread網(wǎng)絡(luò)
樹莓派通過網(wǎng)線連接到路由器,在瀏覽器中輸入樹莓派的 IP 地址,點(diǎn)擊 Form 按鈕,默認(rèn)設(shè)置不用更改, 點(diǎn)擊 FORM 建立 Thread 網(wǎng)絡(luò)。
02檢查Thread 網(wǎng)絡(luò)狀態(tài)
Thread 網(wǎng)絡(luò)建立后可以在 Status 下查看狀態(tài),檢查RCP狀態(tài)為leader。
03獲取DATASET
請(qǐng)以 SSH 方式登錄樹莓派(預(yù)置鏡像中的用戶名 username:pi,密碼 password:raspberry),執(zhí)行以下命令:
$ sudo ot-ctl dataset active -x
DATASET是類似于以下形式的一串十六進(jìn)制的字符串,將其保存好。
*注意:每次形成新的 Thread 網(wǎng)絡(luò),上面的 DATASET 將會(huì)被重新生成。即使每次生成 Thread 網(wǎng)絡(luò)所設(shè)置的參數(shù)相同,其中間的部分...0708fd0b448cf7918bcf051000...也會(huì)不同。
2通過BLE配網(wǎng)
01在主機(jī)上進(jìn)行配網(wǎng)之前,請(qǐng)檢查主機(jī)與樹莓派之間的網(wǎng)絡(luò)連接狀態(tài)。
-
如果主機(jī)與樹莓派之間是由帶防火墻的路由器做轉(zhuǎn)發(fā),暫時(shí)關(guān)閉路由器上的防火墻,尤其是其禁止端口監(jiān)聽、端口掃描等功能。
-
如果使用運(yùn)營商的光貓作為路由,可能會(huì)導(dǎo)致 mDNS 服務(wù)無法發(fā)現(xiàn)的錯(cuò)誤,嘗試將主機(jī)與樹莓派用僅開啟 DHCP 服務(wù)的其他路由器進(jìn)行網(wǎng)線直連。
-
確保主機(jī)是獨(dú)立的 Ubuntu 主機(jī);若使用 Windows 上的 VirtualBox 等虛擬機(jī)充當(dāng)主機(jī),則需要給它提供并配置額外的藍(lán)牙適配器。
02檢查 Matter 固件版本與 chip-tool 的是否相符
編譯 Matter 設(shè)備的固件和 chip-tool 需要相同的 Zephyr 環(huán)境,否則進(jìn)行配網(wǎng)時(shí)會(huì)出錯(cuò)。
*注意:若要使用自己構(gòu)建的 chip-tool 和 Matter 設(shè)備的固件,必須保證它們使用了相同的 commit 的 connectedhomeip 工程目錄進(jìn)行構(gòu)建,以避免出現(xiàn)兼容性問題。建議使用網(wǎng)盤內(nèi)提供的預(yù)置固件。
03在主機(jī)上的 shell 中配置好以下命令:
$ ./chip-tool pairing ble-thread ${NODE_ID} hex:${DATASET} ${PIN_CODE} ${DISCRIMINATOR}
*注意:運(yùn)行 chip-tool 需退出鏡像,并檢查 chip-tool 的執(zhí)行權(quán)限。
NODE_ID 可以是 RCP 初始化之后,未使用過的任何非零值,chip-tool 將使用它來操作特定的 Matter 設(shè)備。
DATASET 即為樹莓派上獲取的字符串。
示例:
04Matter 設(shè)備上電后,紅燈閃爍,進(jìn)入 BLE 廣播狀態(tài),在主機(jī)上的 shell 中輸入上面命令并運(yùn)行,會(huì)讓 Matter 設(shè)備與 RCP 所在的邊界路由開始配對(duì)并配網(wǎng)。
這個(gè)過程會(huì)持續(xù)一段時(shí)間,如果一切順利,Matter 設(shè)備加入 Thread 網(wǎng)絡(luò)后,你將能夠從主機(jī)的 shell 中看到類似下面的信息:
3用chip-tool控制lighting-app
在配網(wǎng)成功之后,可以使用 chip-tool 對(duì) Matter 設(shè)備進(jìn)行控制,對(duì)于lighting-app來說,主要的幾個(gè)控制命令如下。
01開關(guān)燈
開燈:
$ ./chip-tool onoff on ${NODE_ID} 1
關(guān)燈:
$ ./chip-tool onoff off ${NODE_ID} 1
切換狀態(tài):
$ ./chip-tool onoff toggle ${NODE_ID} 1
其中的${NODE_ID}是上一步進(jìn)行配網(wǎng)時(shí)使用的非零值。
02查看燈的狀態(tài)
讀取開關(guān)狀態(tài):
$ ./chip-tool onoff read on-off ${NODE_ID} 1
讀取亮度狀態(tài):
$ ./chip-tool levelcontrol read current-level ${NODE_ID} 1
03改變燈的亮度
$ ./chip-tool levelcontrol move-to-level 32 0 0 0 ${NODE_ID} 1
-
BLE
+關(guān)注
關(guān)注
12文章
648瀏覽量
59295 -
RTThread
+關(guān)注
關(guān)注
7文章
132瀏覽量
40776 -
Matter
+關(guān)注
關(guān)注
1文章
208瀏覽量
5160
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論