2024-3-20 17:24:22 [显示全部楼层]
1161浏览
查看: 1161|回复: 0

[ESP8266/ESP32] ESP32-C6制作Matter协议智能灯泡:从环境搭建到接入网络全流...

[复制链接]
使用ESP32-C6制作Matter协议智能灯泡:从环境搭建到接入网络的全流程指南
导言
Matter是一种开放的、跨平台的物联网(IoT)连接标准和协议,旨在解决智能家居设备之间的互通性和互操作性问题。Matter得到了众多领先的科技公司的支持,如Google、Apple、Amazon、微软等。

ESP32-C6是乐鑫科技推出的一款支持wifi6、Bluetooth5(LE)、zigbee、thread协议的芯片,具有极低的功耗和高性价比,非常适合用于matter设备中,本文将使用FireBeetle ESP32-C6制作一个智能灯泡,并接入matter网络中。

通过本文你将学到以下知识
  • Matter的优势及网络框架
  • 如何在Ubuntu20搭建ESP-IDF、ESP-Matter环境
  • 如何给ESP32-C6烧录代码
  • 如何将ESP32-C6添加到Matter网络
  • 如何测试控制ESP32-C6

第一部分:Matter的优势及网络架构
外网网关
目前一些智能设备厂商采用云端智能化解决方案,所有设备均需要与云端服务器通讯。信息传递路径如下:按下开关 - 路由器转发信息到云端服务器 - 云端服务器处理分发 - 路由器将信息转发给灯 - 灯泡点亮。这种方式存在一些问题,如数据传输时间长、对外网依赖度高,若无外网,所有智能化控制将失效。

ESP32-C6制作Matter协议智能灯泡:从环境搭建到接入网络全流...图1


本地网关为了解决外网网关的问题,智能设备厂商开发出了本地网关,控制信息可以不经过外网就可以达到对应设备,提高了稳定性和安全隐私性。信息传递路径如下:按下开关 -  本地网关处理分发 - 灯泡点亮。但是由于各大厂商协议并不相同,导致只能购买同一家生态链的智能家居,造成了智能设备的碎片化。

ESP32-C6制作Matter协议智能灯泡:从环境搭建到接入网络全流...图2


Matter网关
Matter的网络架构同本地网关类似,但是Matter解决了设备碎片化的问题,只要支持Matter协议的设备都可以接入,不再区分设备厂商。

ESP32-C6制作Matter协议智能灯泡:从环境搭建到接入网络全流...图3



第二部分:环境搭建
使用硬件

将WS2812连接到FireBeetle ESP32-C6的IO8

ESP32-C6制作Matter协议智能灯泡:从环境搭建到接入网络全流...图4


FireBeetle ESP32-C6 硬件资源

境搭
  • 系统使用的是Ubuntu20(作为Matter网关,负责接收和下发Matter数据)
  • 国内用户需让Ubuntu上能够科学上网

  1. export https_proxy=http://192.168.1.120:10809
  2. export http_proxy=http://192.168.1.120:10809
复制代码

  • esp-idf开发环境搭建,使用v5.1.1版本

  1. git clone --recursive https://github.com/espressif/esp-idf.git
  2. cd esp-idf
  3. git checkout v5.1.1
  4. git submodule update --init --recursive
  5. ./install.sh
  6. cd ..
复制代码

  • esp-matter开发环境搭建

  1. git clone --depth 1 https://github.com/espressif/esp-matter.git
  2. cd esp-matter
  3. git submodule update --init --depth 1
  4. cd ./connectedhomeip/connectedhomeip
  5. ./scripts/checkout_submodules.py --platform esp32 linux --shallow
  6. cd ../..
  7. ./install.sh
  8. cd ..
复制代码

  • 安装esp-matter过程可看到如下打印信息

ESP32-C6制作Matter协议智能灯泡:从环境搭建到接入网络全流...图5


  • 安装成功后可看到如下信息

ESP32-C6制作Matter协议智能灯泡:从环境搭建到接入网络全流...图6


  • 进入idf目录配置idf的环境变量

  1. cd esp-idf
  2. source ./export.sh
复制代码

  • 进入matter的目录配置matter的环境变量

  1. cd esp-matter
  2. source ./export.sh
复制代码

  • 使能IDF构建启动Ccache,以增加构建速度

  1. export IDF_CCACHE_ENABLE=1
复制代码

第三部分:烧录样例代码
  • 进入esp-matter的light示例,编译并烧录程序

  1. cd esp-matter/example/light/
  2. idf.py set-target esp32c6
  3. idf.py flash
复制代码

  • 如果遇到权限问题,不能访问串口导致无法烧录,可先更改它的权限,然后继续烧录即可

  1. sudo chmod 666 /dev/ttyACM0
  2. idf.py flash
复制代码

  • 烧录完成后,打开ESP32-C6串口,可看到如下打印

ESP32-C6制作Matter协议智能灯泡:从环境搭建到接入网络全流...图7


  • 通过串口发送matter命令配置ESP32-C6,让其连接上Wi-Fi(需要填入Wi-Fi的ssid和password)。

  1. matter esp wifi connet your-ssid your-password
复制代码
ESP32-C6制作Matter协议智能灯泡:从环境搭建到接入网络全流...图8


第四部分:接入Matter网络
  • 切回linux环境下,使用chip-tool进行配对ESP32-C6,并且保证linux环境和ESP32-C6在同一个局域网内。

  1. chip-tool pairing onnetwork-long 0x12 20202021 3840
  2. #这里的0x12是自定义的C6这个节点的ID
复制代码

  • 在linux下运行上面的命令后,可在C6的串口中看到配对成功的调试信息。

ESP32-C6制作Matter协议智能灯泡:从环境搭建到接入网络全流...图9


第五部分:效果展示
  • 然后在linux上使用chip-tool去控制ESP32-C6,完成命令后可在C6的串口看到对应的调试信息和WS2812的状态变化。

  1. chip-tool onoff on 0x12 0x1
  2. chip-tool onoff off 0x12 0x1
  3. #这两条命令即完成了灯亮灭的控制
复制代码

ESP32-C6制作Matter协议智能灯泡:从环境搭建到接入网络全流...图10

ESP32-C6制作Matter协议智能灯泡:从环境搭建到接入网络全流...图11



对于linux不熟悉的朋友可能会在制作过程中遇到一些问题,解决问题也是一种成长,建议多多利用搜索引擎查找问题原因,有什么问题和想法欢迎在帖子下面互动。

下一章《esp32-matter示例代码讲解》


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail