Matter 作為一個(gè)統(tǒng)一的智能家居互聯(lián)協(xié)議,憑借其高兼容性的特點(diǎn),正逐漸打破各個(gè)智能家居之間的壁壘。樂(lè)鑫作為在 Matter 項(xiàng)目發(fā)布之初的早期成員,提供了一套開源、完整、易用的 Matter-SDK。
樂(lè)鑫的 Matter-SDK 是建立在開源 Matter-SDK 之上的,它提供了簡(jiǎn)化的 API、常用的外設(shè)、安全、制造和生產(chǎn)工具以及詳盡的文檔支持。該 SDK 包括豐富的生產(chǎn)參考資料,旨在簡(jiǎn)化 Matter 產(chǎn)品的開發(fā)過(guò)程,使用戶能夠在最短的時(shí)間內(nèi)投入生產(chǎn)。
您可以通過(guò)點(diǎn)擊以下鏈接,進(jìn)一步了解 Matter:
- ESP-Matter 編程指南
- ESP-Matter 示例代碼
- Connectedhomeip Github 項(xiàng)目
- 樂(lè)鑫 Matter 系列文章
您可以觀看下面的教程視頻,也可以閱讀本篇的圖文教程。本文將詳細(xì)介紹在 Linux 環(huán)境下,如何使用 Matter-SDK 完成 Matter 環(huán)境搭建。
【樂(lè)鑫教程】|使用 Matter-SDK 快速搭建 Matter 環(huán)境 (Linux)
搭建步驟:
1. 系統(tǒng)及設(shè)備環(huán)境
- 操作系統(tǒng):Ubuntu 22.04.3 LTS
- 主機(jī)配置:具有藍(lán)牙適配器
- 網(wǎng)絡(luò):能流暢訪問(wèn) Github 的網(wǎng)絡(luò)環(huán)境
- 測(cè)試芯片:ESP32-C3-MINI-1
- 測(cè)試開發(fā)板:ESP32-C3-DevKitM-1 v1.0

