Aşağıdaki talimatlarda aydınlatma uygulaması M5Stack ESP32 ile birlikte Matter SDK'sından örnek sorumluyuz.
Derleme ortamı kurulumu
Önce Matter SDK'sını klonlayın.
Bu örnekte, Google Home’un Matter Sürüm 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
Sonra, ESP32 GitHub iş akışında kullanılan sürümü kontrol ederek ve derlememize en uygun Docker görüntüsü:
$ cat .github/workflows/examples-esp32.yaml | grep chip-build | head -n 1
image: connectedhomeip/chip-build-esp32:0.5.99
Docker görüntüsünden bir container çalıştırırız. Matter SDK'sını yüklemek ve ESP32 cihazı.
$ 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ı durdurun ve başlatın
Her docker run
komutu çalıştırdığınızda
belirtilen resim. Bunu yaptığınızda,
yeni container örneği kaybolur. Bazen yeni bir sürecin
Çünkü yeni bir yüklemeyle başlamanıza olanak tanır. Ancak bunda,
iş ve ortam yapılandırmanızı kaydetmek istediğiniz bir örnek
oturumlar arasında geçiş yapın.
user@host> docker stop container_name
Tekrar çalıştırmaya hazır olduğunuzda container'ı başlatın ve bir terminal açın. pencere:
user@host> docker start container_name
user@host> docker exec -it container_name /bin/bash
Aşağıdakileri kullanarak container'ınızda ek terminal oturumları açabilirsiniz:
user@host> docker exec -it container_name /bin/bash
Şunu kullanarak bir root oturumu da başlatabilirsiniz:
user@host> docker exec -u 0 -it container_name /bin/bash
SDK'yı başlatma
Kapsayıcıda Matter SDK'sı ve ESP IDF'yi ilk kullanıma hazırlıyoruz:
cd /workspace
git submodule update --init --recursive
source ./scripts/activate.sh
source /opt/espressif/esp-idf/export.sh
Geliştirme ve flaş
Bir sonraki görev, görüntüyü oluşturmak ve geliştirme kitini güncelleyerek Matter OTA donanım yazılımı güncellemesi.
Bunun için bir resim oluşturmanız gerekir.
İlk olarak, ESP IDF'deki menuconfig
yardımcı programını kullanarak derlemeyi 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) atanmış VID'nize ayarlayın.Product ID
öğesini, Matter üzerinde ayarladığınız PID değerine ayarlayın Google Home Developer Console entegrasyonu.
OTA İsteği Sahibi işaretini etkinleştirin:
Component config -->
CHIP Core -->
System options --->
[*] Enable OTA Requestor
numaralı OTA İstek Sahibi işaretini etkinleştirÜst düzey menüye dönmek için ESC tuşuna iki kez basın.
Matter OTA Resmi oluşturma işaretini etkinleştir:
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
öğesini seçProject version (NEW)
değerini1.0
olarak ayarlaYapılandırmayı kaydetmek için s tuşuna, iki kez Enter'a, ardından iki kez q'ya basarak
menuconfig
çıkışından çık.
Test sertifikalarını ayarlama
Şuradaki adımları uygulayın: Oluşturmak için Matter cihaz test sertifikaları oluşturun CD, DAC ve PAI sertifikaları.
Cihazınızı oluşturun
Şimdi derlemeyi çalıştırın ve cihazı yanıp söndür:
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
Şimdi bir OTA görüntüsü oluşturmak için derleme ayarlarını tekrar değiştirin. Şunu kullanın: ancak sürüm numarası artan bir sürüm numarası gösterir.
menuconfig
çalıştır.
idf.py menuconfig
Etkileşimli menüde aşağıdakileri güncelleyin:
Application manager --->
[*] Get the project version from Kconfig
öğesini seçProject version (NEW)
değerini2.0
olarak ayarla- Yapılandırmayı kaydetmek için s tuşuna, iki kez Enter tuşuna basın, ardından tuşuna basın
menuconfig
çıkışından çıkmak için q.
Görüntüyü derleyin ve alın. Aşağıdaki örnekte hem konum hem de
ota_image_tool.py
ile ayrıştırma işleminde OTA için resmin ve çıktısının resmi.
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ı kapsayıcı ana makinenizden eklendiğinden OTA görüntüsü, container ana makinenizde kullanılabilir.
Şu adımları takip ederek OTA görüntüsünü Developer Console uygulamasına yükleyin: OTA yükleme talimatları.
Google Home'a komisyon verme ve OTA'yı gözlemleme
Cihazınızın ana Linux makinesine USB ile bağlı olduğundan emin olun. İlgili içeriği oluşturmak için kullanılan
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 aldığınız çıktıyı terminalinize gösterir ve
aynı çıkışı screenlog.0
adlı varsayılan ekran günlük dosyasına kaydeder.
screenlog.0
dosyasını başka bir metin düzenleyicide açabilir veya görüntüleyebilirsiniz.
cat
, tail
, more
veya grep
içeren başka bir kabuk.
Başlatma sırasındaki 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ğerlerini de görürsünüz. QR kodu resminin URL'si olarak ekleyin.
[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.
Şuradaki QR kodunu kullanarak Google Home app (GHA) ile cihazı devreye alın: günlük dosyasında gösterilen bağlantıyı tıklayın.
Cihazı çalıştırdıktan sonra birkaç dakika kesintisiz olarak çalıştırın.
OTA isteği gönderen, OTA görüntüsü indirme ve
ve OTAImageProcessor
.
Görüntü yüklendikten sonra, görüntünün derleme süresinin
konsola yükleneninkiyle eşleşiyor ve
ilk başlatma sırasında bildirilen derleme süresidir. grep
,
screenlog.0
normal ifadesinde aşağıdaki kalıp OTA'yı gösterebilir
işlem:
$ 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 şu bölümdeki adımları tekrarlayabilirsiniz:
Yeni bir resim yüklemeden OTA resmi oluşturun ve yükleyin. Bu sefer
sürümleri tekrar 1
olarak ayarlayın.
menuconfig
komutunu çalıştırın ve etkileşimli menü seçeneklerinde:
Component config -->
CHIP Device Layer --->
Device Identification Options
Version String
değeriniv1.0
olarak ayarlayın.Device Software Version Number
değerini1
olarak ayarlayın.Yapılandırmayı kaydetmek için s tuşuna,
menuconfig
uygulamasından çıkmak için q'ya basın.
Cihazı GHA uygulamasında evinizden kaldırabilirsiniz.
Henüz oluşturulmadıysa görüntüyü oluşturun:
idf.py build
Flash'ı yükleyin:
idf.py -p /dev/ttyUSB0 erase_flash
idf.py -p /dev/ttyUSB0 flash
Gerektiğinde Google Home'a komisyon verme ve OTA'yı gözlemleme bölümündeki adımları tekrarlayın.
OTA Yazılım Güncellemesi'ni Doğrulama
Cihazın yazılım sürümü, Google Home uygulaması (GHA) kullanılarak kontrol edilebilir. Bir cihaz kullanıma sunulduktan sonra aşağıdaki 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