1. 简介
Matter 是一种连接协议,可为智能设备开发带来令人兴奋的机会。在此 Codelab 中,您将构建自己的首台 Matter 设备。如需了解 Matter,请访问 Google Home 开发者中心:Matter 或 Connectivity Standards Alliance 网站。
学习内容
- 如何将实体设备与 Matter 集成。
- 如何使用 Google Home 调试和控制 Matter 设备。
所需条件
- 中枢,即任何支持 Matter 的 Google Nest 设备,例如 Nest Hub(第 2 代)。
- Espressif Systems ESP32-DevkitC 或 ESP32 M5STACK Matter 评估板。
- 运行 Linux 的 PC。
- Linux 基础知识。
2. 设置您的环境
识别串行设备
设置开发环境的第一步是确定设备连接到的串行端口。借助此信息,您可以对开发者板进行编程并与之互动。
- 使用 USB 线将开发板连接到计算机。
- 在
/dev文件系统中查找开发者板设备。您可以通过指定开发者板的设备前缀来缩小搜索范围。Espressif 的 ESP32 使用/dev/ttyUSBx:user@host $ ls /dev/ttyUSB* /dev/ttyUSB0
设置 hub
使用您打算在此 Codelab 中使用的同一 Google 账号设置中枢。
设置您的开发环境
前提条件
这些说明已在 Debian Linux 上经过测试,应适用于大多数基于 Debian 的 Linux 发行版,包括 Ubuntu。如果您使用的是其他 Linux 发行版,依赖项设置过程可能与下文所述有所不同。
安装依赖项
运行以下命令以安装可能尚未安装的必需 Linux 软件包二进制文件:
$ sudo apt-get install git gcc g++ pkg-config libssl-dev libdbus-1-dev \ libglib2.0-dev libavahi-client-dev ninja-build python3-venv python3-dev \ python3-pip unzip libgirepository1.0-dev libcairo2-dev libreadline-dev screen
设置 SDK
如需继续学习本 Codelab,您需要 Espressif SDK(Espressif IoT 开发框架或“ESP-IDF”)。
- 创建一个用于存放 ESP-IDF 的目录:
$ mkdir ~/esp-idf_tools
- 将 ESP-IDF 从 GitHub 克隆到此目录:
$ cd ~/esp-idf_tools $ git clone -b v4.4.3 --recursive https://github.com/espressif/esp-idf.git
- 完成工具链安装:
$ cd ./esp-idf $ ./install.sh $ cd ~/
设置 Matter SDK
- 克隆开源 Matter 代码库:
$ git clone https://github.com/project-chip/connectedhomeip.git $ cd ./connectedhomeip $ git fetch origin v1.0-branch $ git checkout FETCH_HEAD
- 提取代码库子模块:
$ ./scripts/checkout_submodules.py --shallow --platform esp32
- 引导 Matter 开发环境:
$ source ./scripts/bootstrap.sh
3. Google Home 开发者控制台
Google Home Developer Console 是一款 Web 应用,您可以在其中管理与 Google Home 的 Matter 集成。
任何通过连接标准联盟 (Alliance) Matter 认证的 Matter 设备都可以在 Google Home 生态系统中运行。在某些条件下,尚未获得认证的开发中设备可以在 Google Home 生态系统中完成调试 - 如需了解详情,请参阅配对限制。
创建开发者项目
首先,前往 Google Home 开发者控制台:
- 点击 Create project。
- 输入唯一的项目名称,然后点击创建项目。

- 点击 + 添加集成,系统会将您带到 Matter 资源界面,您可以在其中查看 Matter 开发者文档并了解一些工具。
- 准备好继续操作后,点击下一步:开发,系统随即会显示 Matter 清单页面。
- 点击下一步:设置
- 在设置页面上,输入您的产品名称。
- 点击选择设备类型,然后从下拉菜单中选择设备类型(在本例中为
Light)。 - 在“供应商 ID (VID)”中,选择测试 VID,然后从“测试 VID”下拉菜单中选择 0xFFF1。在“产品 ID (PID)”中,输入 0x8000,然后点击 Save & continue,接着在下一页中点击 Save。请使用这些确切的 VID/PID 值,后续 Codelab 步骤将依赖于这些值。

