Petunjuk berikut menggunakan aplikasi lampu contoh dari Matter SDK bersama dengan M5Stack ESP32 papan pengembangan aplikasi.
Penyiapan lingkungan build
Pertama, clone Matter SDK.
Dalam contoh ini, kami melihat commit minimum yang didukung untuk konfigurasi Matter Rilis 5:
$ mkdir otaprep
$ cd otaprep
git clone https://github.com/project-chip/connectedhomeip.git
cd connectedhomeip
git fetch origin v1.0-branch
git checkout FETCH_HEAD
git submodule update --init --recursive
source ./scripts/activate.sh
Selanjutnya, kami memeriksa versi yang digunakan dalam Alur Kerja GitHub ESP32 untuk menentukan image Docker mana yang paling sesuai dengan build kita:
$ cat .github/workflows/examples-esp32.yaml | grep chip-build | head -n 1
image: connectedhomeip/chip-build-esp32:0.5.99
Kami menjalankan container dari image Docker, dengan meneruskan flag untuk memasang Matter SDK dalam penampung dan untuk memberikan akses ke perangkat ESP32.
$ docker run --name container_name -it --user $(id -u):$(id -g) --mount source=$(pwd),target=/workspace,type=bind --device=/dev/ttyUSB0 connectedhomeip/chip-build-esp32:0.5.99 /bin/bash
Menghentikan dan memulai container Docker Matter
Setiap kali menjalankan perintah docker run
, Anda akan membuat container baru dengan
gambar yang ditentukan. Saat Anda melakukannya, data lama, yang disimpan di
instance container sebelumnya, akan hilang. Terkadang inilah yang ingin Anda
terjadi, karena memungkinkan Anda
memulai dengan instalasi baru. Namun, dalam hal ini
Misalnya, kemungkinan besar Anda ingin menyimpan konfigurasi kerja dan lingkungan
antar sesi.
user@host> docker stop container_name
Jika Anda sudah siap menjalankan operasi lagi, mulai container dan buka terminal periode:
user@host> docker start container_name
user@host> docker exec -it container_name /bin/bash
Anda dapat membuka sesi terminal tambahan ke penampung dengan:
user@host> docker exec -it container_name /bin/bash
Atau mulai sesi root menggunakan:
user@host> docker exec -u 0 -it container_name /bin/bash
Menginisialisasi SDK
Di penampung, kita melakukan inisialisasi Matter SDK dan ESP IDF:
cd /workspace
git submodule update --init --recursive
source ./scripts/activate.sh
source /opt/espressif/esp-idf/export.sh
Membangun dan mem-flash
Tugas selanjutnya adalah membangun image dan melakukan flash kit pengembangan untuk menerima update firmware OTA Matter.
Untuk melakukannya, Anda harus membuat gambar.
Pertama-tama, konfigurasi build menggunakan utilitas menuconfig
dari ESP IDF.
cd examples/lighting-app/esp32
idf.py menuconfig
Di menu interaktif, konfigurasi setelan berikut:
Component config --->
CHIP Device Layer --->
Device Identification Options --->
Setel
Vendor ID
ke VID yang ditetapkan Connectivity Standards Alliance (Alliance).Tetapkan
Product ID
ke PID yang Anda tetapkan di Matter integrasi di Google Home Developer Console.
Aktifkan flag Pemohon OTA:
Component config -->
CHIP Core -->
System options --->
Aktifkan flag Pemohon OTA
[*] Enable OTA Requestor
Tekan ESC dua kali untuk kembali ke menu tingkat atas.
Aktifkan tanda pembuatan Image OTA Matter:
Component config -->
CHIP Device Layer --->
Matter OTA Image --->
[*] Generate OTA IMAGE
Tentukan nomor versi:
Application manager --->
Pilih
[*] Get the project version from Kconfig
Tetapkan
Project version (NEW)
ke1.0
Tekan s untuk menyimpan konfigurasi, tekan Enter dua kali, lalu q untuk keluar
menuconfig
.
Menyiapkan sertifikat pengujian
Ikuti langkah-langkah di Membuat sertifikat pengujian perangkat Matter untuk membuat Sertifikat CD, DAC, dan PAI.
Membuat perangkat
Sekarang jalankan build dan flash perangkat:
idf.py build
idf.py -p /dev/ttyUSB0 erase_flash
idf.py -p /dev/ttyUSB0 flash
Membuat dan mengupload image OTA
Sekarang ubah setelan build lagi untuk membuat image OTA. Gunakan gambar yang sama, tetapi dengan nomor versi yang bertambah.
Jalankan menuconfig
.
idf.py menuconfig
Di menu interaktif, perbarui hal berikut:
Application manager --->
- Pilih
[*] Get the project version from Kconfig
- Tetapkan
Project version (NEW)
ke2.0
- Tekan s untuk menyimpan konfigurasi, tekan Enter dua kali, lalu tekan
q untuk keluar dari
menuconfig
.
Membuat dan mengambil image. Contoh di bawah ini menunjukkan lokasi
image untuk OTA dan output saat mengurai dengan ota_image_tool.py
.
cd build
/workspace/src/app/ota_image_tool.py show ./chip-lighting-app-ota.bin
Magic: 1beef11e
Total Size: 1243360
Header Size: 64
Header TLV:
[0] Vendor Id: XXXXX (0x000)
[1] Product Id: XXXXX (0x000)
[2] Version: 2 (0x2)
[3] Version String: v2.0
[4] Payload Size: 1243280 (0x12f890)
[8] Digest Type: 1 (0x1)
[9] Digest: e367f4d71e2ccd554b9a399c864abbf2c039382ef1def1b986fb2f59a99923a8
Karena Matter SDK dipasang dari host container Anda, image OTA tersedia di host container Anda.
Upload image OTA ke Developer Console dengan mengikuti Petunjuk upload OTA.
Commission ke Google Home dan mengamati OTA
Pastikan perangkat Anda terhubung ke mesin Linux host dengan USB. Tujuan
contoh berikut menunjukkan penggunaan GNU screen
untuk membaca log perangkat:
screen -L /dev/ttyUSB0 115200
Ini akan menampilkan {i>output<i} dari perangkat ke terminal Anda dan menulis
output yang sama ke file log layar default bernama screenlog.0
.
Anda dapat membuka file screenlog.0
di editor teks lain atau menampilkannya di
shell lain dengan cat
, tail
, more
, atau grep
.
Tekan tombol reset berwarna merah di sisi perangkat untuk melihat log dari proses booting.
Di output perangkat, Anda akan melihat VID dan PID yang Anda tetapkan sebelumnya, serta sebagai URL ke gambar kode QR yang akan Anda gunakan untuk melakukan commissioning pada perangkat.
[0;32mI (2388) chip[DIS]: Advertise commission parameter vendorID=XXXXX productID=XXXX discriminator=3840/15 cm=1[0m
[0;32mI (1928) chip[SVR]: SetupQRCode: [MT:E59-000000000000000][0m
https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3AE59-000000000000000
Pastikan Hub Anda online di rumah.
Komisi perangkat dengan Google Home app (GHA) menggunakan kode QR dari tautan yang muncul di file log.
Biarkan perangkat berjalan tanpa gangguan selama beberapa menit setelah dijalankan.
Anda harus mengamati {i>output<i} log yang terkait
dengan OTA Requestor, OTA {i>image download<i},
dan OTAImageProcessor
.
Setelah image diinstal, amati bahwa waktu kompilasi image
cocok dengan yang diupload ke konsol, dan lebih lama dari
waktu kompilasi yang dilaporkan
saat {i>booting<i} pertama. Mengeksekusi grep
dengan
pola berikut dalam mode ekspresi reguler pada screenlog.0
dapat menggambarkan OTA
proses:
$ grep -E "(Compile time|OTA)" screenlog.0
I (76) boot: 1 otadata OTA data 01 00 0000f000 00002000
I (91) boot: 3 ota_0 OTA app 00 10 00020000 00177000
I (99) boot: 4 ota_1 OTA app 00 11 001a0000 00177000
I (645) cpu_start: Compile time: Oct 15 2022 06:21:59
I (135558) chip[SWU]: OTA Requestor received AnnounceOTAProvider
I (540658) chip[SWU]: OTA image downloaded to offset 0x1a0000
I (541348) OTAImageProcessor: Applying, Boot partition set offset:0x1a0000
I (76) boot: 1 otadata OTA data 01 00 0000f000 00002000
I (91) boot: 3 ota_0 OTA app 00 10 00020000 00177000
I (99) boot: 4 ota_1 OTA app 00 11 001a0000 00177000
I (645) cpu_start: Compile time: Oct 15 2022 07:35:31
I (76) boot: 1 otadata OTA data 01 00 0000f000 00002000
I (91) boot: 3 ota_0 OTA app 00 10 00020000 00177000
I (99) boot: 4 ota_1 OTA app 00 11 001a0000 00177000
I (645) cpu_start: Compile time: Oct 15 2022 07:35:31
Setelah eksekusi awal, Anda dapat mengulangi langkah-langkah di bagian ini
Buat dan upload image OTA tanpa mengupload image baru. Kali ini,
setel versi kembali ke 1
.
Jalankan menuconfig
, dan dalam opsi menu interaktif:
Component config -->
CHIP Device Layer --->
Device Identification Options
Tetapkan
Version String
kev1.0
.Tetapkan
Device Software Version Number
ke1
.Tekan s untuk menyimpan konfigurasi, lalu q untuk keluar dari
menuconfig
.
Hapus perangkat dari rumah Anda di GHA.
Membangun image, jika belum dibuat:
idf.py build
Flash:
idf.py -p /dev/ttyUSB0 erase_flash
idf.py -p /dev/ttyUSB0 flash
Ulangi langkah-langkah di Komisi ke Google Home dan amati OTA sesuai kebutuhan.
Memvalidasi Update Software OTA
Versi software perangkat dapat diperiksa menggunakan Aplikasi Google Home (GHA). Setelah perangkat ditugaskan, ikuti prosedur berikut:
- Tekan lama kartu perangkat di layar utama GHA
- Ketuk ikon di kanan atas
- Ketuk Informasi teknis
- Periksa kolom Versi software