4. 创建第一个Matter over Thread智能灯

本章的目标非常明确:在Silicon Labs EFR32MG24开发板上,把Matter SDK自带的Light示例工程编译成可烧录固件,烧录进芯片,并完成Thread配网,最终让这盏“灯”被Matter生态中的控制器识别与控制。整个过程涉及三个关键环节:工程构建、固件烧录、Thread网络配网。理解这三者的关系,是后续所有Matter开发的基础。

一、开发环境与工程准备

在开始之前,需要确认开发环境已经就绪。推荐使用Simplicity Studio 5(SSv5)作为集成开发环境,它内置了Gecko SDK(GSDK)和Matter扩展包。安装时需勾选“Matter”和“Thread”相关组件。EFR32MG24开发板(如BRD4186A/BRD4187A)通过USB连接后,SSv5会自动识别并显示板卡信息。

Matter Light示例工程位于GSDK的Matter示例目录中,通常路径为Matter → Light Over Thread。创建工程时,SSv5会基于所选开发板自动生成对应的工程配置,包括引脚映射、时钟设置和无线射频参数。这里需要特别注意的是,Matter over Thread的示例工程默认使用Thread作为传输层,而不是Wi-Fi或以太网,因此工程中会包含OpenThread协议栈。

建议在创建工程前,先在SSv5的“Package Manager”中确认已安装最新版本的Matter扩展包和Thread SDK,避免因版本不匹配导致编译失败。

二、编译工程与关键配置

工程创建完成后,直接点击“Build”即可开始编译。但在此之前,有几个关键配置值得检查:

  • 设备类型(Device Type):Light示例默认配置为“Dimmable Light”,即支持亮度调节的灯。如果需要更简单的On/Off Light,可以在ZCL配置中调整。
  • Thread设备角色:默认配置为“Sleepy End Device”或“End Device”,具体取决于示例。对于常供电的灯,建议使用“End Device”并保持接收窗口常开,以确保响应及时。
  • 配对码与鉴别器:Matter使用11位配对码(Passcode)和12位鉴别器(Discriminator)进行设备身份识别。这些值在工程中通常由CHIPProjectConfig.h或MatterConfig定义,示例工程会生成默认值,但量产时需要唯一化。

编译成功后,会在工程的Binaries目录下生成.s37或.hex格式的固件文件。这个文件就是后续烧录到EFR32MG24中的完整镜像。

三、烧录固件到EFR32MG24

烧录可以通过SSv5自带的“Flash Programmer”工具完成,也可以使用命令行工具commander。在SSv5中,右键工程选择“Flash to Device”即可自动完成擦除、烧录和校验。烧录过程中,开发板上的LED会闪烁,表示正在写入Flash。

烧录完成后,按下开发板的复位按钮,设备会重新启动。此时,如果使用串口终端(如115200波特率)连接开发板的虚拟串口,可以看到Matter协议栈的启动日志,包括设备初始化、Thread协议栈启动、以及等待配网的提示信息。这些日志是判断设备是否正常启动的重要依据。

如果烧录后设备无任何日志输出,首先检查串口波特率是否正确(通常为115200),其次确认开发板是否处于正确的启动模式(如Bootloader模式)。

四、Thread配网与Matter调试

设备启动后,处于“待配网”状态。此时需要使用Matter控制器(如Apple Home、Google Home、Amazon Alexa,或开源的chip-tool)来完成配网。配网的本质是:控制器通过BLE(蓝牙低功耗)与设备建立临时连接,将Thread网络的凭据(Network Key、PAN ID、Channel等)下发给设备,设备随后加入Thread网络,并通过IPv6与控制器通信。

以chip-tool为例,配网命令通常如下:

chip-tool pairing ble-thread 1 hex:0e080000000000010000000300001335060004001fffe00208... 20202021 3840

其中,1是节点ID,hex:...是Thread网络的Operational Dataset(包含网络密钥、PAN ID、通道等),20202021是配对码,3840是鉴别器。配网成功后,chip-tool会输出“Device commissioning completed with success”之类的提示。

配网完成后,可以通过chip-tool发送控制命令,例如:

chip-tool onoff toggle 1 1

这条命令会切换节点1上端点1的On/Off属性,从而控制灯的亮灭。如果开发板上的LED随之变化,说明整个链路——从Matter应用层、Thread网络层到物理设备——已经打通。

Matter over Thread 智能灯开发链路 ① 工程构建 Simplicity Studio 5 Matter Light 示例 GSDK + OpenThread 编译 ② 固件烧录 EFR32MG24 Flash Programmer .s37 / .hex 启动 ③ Thread配网 BLE 临时连接 下发 Thread 凭据 加入 Thread 网络 控制 Matter 控制器 chip-tool Thread 网络拓扑与数据流 Thread 边界路由器 Border Router (如 HomePod / OTBR) IPv6 / 6LoWPAN EFR32MG24 智能灯 Matter Light 应用 Thread End Device Matter 交互 Matter 控制器 chip-tool / App 发送 On/Off 命令 关键参数与判断依据 配对码 (Passcode):示例默认 20202021,量产需唯一化 鉴别器 (Discriminator):示例默认 3840,用于设备发现 Thread 凭据:Network Key + PAN ID + Channel,由控制器下发 结果判断 串口日志 LED 响应 chip-tool 回显

五、常见问题与排查思路

在实际操作中,最常遇到的问题集中在配网阶段。如果chip-tool提示“Failed to establish BLE connection”,通常是因为设备已经被配网过,或者BLE广播已停止。此时需要先执行“Open Commissioning Window”命令,让设备重新进入可配网状态。另一个常见问题是Thread网络凭据不匹配,导致设备无法加入网络。此时应检查控制器下发的Operational Dataset是否与边界路由器所在的Thread网络一致。

如果配网成功但控制无响应,需要确认Matter端点(Endpoint)和集群(Cluster)的映射是否正确。Light示例通常使用端点1,包含On/Off集群和Level Control集群。使用chip-tool时,命令中的端点号必须与固件中的配置一致。

整个流程的核心逻辑可以概括为:工程构建产出固件,固件烧录让设备具备Matter能力,Thread配网让设备接入网络,控制器通过Matter协议实现最终控制。这四个环节环环相扣,任何一环出错都会导致最终无法控制。理解每个环节的输入、输出和判断依据,是快速定位问题的关键。