- 现在,您会在 Matter 集成下看到您的集成。
- 重新启动中枢,确保其接收最新的 Matter 集成项目配置。如果您之后必须更改 VID 或 PID,则还需要在保存项目后重启,才能使更改生效。如需查看有关如何重启的分步说明,请参阅重启 Google Nest 或 Google Wifi 设备。
4. 构建设备
Matter 中的所有示例都位于 GitHub 代码库的 examples 文件夹中。有多个示例可供选择,但在此 Codelab 中,我们将重点介绍 lighting-app。
此示例是一个简单的设备,在 Google Home 中显示为“开/关灯”,可响应“开”和“关”命令。让它控制实际的电灯超出了本 Codelab 的范围。
配置构建
- 配置 Matter SDK 并激活 Matter 构建环境:
$ cd ~/esp-idf_tools/esp-idf $ source export.sh $ cd ~/connectedhomeip $ source ./scripts/activate.sh
- 启用 Ccache,以加快构建流程:
$ export IDF_CCACHE_ENABLE=1
- 移动到
lighting-appESP32 build 目录并设置目标架构:$ cd ./examples/lighting-app/esp32 $ idf.py set-target esp32
- 运行配置实用程序:
$ idf.py menuconfig
- 选择
Demo -> Device Type,并将Device Type设置为ESP32-DevKitC。 - 按向左键可返回到顶级菜单。
- 选择
Component config --->。 - 选择
CHIP Device Layer --->。 - 选择
Device Identification Options --->。 - 将
Vendor ID设置为联盟分配的 VID 或测试 VID。 - 将
Product ID设置为在 Google Home 开发者控制台中为 Matter 集成设置的 PID。 - 按 S 即可保存。
- 按 Return 键接受将保存配置的默认路径。
- 按返回按钮可关闭保存确认对话框。
- 按 Q 退出配置实用程序。
- 运行配置实用程序:
运行构建
调用 build 脚本:
idf.py build
构建应顺利完成,不会出现任何错误。
对设备进行编程
- 使用 USB 线将开发板连接到计算机。
- 清除设备上的所有旧版固件(如果您只将一个开发者板连接到计算机,可以省略
-p {device}选项 - 系统应会自动检测到设备):idf.py -p {device} erase-flash - 使用以下命令将新应用复制到开发者板:
idf.py -p {device} flash
如需详细了解刷写选项,请访问 Espressif esptool.py 文档页面。
5. 连接到设备
- 打开一个终端窗口。
- 记下您所在的目录,然后使用 GNU
screen连接到新的 Matter 设备:$ screen -L {device} 115200 - 如果您看到空白控制台,请按 RESET 按钮开始设备启动流程。
6. 调试设备
注意:只有当您已在 Google Home 开发者控制台中设置项目时,此步骤才会成功。
Nest Hub
您需要使用中枢在 Matter 网络上调试设备。这是支持 Matter 的 Google Nest 设备,例如 Nest Hub(第 2 代),它既可充当支持 Thread 的设备的边界路由器,也可充当用于路由智能家居 intent 的本地执行方式路径。
请参阅此列表,了解哪些中枢支持 Matter。
在开始调试流程之前,请检查以确保:
- 中枢已与您在 Google Home 控制台中登录时所用的 Google 账号配对。
- 中枢与您用于运行虚拟 Matter 设备的计算机连接到同一 Wi-Fi 网络。
- 中枢位于您在 Google Home 应用中使用的同一结构中。(Google Home Graph 中的“住宅”代表您的结构)。
配对设备
按照 ESP32 配对说明配对设备。
注意:如果您使用的是 M5STACK,请注意,刷写后其屏幕将保持空白,因此您必须使用控制台中显示的网址查看二维码。或者,您也可以改为输入手动配对码。
显示二维码网址的控制台输出示例:
I (1926) chip[DL]: Done driving station state, nothing else to do...
I (1936) chip[SVR]: SetupQRCode: [MT:X.XXXXXXXXXXXXXXXXX]
I (1936) chip[SVR]: Copy/paste the below URL in a browser to see the QR Code:
I (1946) chip[SVR]: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3XX.KXXXXXXXXXXXXXXXX
I (1956) chip[SVR]: Manual pairing code: [XXXXXXXXXXX]]
问题排查
调试失败
- 确保您已在 Google Home 控制台中创建了具有正确 VID/PID 组合的项目。
- 确保您在 build 配置中输入了正确的 VID 和 PID。
- 确保您在 build 配置中选择了正确的
Device Type。
如需了解更多问题排查提示,请参阅 Matter 问题排查页面。
7. 控制设备
当符合 Matter 标准的设备成功完成调试并以灯泡的形式显示在 Google Home 应用中后,您可以使用 Google 助理、Google Home 应用或 Google Home Extension for VS Code 中的 Google 助理模拟器来控制该设备。
Google 助理
在手机或中枢上使用 Google 助理,通过语音指令切换设备状态,例如说“Hey Google,切换灯的状态”。
如需查看更多指令示例,请参阅控制添加到 Google Home 应用中的智能家居设备一文中的通过语音指令控制智能家居设备部分。
Google Home 应用
您可以点按 Google Home 应用中灯泡图标旁边的开启和关闭标签。
如需了解详情,请参阅使用 Google Home 应用控制设备。
Google 助理模拟器
在 Google Home Extension for VS Code 中,您可以使用 Google Assistant Simulator 通过类似聊天的界面向设备发出指令。
8. 恭喜!
您已成功创建并调试了您的第一台 Matter 设备。也很棒!
在此 Codelab 中,您学习了如何执行以下操作:
- 安装 Matter 开发环境,使其从要求状态变为工作状态。
- 构建并运行 Matter 设备。
- 通过 Google Home 调试和控制设备。
如需详细了解 Matter,请参阅以下资源:
- Google Home 提供的 Matter 基础知识,您可以在其中了解 Matter 协议的重要概念和原则。
- 由 Connected Standard Alliance 发布的 Matter 规范、Matter 设备库和 Matter 应用集群库。
- Matter GitHub 代码库。