前提准备
请确保你本地已经配置好 esp-idf
及esp-matter
环境,可参考此博客【Matter】esp-matter开发环境搭建
设置环境变量
1.ESP-IDF
根据官网提示,我们需要设置linux平台下的标准工具链,安装以下软件包:
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”)。
cd ./esp/esp-idf source export.sh
2.ESP-Matter
由于我们使用的是Linux环境,所以此处仅作Linux下的说明,macOS可详见此处
在基于 Debian 的 Linux 发行版(例如 Ubuntu)上,可以使用以下命令满足这些依赖项:
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所需环境。注:如切换了其他分支需要重新运行
cd ./esp/esp-matter/connectedhomeip/connectedhomeip source scripts/bootstrap.sh
激活编译matter环境
cd ./esp/esp-matter/connectedhomeip/connectedhomeip source scripts/activate.sh
Matter Example编译下载
1.激活esp-matter环境
cd esp-idf . ./export.sh
cd esp-matter . ./export.sh
2.选择esp设备
cd esp-matter/examples/light idf.py set-target esp32c3
初次执行这个命令发生了如下报错:
... AttributeError: 'HTTPResponse' object has no attribute 'strict' ...
在GitHub上参考此issue,并执行以下命令:
pip install -U "urllib3<2"
同时重新执行esp-matter安装脚本:
由于需要重新运行安装脚本命令,此处直接执行的话会报错,参考此issue
rm -rf esp-matter/connectedhomeip/connectedhomeip/.environment cd esp-matter ./install.sh
pip install -U "urllib3<2"
然后回到示例工程下继续执行esp设备选择
cd esp-matter/examples/light idf.py set-target esp32c3
此时发生了新的错误:
由于示例工程下的build以前遗留的构建文件,而系统在执行程序时并不会覆盖或主动删除旧的构建文件,因此需要用户手动删除,因此正确的操作就是:
sudo rm -r esp-matter/examples/light/build idf.py set-target esp32c3
最后成功解决问题:
3.编译工程
idf.py build
4.SDK烧写
第一次烧写 SDK 时,需要擦除整个 flash 再执行烧录命令
idf.py erase_flash
烧录程序并打开串口监视
idf.py flash monitor
可以看到烧录进度:
包括串口监视器的提示信息,同时执行以下命令可退出串口监视:
CTRL + ]
那么esp-matter项目环境的编译下载就先讲到这里,后面再进行详细的使用教程的讲解。