注:Ubuntu 版本應(yīng)為 20.04 和 22.04,并且為主機(jī)開發(fā)。若使用虛擬機(jī),在用 CHIP Tool 工具進(jìn)行配網(wǎng)調(diào)試時(shí)會(huì)出現(xiàn)查找藍(lán)牙設(shè)備失敗或者無(wú)法進(jìn)行調(diào)試的情況。
2. 安裝準(zhǔn)備
2.1 Matter 安裝準(zhǔn)備
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
安裝過(guò)程具體請(qǐng)參考官方 Github 項(xiàng)目。
注:Windows 系統(tǒng)推薦使用 WSL 進(jìn)行開發(fā),詳見官方 WSL 配置方法。
2.2 搭建 ESP-IDF 開發(fā)環(huán)境
Matter 的開發(fā)環(huán)境依賴于 ESP-IDF 開發(fā)環(huán)境,如果當(dāng)前沒(méi)有搭建 ESP-IDF 環(huán)境,請(qǐng)參考官方文檔進(jìn)行搭建,或者使用下面的指令進(jìn)行快速搭建。
(1)安裝 ESP-IDF 需要以下安裝準(zhǔn)備:
sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
(2)獲取倉(cāng)庫(kù),進(jìn)行安裝:
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 ..
3. 獲取并安裝 Matter
使用以下指令獲取倉(cāng)庫(kù),進(jìn)行安裝:
cd esp-idf
source ./export.sh
cd ..
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 ..
4. 配置環(huán)境
當(dāng)每一個(gè)新終端開啟時(shí),使用以下命令來(lái)配置 Matter 的開發(fā)環(huán)境:
cd esp-idf; source ./export.sh; cd ..
cd esp-matter; source ./export.sh; cd ..
您可以選擇開啟 Ccache 以提升編譯速度:
export IDF_CCACHE_ENABLE=1
5. 編譯 ESP-Matter 示例
進(jìn)入 ESP-Matter Light 示例目錄:
cd esp-matter/examples/light
開始編譯示例,首先設(shè)置編譯目標(biāo)芯片平臺(tái)(以 ESP32-C3 為例):
idf.py set-target esp32c3
在正式進(jìn)行燒錄之前,推薦先擦除整片 Flash,燒錄并監(jiān)控:
idf.py erase_flash
idf.py flash monitor
至此,如果編譯沒(méi)有報(bào)錯(cuò),程序成功燒錄進(jìn) ESP32-C3,并在終端界面顯示正常的狀態(tài),則代表 Matter 環(huán)境已被成功搭建。
6. 對(duì) Matter 設(shè)備進(jìn)行配網(wǎng)與基本控制
首先,使用在交互模式下的 CHIP Tool 進(jìn)行配網(wǎng)。先為配網(wǎng)開啟一個(gè)新的終端,配置 Matter 的開發(fā)環(huán)境,并運(yùn)行:
cd esp-idf; source ./export.sh; cd ..
cd esp-matter; source ./export.sh; cd ..
export IDF_CCACHE_ENABLE=1
chip-tool interactive start
對(duì)設(shè)備進(jìn)行配網(wǎng)具有多種途徑,這里我們使用 BLE Wi-Fi 的方式進(jìn)行配網(wǎng),復(fù)制如下指令:
pairing ble-wifi 0x7283 <ssid> <passphrase> 20202021 3840
在上述指令中,0x7283 是隨機(jī)選取的節(jié)點(diǎn) ID,20202021 是配對(duì)碼,3840 是鑒別碼,粘貼命令到終端,確保電腦與所填 Wi-Fi 在同一網(wǎng)絡(luò)環(huán)境內(nèi),在 SSID 填入 Wi-Fi 名稱,passphrase 填入密碼。填寫完成后的示例如下:
pairing ble-wifi 0x7283 Espressif password 20202021 3840
開始運(yùn)行,等待一段時(shí)間,當(dāng)監(jiān)控設(shè)備的終端中出現(xiàn)以下日志時(shí),即代表配網(wǎng)成功:
I (347065) app_main: Commissioning complete
I (347065) esp_matter_core: Commissioning Complete
在配網(wǎng)完成后,我們嘗試使用一個(gè)命令來(lái)對(duì) ESP32-C3 開發(fā)板上的 RGB 燈進(jìn)行控制,復(fù)制以下開關(guān)翻轉(zhuǎn)的命令到 CHIP Tool 終端中運(yùn)行:
onoff toggle 0x7283 0x1
在監(jiān)控設(shè)備的終端中我們可以看到 Received command 相關(guān)日志:
I (122717) esp_matter_command: Received command 0x00000002 for endpoint 0x0001's cluster 0x00000006
I (122717) esp_matter_attribute: ********** R : Endpoint 0x0001's Cluster 0x00000006's Attribute 0x00000000 is 1 **********
I (122727) chip[ZCL]: Toggle ep1 on/off from state 1 to 0
即代表收到了指令的請(qǐng)求,同時(shí),我們也可以看到開發(fā)板上的 RGB 燈關(guān)閉了,再次運(yùn)行,RGB 燈被點(diǎn)亮。
7. 常見問(wèn)題及其解決方法
(1)idf.py erase_flash 時(shí)出現(xiàn):
/dev/ttyUSB0 failed to connect: Could not open /dev/ttyUSB0, the port doesn't exist
Serial port /dev/ttyS0
/dev/ttyS0 failed to connect: Could not open /dev/ttyS0, the port doesn't exist
No serial ports found. Connect a device, or use '-p PORT' option to set a specific port.
解決方法:需要確保該用戶對(duì) USB 口擁有正確的讀寫權(quán)限。
sudo adduser <username> dialout sudo chmod a+rw /dev/ttyACM0
(2)git clone 時(shí)出錯(cuò)或速度過(guò)慢:
dial tcp 108.160.167.174:443: connect: connection refused
解決方法:需要確保用戶擁有一個(gè)能流暢訪問(wèn) Github 的網(wǎng)絡(luò)。
(3)編譯 Light 示例時(shí)報(bào)錯(cuò),顯示:
ERROR: This script was called from a virtual environment, can not create a virtual environment again
解決方法:使用如下指令進(jìn)行編譯。
pip install -r $IDF_PATH/requirements.txt
(4)在配網(wǎng)過(guò)程中并未出現(xiàn)如下提示:
I (347065) app_main: Commissioning complete
I (347065) esp_matter_core: Commissioning Complete
解決方法:嘗試重復(fù)進(jìn)行配網(wǎng)操作。
(5)運(yùn)行 idf.py 相關(guān)指令時(shí)顯示:
idf.py: command not found
原因:開啟新終端時(shí)未配置 Matter 環(huán)境。
解決方法:使用如下指令配置 Matter 環(huán)境。
cd esp-idf; source ./export.sh; cd ..
cd esp-matter; source ./export.sh; cd ..
(6)Matter 安裝過(guò)程中出現(xiàn):
/home/User/esp/esp-matter/connectedhomeip/connectedhomeip/.environment/activate.sh:190: command not found: pw Error during bootstrap--see messages above.
解決方法:
git clean -Xdf
rm -rf connectedhomeip/connectedhomeop/.environmemt
source ./scripts/bootstrap.sh
(7)Matter 安裝過(guò)程中出現(xiàn):
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/home/share/samba/app/esp-matter/connectedhomeip/connectedhomeip/.environment/pigweed-venv/bin/python', '-m', 'pip', 'install', '--log', '/home/share/samba/app/esp-matter/connectedhomeip/connectedhomeip/.environment/pigweed-venv/pip-requirements.log', '--requirement=/home/share/samba/app/esp-matter/connectedhomeip/connectedhomeip/scripts/setup/requirements.txt', '--constraint=/home/share/samba/app/esp-matter/connectedhomeip/connectedhomeip/scripts/setup/constraints.txt']' returned non-zero exit status 1.
原因:python 3.10 版本中 pip 安裝器的 bug 對(duì) Matter 在 python 環(huán)境設(shè)置過(guò)程中的 pip 安裝步驟產(chǎn)生了影響。
解決辦法:將 python 3.10 切換至更低的版本,例如 3.8,再對(duì) ESP-IDF 和 ESP-Matter 進(jìn)行安裝。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-717752.html
以上就是通過(guò) Matter-SDK 完成 ESP-Matter 的環(huán)境搭建及測(cè)試的全過(guò)程。如果您有任何問(wèn)題,可以進(jìn)入樂(lè)鑫官網(wǎng)查看相關(guān)技術(shù)文檔獲取幫助,歡迎在評(píng)論區(qū)留言討論,或隨時(shí)聯(lián)系我們。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-717752.html
到了這里,關(guān)于使用 Matter-SDK 快速搭建 Matter 環(huán)境 (Linux)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!