本文翻译自:https://medium.com/the-esp-journal/announcing-matter-previously-chip-on-esp32-84164316c0e3
Matter(前称 CHIP 项目)是一个新的智能家居连接标准,由连接标准联盟(Connectivity Standards Alliance,前称 Zigbee Alliance)发起并领导,多家物联网龙头公司联合开发,致力于构建安全、可靠且能够无缝使用的物联网设备。
乐鑫科技在其发起之初就加入了 Matter 计划,并专注于在乐鑫 SoC 上轻松地开发和使用 Matter。本文将讨论如何在 ESP32 上构建并运行您的第一个 Matter 应用程序。在接下来的文章中,我们将讨论更多 Matter 的技术细节,并探索如何在乐鑫平台上快速构建经 Matter 认证的设备。
如上图所示,Matter 定义了将部署在设备和控制器上的应用层,以及支持基于 IPv6 的网络协议,从而实现设备间的互操作性。Matter 最初将支持基于 Wi-Fi 和 Thread 的核心通信,并支持通过低功耗蓝牙(Bluetooth LE)来简化设备配网和设置。
Matter SDK
Matter SDK 是一个用于实现 Matter 规范的开源代码库,目前仍在积极开发中。自其发布以来,ESP32 就实现了对它的支持。ESP32 是支持 Matter SDK 的平台中,唯一同时具有 Wi-Fi 和 Bluetooth LE 连接功能的平台。它支持通过 Bluetooth LE 和 Wi-Fi SoftAP 进行配网(初始设备配置),并支持通过 Wi-Fi 进行业务通信。
示例
您可以尝试以下示例:
1. ESP32 all-clusters-app:您可以使用基于 ESP32 的开发板(包括 ESP-WROVER-KIT 、ESP32-DevKit-C、M5Stack Core1),在此示例上尝试 Matter 的所有功能。您也可以通过 Matter 控制器来进行设备配网,并控制设备。all-clusters-app 是众多 Matter 开发者用于开发和测试的默认应用程序。
2. 占用空间优化的应用程序:上述 ESP32 all-clusters-app 就像一个厨房水槽应用程序,包含了 Matter 的所有 clusters。如果您想要了解有关 Matter 占用空间的利用情况,可以尝试使用 ESP32 temperature-measurement-app。该 APP 经过特殊优化,便于用户分析占用空间的影响。
上述示例都可以用 Matter 控制器进行测试。Matter SDK 提供了以下几个控制器的参考实现:
快速入门
以下是在 ESP32 上完成上述示例的具体步骤。这里使用的是 Espressif IoT Development Framework (ESP-IDF) release/v4.2 分支。
1. 如果用户尚未设置 ESP-IDF,请遵循这里的步骤。
2. 然后请根据各应用程序目录中的 README 文件(all-clusters app README 以及 temperature-measurement-app README),了解如何在 ESP32 上构建和加载示例。
3. 当 ESP32 启动并运行后,设置控制器。下面将使用 all-clusters-app 和基于 Python 的控制器作为示范,请遵循下列步骤:
构建 Python 控制器
$ cd /path/to/connectedhomeip
$ ./scripts/build_python.sh -m platform
$ source ./out/python_env/bin/activate
$ chip-device-ctrl
chip-device-ctrl > ble-scan
chip-device-ctrl > connect -ble 3840 20202021 135246
参数:
1. Discriminator:3840(可通过 menuconfig 配置)
2. Setup-pin-code:20202021(可通过 menuconfig 配置)
3. Node ID:可选。如果不在此命令中传递,控制器会自动生成并显示在 connect 的输出中。在接下来的命令中应该使用相同的值。在此示例中,我们选择了一个随机的节点 ID,即 135246。
chip-device-ctrl > zcl NetworkCommissioning AddWiFiNetwork 135246 0 0 ssid=str:TESTSSID credentials=str:TESTPASSWD breadcrumb=0 timeoutMs=1000
chip-device-ctrl > zcl NetworkCommissioning EnableNetwork 135246 0 0 networkID=str:TESTSSID breadcrumb=0 timeoutMs=1000
chip-device-ctrl > close-ble
chip-device-ctrl > resolve 0 135246
chip-device-ctrl > zcl OnOff Off 135246 1 0
注意:上述所有命令都可使用 help 命令查询参数的相关信息。
上述命令可帮助您在 ESP32 上尝试与 Matter 有关的常用功能。
乐鑫 ESP32-C3 也将提供对 Matter 的支持,敬请期待。也请您持续关注 Matter 和 ESP32 的更多信息。Happy hacking!