之前我们构建了Matter固件和chip-tool,接下来我们需要建立Thread网络并通过BLE配网,这样才能通过chip-tool来控制Matter设备。
1
建立Thread网络并获取DATASET
01
建立Thread网络
树莓派通过网线连接到路由器,在浏览器中输入树莓派的 IP 地址,点击 Form 按钮,默认设置不用更改, 点击 FORM 建立 Thread 网络。
02
检查Thread 网络状态
Thread 网络建立后可以在 Status 下查看状态,检查RCP状态为leader。
03
获取DATASET
请以 SSH 方式登录树莓派(预置镜像中的用户名 username:pi,密码 password:raspberry),执行以下命令:
$ sudo ot-ctl dataset active -x
DATASET是类似于以下形式的一串十六进制的字符串,将其保存好。
*注意:每次形成新的 Thread 网络,上面的 DATASET 将会被重新生成。即使每次生成 Thread 网络所设置的参数相同,其中间的部分...0708fd0b448cf7918bcf051000...也会不同。
2
通过BLE配网
01
在主机上进行配网之前,请检查主机与树莓派之间的网络连接状态。
如果主机与树莓派之间是由带防火墙的路由器做转发,暂时关闭路由器上的防火墙,尤其是其禁止端口监听、端口扫描等功能。
如果使用运营商的光猫作为路由,可能会导致 mDNS 服务无法发现的错误,尝试将主机与树莓派用仅开启 DHCP 服务的其他路由器进行网线直连。
确保主机是独立的 Ubuntu 主机;若使用 Windows 上的 VirtualBox 等虚拟机充当主机,则需要给它提供并配置额外的蓝牙适配器。
02
检查 Matter 固件版本与 chip-tool 的是否相符
编译 Matter 设备的固件和 chip-tool 需要相同的 Zephyr 环境,否则进行配网时会出错。
*注意:若要使用自己构建的 chip-tool 和 Matter 设备的固件,必须保证它们使用了相同的 commit 的 connectedhomeip 工程目录进行构建,以避免出现兼容性问题。建议使用网盘内提供的预置固件。
03
在主机上的 shell 中配置好以下命令:
$ ./chip-tool pairing ble-thread ${NODE_ID} hex:${DATASET} ${PIN_CODE} ${DISCRIMINATOR}
*注意:运行 chip-tool 需退出镜像,并检查 chip-tool 的执行权限。
NODE_ID 可以是 RCP 初始化之后,未使用过的任何非零值,chip-tool 将使用它来操作特定的 Matter 设备。
DATASET 即为树莓派上获取的字符串。
示例:
04
Matter 设备上电后,红灯闪烁,进入 BLE 广播状态,在主机上的 shell 中输入上面命令并运行,会让 Matter 设备与 RCP 所在的边界路由开始配对并配网。
这个过程会持续一段时间,如果一切顺利,Matter 设备加入 Thread 网络后,你将能够从主机的 shell 中看到类似下面的信息:
3
用chip-tool控制lighting-app
在配网成功之后,可以使用 chip-tool 对 Matter 设备进行控制,对于lighting-app来说,主要的几个控制命令如下。
01
开关灯
开灯:
$ ./chip-tool onoff on ${NODE_ID} 1
关灯:
$ ./chip-tool onoff off ${NODE_ID} 1
切换状态:
$ ./chip-tool onoff toggle ${NODE_ID} 1
其中的${NODE_ID}是上一步进行配网时使用的非零值。
02
查看灯的状态
读取开关状态:
$ ./chip-tool onoff read on-off ${NODE_ID} 1
读取亮度状态:
$ ./chip-tool levelcontrol read current-level ${NODE_ID} 1
03
改变灯的亮度
$ ./chip-tool levelcontrol move-to-level 32 0 0 0 ${NODE_ID} 1
全部0条评论
快来发表一下你的评论吧 !