照明
概述
此照明示例展示了如何使用Matter应用层构建照明设备以及如何进行单灯控制。内容包括环境设置、LED硬件接线、配置修改以及编译和下载。此外,该示例还提供了使用CHIP Tool进行测试和设备配网的步骤。用户可以将此示例作为创建自己应用程序的参考。
环境需求
该示例支持以下开发套件:
硬件平台 |
板卡名称 |
---|---|
RTL8777G HDK |
RTL8777G EVB |
准备Matter环境
要设置Matter环境,请按照 开发环境设置 中列出的步骤操作。
准备CHIP Tool
CHIP Tool(chip-tool)是Matter的控制器实现,允许将Matter设备加入网络并使用Matter消息与其通信,这些消息可能包含数据模型的相关操作,例如群集命令。该工具还提供其他特定于Matter的实用程序,如解析设置负载或执行发现操作。
硬件连线
连接红框中三个LED的引脚。
LED1:显示On/Off状态。
LED2:显示identify状态。
LED3:显示系统状态。在出厂重置期间,LED每隔500ms闪烁一次。出厂重置结束后,灯会以亮50ms、灭950ms的状态闪烁。如果有Bluetooth LE连接,LED每隔100ms闪烁一次。

硬件接线
配置选项
示例样本配置
我们的示例样本都有默认配置。
如果要修改示例配置,
可以更改 matter/connectedhomeip/examples/<app_name>/realtek_bee/main/include
路径下的 CHIPProjectConfig.h
,其中 app_name 指的是应用程序的名称,例如 lighting-app。
有关配置项的更多信息,请参见 APP配置。
工厂数据配置
对于EVB板,工厂数据默认是禁用的。要使用工厂数据,请参阅 工厂数据 中的 工厂数据生成 和 启用Matter应用程序构建的工厂数据 部分。
编译和下载
编译
导航到openthread目录并编译lighting应用程序
$ cd beeSDK/subsys/openthread/
$ rm -r build/
$ OT_CMAKE_NINJA_TARGET="matter-cli-ftd" ./Realtek/build bee4 sdk 8777g lighting-app
下载
编译成功后,应用程序bin文件 matter-cli-ftd_bank0_MP_dev_*.bin
将生成在 build/bin
目录中。
要将应用程序bin文件下载到EVB板,按照 快速入门 中 固件下载 中列出的步骤操作。如果工厂数据已启用,请参阅 工厂数据 中的 下载工厂数据文件到RTL8777G。
然后按下EVB板上的重置按钮,它将开始运行。
测试验证
将示例编程到EVB板后,完成下面的步骤。
准备阶段
使用USB线将套件连接到计算机。
使用串口调试工具(例如,Tera Term)打开与套件的串口连接。
如果在编程过程中未擦除flash,请按住SW2并保持6.5s以上,直到进行出厂重置。
按下RST以开启蓝牙广播。
将设备加入到Matter网络。请参考 设备配网。在配网过程中,记下灯泡节点ID的值以备后用(<light_bulb_node_ID>)。
测试阶段
在准备工作完成后,可以使用CHIP Tool测试单灯控制。
运行以下命令:
在toggle命令之前检查灯的on-off属性值。
$ ./chip-tool onoff read on-off <light_bulb_node_ID> <endpoint_id>
<light_bulb_node_ID>
: 从上一步中获得<endpoint_id>
: 带有OnOff群集的端点ID
例如:
$ ./chip-tool onoff read on-off 2 1
日志中将出现以下消息:
CHIP:TOO: OnOff: False
切换on-off属性状态。
$ ./chip-tool onoff toggle <light_bulb_node_ID> <endpoint_id>
例如:
$ ./chip-tool onoff toggle 2 1
在toggle命令后检查on-off属性值是否已更改。
$ ./chip-tool onoff read on-off <light_bulb_node_ID> <endpoint_id>
例如:
$ ./chip-tool onoff read on-off 2 1
日志中将出现以下消息:
CHIP:TOO: OnOff: True
设备配网
确保CHIP Tool和OTBR(OpenThread Border Router)在同一网络段中。有关设置OTBR的过程,请参见 OpenThread 边界路由器构建和配置。
使用OTBR组建一个Thread网络。
$ sudo ot-ctl factoryreset $ sleep 1 $ sudo ot-ctl dataset init new $ sudo ot-ctl dataset channel 25 $ sudo ot-ctl dataset panid 0x5b35 $ sudo ot-ctl dataset extpanid 5b35dead5b35beef $ sudo ot-ctl dataset networkname 5b35 $ sudo ot-ctl dataset networkkey 00112233445566778899aabbccddeeff $ sudo ot-ctl dataset commit active $ sudo ot-ctl prefix add fd11:35::/64 pasor $ sudo ot-ctl dataset meshlocalprefix fb73:b7bd:20e5:053d:: $ sudo ot-ctl dataset commit active $ sudo ot-ctl ifconfig up $ sleep 1 $ sudo ot-ctl thread start $ sleep 1 $ sudo ot-ctl state $ sudo ot-ctl netdata register $ sleep 1 $ sudo ot-ctl netdata show $ sudo ot-ctl ipaddr
请确保OTBR是leader。
$ sudo ot-ctl state leader done
获取设备的PIN码和Discriminator。
PIN码:用来认证设备的27位值。默认值:20202021
Discriminator:用来区分多个可配网设备广播的12位值。默认值:3840
如果您使用工厂数据,可以扫描 工厂数据生成 部分生成的QR码来获取此信息。
QR码和解析结果
可以通过CHIP Tool解析其内容,示例如下:
$ ./chip-tool payload parse-setup-payload "MT:Q5AA0CEK010O0648G00" CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_tool_kvs CHIP:SPL: Parsing base38Representation: MT:Q5AA0CEK010O0648G00 CHIP:SPL: Version: 0 CHIP:SPL: VendorID: 4886 CHIP:SPL: ProductID: 32769 CHIP:SPL: Custom flow: 0 (STANDARD) CHIP:SPL: Discovery Bitmask: 0x02 (BLE) CHIP:SPL: Long discriminator: 3841 (0xf01) CHIP:SPL: Passcode: 20202022
将设备通过Bluetooth LE加入到Thread网络。
$ ./chip-tool pairing ble-thread <node_id> hex:<operational_dataset> <pin_code> <discriminator> --bypass-attestation-verifier true
<node_id>
:用户定义的正在配网的节点ID。<operational_dataset>
:从Thread Border Router获取的当前的operational dataset。获取方法是,在安装OTBR的Raspberry Pi终端中执行命令sudo ot-ctl dataset active -x
。<pin_code>
:在步骤3中获得。<discriminator>
:在步骤3中获得。--bypass-attestation-verifier
:用于绕过验证。如果未提供此标志或其值为false,则不绕过验证。如果其值为true (--bypass-attestation-verifier true
),那么如果验证失败,配网仍将继续。验证失败可能由认证声明、PAA或PAI证书,或者设备认证证书中的错误导致。如果希望快速配网具有基于未知PAA的PAI和DAC证书的设备,并且使用的是未知密钥签名的认证声明,此选项将非常有用。
例如:
$ ./chip-tool pairing ble-thread 2 hex:0e08000000000001000035060004001fffe00410df7d53dd16ad16f407cd13efa93b285e0c0402a0f7f800030000190102123402081111111122222222030431323334051000112233445566778899aabbccddeeff0708fb73b7bd20e5053d 20202022 3841 --bypass-attestation-verifier true
配网可能需要一些时间。如果成功,日志中将出现以下消息:
Device commissioning completed with success