esp-matter环境下的应用实践
前提准备
请确保你本地已经配置好 esp-idf
及esp-matter
环境,可参考此博客【Matter】esp-matter开发环境搭建
设置环境变量
1.ESP-IDF
根据官网提示,我们需要设置linux平台下的标准工具链,安装以下软件包:
1
| sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
|
使用 ESP-IDF 需要 CMake 3.5 或以上版本。较早的 Linux 发行版可能需要升级自身的软件源仓库,或开启 backports 套件库,或安装 “cmake3” 软件包(不是安装 “cmake”)。
1
2
| cd ./esp/esp-idf
source export.sh
|

2.ESP-Matter
由于我们使用的是Linux环境,所以此处仅作Linux下的说明,macOS可详见此处
在基于 Debian 的 Linux 发行版(例如 Ubuntu)上,可以使用以下命令满足这些依赖项:
1
2
3
| 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
|
准备编译matter所需环境。注:如切换了其他分支需要重新运行
1
2
| cd ./esp/esp-matter/connectedhomeip/connectedhomeip
source scripts/bootstrap.sh
|

激活编译matter环境
1
2
| cd ./esp/esp-matter/connectedhomeip/connectedhomeip
source scripts/activate.sh
|

Matter Example编译下载
1.激活esp-matter环境
1
2
| cd esp-idf
. ./export.sh
|
1
2
| cd esp-matter
. ./export.sh
|
2.选择esp设备
1
2
3
| cd esp-matter/examples/light
idf.py set-target esp32c3
|
初次执行这个命令发生了如下报错:
1
2
3
4
5
| ...
AttributeError: 'HTTPResponse' object has no attribute 'strict'
...
|
在GitHub上参考此issue,并执行以下命令:
1
| pip install -U "urllib3<2"
|
同时重新执行esp-matter安装脚本:
由于需要重新运行安装脚本命令,此处直接执行的话会报错,参考此issue
1
2
3
4
5
| rm -rf esp-matter/connectedhomeip/connectedhomeip/.environment
cd esp-matter
./install.sh
|
1
| pip install -U "urllib3<2"
|
然后回到示例工程下继续执行esp设备选择
1
2
3
| cd esp-matter/examples/light
idf.py set-target esp32c3
|
此时发生了新的错误:

由于示例工程下的build以前遗留的构建文件,而系统在执行程序时并不会覆盖或主动删除旧的构建文件,因此需要用户手动删除,因此正确的操作就是:
1
2
| sudo rm -r esp-matter/examples/light/build
idf.py set-target esp32c3
|
最后成功解决问题:

3.编译工程

4.SDK烧写
第一次烧写 SDK 时,需要擦除整个 flash 再执行烧录命令

烧录程序并打开串口监视
可以看到烧录进度:

包括串口监视器的提示信息,同时执行以下命令可退出串口监视:

那么esp-matter项目环境的编译下载就先讲到这里,后面再进行详细的使用教程的讲解。
参考链接:
Matter Over Wifi 例程体验(CHIP Over Wifi)
ESP-Matter 环境测试
matter搭建环境
https://docs.espressif.com/projects/esp-matter/en/main/esp32/developing.html