如何将ESP32-C6连接到Matter网络
## 如何将ESP32-C6连接到Matter网络## 介绍
Matter是一种开放、跨平台的物联网 (IoT) 连接标准和协议,旨在解决智能家居设备之间的互操作性和兼容性问题。它获得了谷歌、苹果、亚马逊、微软等领先科技公司的支持。ESP32-C6 是乐鑫开发的一款芯片,支持WiFi6、蓝牙 5 (LE)、Zigbee 和Thread协议。凭借其低功耗和成本效益,它非常适合在 Matter设备中使用。在本指南中,我们将使用FireBeetle ESP32-C6创建智能灯泡并将其集成到Matter网络中。
通过阅读本指南,您将了解以下内容:
* Matter 的优势和网络框架
* 如何在 Ubuntu 20 上设置 ESP-IDF 和 ESP-Matter 环境
* 如何将代码刷入 ESP32-C6
* 如何添加 ESP32 -C6 到 Matter 网络
* 如何测试和控制 ESP32-C6
## 第1部分:Matter的优势和网络架构
### 外部网关
目前,一些智能设备制造商采用基于云的解决方案,要求所有设备与云服务器进行通信。信息传输路径如下:按下开关——路由器将信息转发到云服务器——云服务器处理并分发信息——路由器将信息转发给灯泡——灯泡亮起。这种方式存在数据传输时间长、对外部网络依赖性强等缺点。如果没有外部网络,所有智能控制都将变得无效。

### 本地网关
为了解决外部网关的问题,智能设备制造商开发了本地网关,允许控制信息无需通过外部网络即可到达相应的设备。这提高了稳定性并增强了隐私和安全性。信息传输路径如下:按下开关——本地网关处理并分发信息——灯泡亮起。然而,由于各大厂商协议的差异,导致智能家居设备碎片化,限制了同一生态系统内设备的兼容性。

### 物质网关
Matter的网络架构与本地网关类似,但解决了设备碎片化的问题。任何支持Matter协议的设备都可以连接,消除了设备制造商之间的区别。

## 第2部分:环境设置
### 使用硬件
* FireBeetle ESP32-C6 *1
* WS2812 LED *1
将 WS2812 LED 连接到 FireBeetle ESP32-C6 的 IO8。

FireBeetle ESP32-C6 硬件资源:(https://wiki.dfrobot.com.cn/_SKU_DFR1075_FireBeetle_2_Board_ESP32_C6)
### 环境配置
* 使用的操作系统为Ubuntu 20(作为负责接收和分发Matter数据的Matter网关)。
* 设置ESP-IDF开发环境,使用版本5.1.1。
**BASH命令行操作**
```Bash
git clone --recursive https://github.com/espressif/esp-idf.git
cd esp-idf
git checkout v5.1.1
git submodule update --init --recursive
./install.sh
cd ..
```
* 设置ESP-Matter开发环境。
**BASH命令行操作**
```Bash
git clone --depth 1 https://github.com/espressif/esp-matter.git
cd esp-matter
git submodule update --init --depth 1
cd ./connectedhomeip/connectedhomeip
./scripts/checkout_submodules.py --platform esp32 linux --shallow
cd ../../
./install.sh
cd ..
```
* 在安装过程中,您将看到以下输出信息。

* 安装成功后,您将看到以下信息。

* 配置IDF环境变量
通过进入IDF目录来完成环境变量配置。
**BASH命令行操作**
```bash
cd esp-idf
source ./export.sh
```
* 配置Matter环境变量
通过转至Matter目录以配置环境变量。
**BASH命令行操作**
```bash
cd esp-matter
source ./export.sh
```
* 启用IDF构建时使用Ccache以提高构建速度
**BASH命令行操作**
```
export IDF_CCACHE_ENABLE=1
```
## 第3部分:刷新示例代码
* 导航至esp-matter 中的light 示例,编译并刷新程序。
**BASH命令行操作**
```
cd esp-matter/example/light/
idf.py set-target esp32c6
idf.py flash
```
* 如果遇到权限问题导致无法访问串口和烧写,请先修改其权限,然后再继续烧写过程。
**BASH命令行操作**
```
sudo chmod 666 /dev/ttyACM0
idf.py flash
```
* 刷写完成后,打开ESP32-C6 的串口,您将看到以下输出信息。

* 使用串口发送Matter 命令来配置ESP32-C6 并连接Wi-Fi(填写Wi-Fi SSID 和密码)。
**BASH命令行操作**
```
matter esp wifi connet your-ssid your-password
```

## 第4 部分:连接到 Matter Network
● 切换回Linux 环境,使用chip-tool 与ESP32-C6 进行配对,确保Linux 环境与ESP32-C6 在同一本地网络。
**BASH命令行操作**
```
chip-tool pairing onnetwork-long 0x12 20202021 3840
#Here, "0x12" is a custom ID for the C6 node.
```
● 在Linux 下运行上述命令后,您将在C6 串口上看到配对成功的调试信息。

## 第 5 部分:展示结果
● 在Linux 上使用chip-tool 来控制ESP32-C6。执行命令后,您将在C6串口上看到相应的调试信息和WS2812 LED的状态变化。
**BASH命令行操作**
```
chip-tool onoff on 0x12 0x1
chip-tool onoff off 0x12 0x1
#These two commands complete the control of the light
```


**参考:**(https://docs.espressif.com/projects/esp-matter/en/latest/esp32/developing.html)
对于不熟悉Linux的人来说,在搭建过程中可能会遇到一些问题。然而,解决问题是学习过程的一部分。建议利用搜索引擎查找任何问题的原因。欢迎在评论部分互动并分享您的问题和想法。 老师,这个能不能通过arduinoIDE来实现?
页:
[1]