Aşağıdaki talimatlarda, Matter SDK'sından alınan aydınlatma uygulaması örneğine ve bir M5Stack ESP32 geliştirme kartına yer verilmiştir.
Derleme ortamı kurulumu
Öncelikle Matter SDK'sını klonlayın.
Bu örnekte, Google Home'un Matter 5. sürümü için desteklenen minimum taahhütlere bakalım:
$ 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
Ardından, derlememize en uygun Docker görüntüsünü belirlemek için ESP32 GitHub İş Akışında kullanılan sürümü kontrol ederiz:
$ cat .github/workflows/examples-esp32.yaml | grep chip-build | head -n 1
image: connectedhomeip/chip-build-esp32:0.5.99
Matter SDK'sını container'a eklemek ve ESP32 cihazına erişim sağlamak için Docker görüntüsünden bir container çalıştırıp işaretleri iletiriz.
$ 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
Matter Docker kapsayıcısını durdurma ve başlatma
Her docker run
komutu çalıştırdığınızda, belirtilen görüntüyle yeni bir container oluşturursunuz. Bu işlemi yaptığınızda, önceki container örneğine kaydedilen eski verileriniz kaybolur. Bazen olmasını istediğiniz şey budur, çünkü yeni bir kurulumla başlamanıza olanak sağlar. Ancak bu örnekte, büyük olasılıkla oturumlar arasında iş ve ortam yapılandırmanızı kaydetmek istersiniz.
user@host> docker stop container_name
Tekrar çalıştırmaya hazır olduğunuzda container'ı başlatın ve bir terminal penceresi açın:
user@host> docker start container_name
user@host> docker exec -it container_name /bin/bash
Aşağıdakileri kullanarak kapsayıcınıza ek terminal oturumları açabilirsiniz:
user@host> docker exec -it container_name /bin/bash
Alternatif olarak, aşağıdakileri kullanarak bir kök oturum başlatabilirsiniz:
user@host> docker exec -u 0 -it container_name /bin/bash
SDK'yı başlatma
Kapsayıcıda, Matter SDK'sını ve ESP IDF'yi başlatırız:
cd /workspace
git submodule update --init --recursive
source ./scripts/activate.sh
source /opt/espressif/esp-idf/export.sh
Derleme ve flash
Bir sonraki görev, görüntüyü oluşturmak ve Matter OTA donanım yazılımı güncellemesini almak için geliştirme kitini yüklemektir.
Bunun için bir görüntü oluşturmalısınız.
Öncelikle derlemeyi ESP IDF'den menuconfig
yardımcı programını kullanarak yapılandırın.
cd examples/lighting-app/esp32
idf.py menuconfig
Etkileşimli menüde aşağıdaki ayarları yapılandırın:
Component config --->
CHIP Device Layer --->
Device Identification Options --->
Vendor ID
öğesini Connectivity Standards Alliance (Alliance) tarafından atanan VID'nize ayarlayın.Product ID
değerini, Google Home Developer Console ile Matter entegrasyonunda ayarladığınız PID değerine ayarlayın.
OTA İsteği Sahibi işaretini etkinleştirin:
Component config -->
CHIP Core -->
System options --->
OTA İsteği Sahibi işaretini (
[*] Enable OTA Requestor
) etkinleştirÜst düzey menüye dönmek için ESC tuşuna iki kez basın.
Matter OTA Görüntü oluşturma işaretini etkinleştirin:
Component config -->
CHIP Device Layer --->
Matter OTA Image --->
[*] Generate OTA IMAGE
Sürüm numarasını ayarlayın:
Application manager --->
[*] Get the project version from Kconfig
boyutunu seçinProject version (NEW)
öğesini1.0
olarak ayarlayınYapılandırmayı kaydetmek için s tuşuna, iki kez Enter tuşuna ve ardından
menuconfig
'den çıkmak için q tuşuna basın.
Test sertifikalarını ayarlama
CD, DAC ve PAI sertifikaları oluşturmak için Matter cihaz test sertifikaları oluşturma bölümündeki adımları uygulayın.
Cihazınızı oluşturun
Şimdi derlemeyi çalıştırın ve cihazı güncelleyin:
idf.py build
idf.py -p /dev/ttyUSB0 erase_flash
idf.py -p /dev/ttyUSB0 flash
OTA görüntüsünü oluşturun ve yükleyin
OTA görüntüsü oluşturmak için derleme ayarlarını tekrar değiştirin. Aynı resmi, ancak artan sürüm numarasıyla kullanın.
menuconfig
komutunu çalıştırın.
idf.py menuconfig
Etkileşimli menüde aşağıdakileri güncelleyin:
Application manager --->
[*] Get the project version from Kconfig
boyutunu seçinProject version (NEW)
öğesini2.0
olarak ayarlayın- Yapılandırmayı kaydetmek için s tuşuna, iki kez Enter tuşuna basın, ardından
menuconfig
'den çıkmak için q tuşuna basın.
Görüntüyü oluşturun ve alın. Aşağıdaki örnekte hem OTA için resmin konumu hem de ota_image_tool.py
ile ayrıştırma sırasında elde edilen çıkış gösterilmektedir.
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
Matter SDK'sı container ana makinenizden eklendiğinden OTA görüntüsü, container ana makinenizde kullanılabilir.
OTA yükleme talimatlarını uygulayarak OTA görüntüsünü Developer Console içine yükleyin.
Google Home'a komisyon verme ve OSA'yı gözlemleme
Cihazınızın USB ile ana makine Linux makinesine bağlı olduğundan emin olun. Aşağıdaki örnekte, cihaz günlüklerini okumak için GNU screen
kullanımı gösterilmektedir:
screen -L /dev/ttyUSB0 115200
Bu işlem, cihazdan terminalinize gönderilen çıkışı görüntüler ve aynı çıktıyı screenlog.0
adlı varsayılan ekran günlük dosyasına yazar.
screenlog.0
dosyasını başka bir metin düzenleyicide açabilir veya cat
, tail
, more
ya da grep
ile başka bir kabuk içinde görüntüleyebilirsiniz.
Başlatmadaki günlükleri görmek için cihazın yan tarafındaki kırmızı sıfırlama düğmesine basın.
Cihaz çıkışında, daha önce ayarladığınız VID ve PID değerlerinin yanı sıra cihazı çalıştırmak için kullanacağınız QR kodu resminin URL'sini görürsünüz.
[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
Hub'ınızın evinizde internete bağlı olduğundan emin olun.
Günlük dosyasında görünen bağlantıdaki QR kodunu kullanarak cihazı Google Home app (GHA) için etkinleştirin.
Kullanıma sunulduktan sonra cihazı birkaç dakika boyunca kesintisiz olarak çalıştırın.
OTA İsteğicisi, OTA görüntü indirme ve OTAImageProcessor
ile ilgili günlük çıkışını gözlemlemeniz gerekir.
Görüntü yüklendikten sonra, görüntünün derleme süresinin konsola yüklenenle eşleştiğini ve ilk başlatmada bildirilen derleme süresinden daha sonra olduğunu gözlemleyin. screenlog.0
üzerinde normal ifade modunda aşağıdaki kalıpla grep
çalıştırmak OTA sürecini gösterebilir:
$ 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
İlk yürütme işleminden sonra, yeni bir resim yüklemeden OTA görüntüsü oluşturma ve yükleme bölümündeki adımları tekrarlayabilirsiniz. Bu kez, sürümleri tekrar 1
olarak ayarlayın.
menuconfig
'yi çalıştırın ve etkileşimli menü seçeneklerinde şu işlemleri gerçekleştirin:
Component config -->
CHIP Device Layer --->
Device Identification Options
Version String
öğesiniv1.0
olarak ayarlayın.Device Software Version Number
öğesini1
olarak ayarlayın.Yapılandırmayı kaydetmek için s, ardından
menuconfig
'den çıkmak için q tuşuna basın.
Cihazı GHA içinde evinizden kaldırın.
Daha önce oluşturulmadıysa görüntüyü oluşturun:
idf.py build
Flash it:
idf.py -p /dev/ttyUSB0 erase_flash
idf.py -p /dev/ttyUSB0 flash
Google Home komisyonu bölümündeki adımları tekrarlayın ve Gerektiğinde OSA'ya uyun.
OTA Yazılım Güncellemesini Doğrulama
Cihazın yazılım sürümü Google Home uygulaması (GHA) kullanılarak kontrol edilebilir. Bir cihaz hizmete alındıktan sonra şu prosedürleri uygulayın:
- GHA ana ekranında cihaz simgesine uzun basın
- Sağ üstteki simgesine dokunun
- Teknik bilgiler'e dokunun.
- Yazılım sürümü alanını kontrol edin