樂鑫科技芯片代理商ESP32支持智能家居連接標準Matter,Matter(前稱 CHIP 項目)是一個新的智能家居連接標準,由連接標準聯盟(Connectivity Standards Alliance,前稱 Zigbee Alliance)發起并領導,多家物聯網龍頭公司聯合開發,致力于構建安全、可靠且能夠無縫使用的物聯網設備。
樂鑫科技在其發起之初就加入了 Matter 計劃,并專注于在樂鑫 SoC 上輕松地開發和使用 Matter。本文將討論如何在樂鑫科技芯片代理商ESP32 上構建并運行您的一個 Matter 應用程序。在接下來的文章中,我們將討論更多 Matter 的技術細節,并探索如何在樂鑫平臺上快速構建經 Matter 認證的設備。
Matter 定義了將部署在設備和控制器上的應用層,以及支持基于 IPv6 的網絡協議,從而實現設備間的互操作性。Matter 將支持基于 Wi-Fi 和 Thread 的核心通信,并支持通過低功耗藍牙(Bluetooth LE)來簡化設備配網和設置。
在 ESP32 上開發 Matter 應用
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 提供了以下幾個控制器的參考實現:
基于 Python 的設備控制器
CHIPTool
Android CHIPTool
Darwin CHIPTool
快速入門
以下是在 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
?執行控制器并通過 BLE 建立安全會話。BLE 是應用程序中的默認模式,可通過 menuconfig 進行配置。
$ 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。
?使用 AddWiFiNetwork 命令添加您希望 ESP32 連接的 Wi-Fi 網絡的憑據,然后用 EnableWiFiNetwork 命令使 ESP32 連接到該網絡。在此示例中,我們分別用 TESTSSID 和 TESTPASSWD 作為 SSID 和密碼。
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
?由于之后不再需要 BLE 連接,因此可以斷開與樂鑫科技芯片代理商ESP32 的 BLE 連接。
chip-device-ctrl > close-ble
?在設備控制器中解析 DNS-SD 名稱并更新節點地址。
chip-device-ctrl > resolve 0 135246
?使用 OnOff cluster 命令來控制 OnOff 屬性。該命令可幫助您將設備實現的參數切換為 On 或 Off。
chip-device-ctrl > zcl OnOff Off 135246 1 0
注意:上述所有命令都可使用 help 命令查詢參數的相關信息。
上述命令可幫助您在 ESP32 上嘗試與 Matter 有關的常用功能。
樂鑫 ESP32-C3 也將提供對 Matter 的支持,敬請期待。也請您持續關注 Matter 和 ESP32 的更多信息。Happy hacking!