1. Giriş
Matter, akıllı cihazların geliştirilmesi için heyecan verici fırsatlar sunan bir bağlantı protokolüdür. Bu codelab'de ilk Matter cihazınızı derleyeceksiniz. Matter hakkında daha fazla bilgi edinmek için Google Home Developer Center: Matter (Google Home Geliştirici Merkezi: Matter) veya Connectivity Standards Alliance web sitesini ziyaret edin.
Neler öğreneceksiniz?
- Fiziksel bir cihazı Matter ile entegre etme.
- Google Home ile Matter cihazınızı devreye alma ve kontrol etme.
Gerekenler
- Nest Hub (2. nesil) gibi Matter'ı destekleyen herhangi bir Google Nest cihazı.
- Espressif Systems ESP32-DevkitC veya ESP32 M5STACK Matter değerlendirme panosu.
- Linux çalıştıran bir PC.
- Temel Linux bilgisi.
2. Ortamınızı ayarlama
Seri cihazı tanımlama
Geliştirme ortamınızı kurmanın ilk adımı, cihazınızın hangi seri bağlantı noktasına bağlı olduğunu belirlemektir. Bu bilgiler, geliştirici panonuzu programlamanıza ve onlarla etkileşim kurmanıza olanak tanır.
- Geliştirici kartını USB kablosuyla bilgisayarınıza bağlayın.
- Geliştirici kartı cihazını bulmak için
/dev
dosya sistemine bakın. Geliştirici panonuzun cihaz önekini belirterek aramanızı daraltabilirsiniz. Espressif'in ESP32'si/dev/ttyUSBx
kullanır:user@host $ ls /dev/ttyUSB* /dev/ttyUSB0
Hub'ınızı kurun
Hub'ınızı, bu codelab için kullanmayı düşündüğünüz Google Hesabı'nı kullanarak kurun.
Geliştirme ortamınızı ayarlama
Ön koşullar
Bu talimatlar Debian Linux üzerinde test edilmiştir ve Ubuntu dahil olmak üzere çoğu Debian tabanlı Linux dağıtımında işe yarayacaktır. Farklı bir Linux dağıtımıyla çalışıyorsanız bağımlılık kurulum prosedürü aşağıdaki adımlardan farklı olabilir.
Bağımlıları yükleme
Henüz yüklenmemiş olabilecek gerekli Linux paketi ikili programlarını yüklemek için aşağıdaki komutu çalıştırı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 screen
SDK'yı ayarlama
Bu codelab'e devam etmek için Espressif SDK'sına (Espressif IoT Geliştirme Çerçevesi veya "ESP-IDF") ihtiyacınız var.
- ESP-IDF'yi içerecek bir dizin oluşturun:
$ mkdir ~/esp-idf_tools
- GitHub'dan ESP-IDF'yi şu dizine klonlayın:
$ cd ~/esp-idf_tools $ git clone -b v4.4.3 --recursive https://github.com/espressif/esp-idf.git
- Araç zinciri kurulumunu tamamlayın:
$ cd ./esp-idf $ ./install.sh $ cd ~/
Matter SDK'sını ayarlama
- Açık kaynak Matter deposunu klonlayın:
$ git clone https://github.com/project-chip/connectedhomeip.git $ cd ./connectedhomeip $ git fetch origin v1.0-branch $ git checkout FETCH_HEAD
- Depo alt modüllerini getirin:
$ ./scripts/checkout_submodules.py --shallow --platform esp32
- Matter geliştirme ortamını önyükleyin:
$ source ./scripts/bootstrap.sh
3. Google Home Geliştirici Konsolu
Google Home Geliştirici Konsolu, Google Home ile Matter entegrasyonlarınızı yönettiğiniz web uygulamasıdır.
Connectivity Standards Alliance (Alliance) Matter sertifikasından geçmiş tüm Matter cihazları, Google Home ekosisteminde çalışır. Geliştirilme aşamasında olan ve onaylanmamış cihazlar, Google Home ekosisteminde belirli koşullar altında devreye alınabilir. Daha fazla bilgi için Eşleme kısıtlamaları başlıklı makaleyi inceleyin.
Geliştirici projesi oluşturma
İlk olarak Google Home Geliştirici Konsolu'na gidin:
- Create project (Proje oluştur) seçeneğini tıklayın.
- Benzersiz bir proje adı girin ve Create a project'i (Proje oluştur) tıklayın.
- + Entegrasyon ekle'yi tıklayın. Bu işlemle, Matter geliştirme belgelerini görüntüleyebileceğiniz ve bazı araçlar hakkında bilgi edinebileceğiniz Konu kaynakları ekranına yönlendirilirsiniz.
- Devam etmeye hazır olduğunuzda Sonraki: Geliştirme'yi tıklayın. Bu sekmede Konu kontrol listesi sayfası görüntülenir.
- Sonraki: Kurulum'u tıklayın.
- Kurulum sayfasında ürün adınızı girin.
- Cihaz türünü seç'i tıklayın ve açılır menüden cihaz türünü seçin (bu örnekte
Light
). - Tedarikçi Firma Kimliği (VID) bölümünde, Test VID'yi (VID'yi Test Et) ve ardından Test VID (VID'yi Test Et) açılır menüsünden 0xFFF1'i seçin. Ürün Kimliği'ne (PID) 0x8000 girin ve Kaydet ve devam et'i tıklayın, ardından bir sonraki sayfada Kaydet'i tıklayın. Tam olarak bu VID/PID değerlerini kullanın. Daha sonraki codelab adımlarında bu değerler dikkate alınacaktır.
- Artık entegrasyonunuzu Konu entegrasyonları altında görebilirsiniz.
- En son Matter entegrasyon projesi yapılandırmasını aldığından emin olmak için hub'ınızı yeniden başlatın. Daha sonra VID veya PID'yi değiştirmeniz gerekirse değişikliğin geçerli olması için projeyi kaydettikten sonra da yeniden başlatmanız gerekir. Adım adım yeniden başlatma talimatları için Google Nest veya Google Wifi cihazlarını yeniden başlatma bölümüne bakın.
4. Cihazı oluşturma
Matter'daki tüm örnekler, GitHub deposundaki examples klasörüne yerleştirilir. Kullanıma sunulan birkaç örnek olsa da bu codelab'de lighting-app'e odaklanacağız.
Bu örnek, Google Home'da bir Açık/Kapalı Işığı olarak görünen, Açık ve Kapalı komutlarına yanıt veren basit bir cihazdır. Cihazın gerçek bir elektrik ışığını kontrol etmesini sağlamak bu codelab'in kapsamı dışındadır.
Derlemeyi yapılandırma
- Matter SDK'sını yapılandırın ve Matter derleme ortamını etkinleştirin:
$ cd ~/esp-idf_tools/esp-idf $ source export.sh $ cd ~/connectedhomeip $ source ./scripts/activate.sh
- Derleme işlemini hızlandıran Ccache'i etkinleştirin:
$ export IDF_CCACHE_ENABLE=1
lighting-app
ESP32 derleme dizinine geçin ve hedef mimariyi ayarlayın:$ cd ./examples/lighting-app/esp32 $ idf.py set-target esp32
- Yapılandırma yardımcı programını çalıştırın:
$ idf.py menuconfig
Demo -> Device Type
öğesini seçin veDevice Type
değeriniESP32-DevKitC
olarak ayarlayın.- Üst düzey menüye dönmek için sol ok tuşuna basın.
Component config --->
seçeneğini belirleyin.CHIP Device Layer --->
seçeneğini belirleyin.Device Identification Options --->
seçeneğini belirleyin.Vendor ID
özelliğini, ortaklık tarafından atanan VID'nize veya test VID'nize ayarlayın.Product ID
değerini, Google Home Developer Console'daki Matter entegrasyonunda ayarladığınız PID değerine ayarlayın.- Kaydetmek için S tuşuna basın.
- Yapılandırmanın kaydedileceği varsayılan yolu kabul etmek için Return tuşuna basın.
- Kaydetme onayı iletişim kutusunu kapatmak için Return tuşuna basın.
- Yapılandırma yardımcı programından çıkmak için Q tuşuna basın.
- Yapılandırma yardımcı programını çalıştırın:
Derlemeyi çalıştırma
Derleme komut dosyasını çağırın:
idf.py build
Derleme hatasız bir şekilde tamamlanmalıdır.
Cihazı programlama
- Geliştirici kartınızı bir USB kablosuyla bilgisayarınıza bağlayın.
- Cihazdaki önceki tüm donanım yazılımlarını silin (bilgisayarınıza sadece bir geliştirici kartı bağlıysa
-p {device}
seçeneğini bırakın. Cihaz otomatik olarak algılanır):idf.py -p {device} erase-flash
- Yeni başvurunuzu geliştirici panosuna kopyalamak için şu bilgileri kullanın:
idf.py -p {device} flash
Yanıp sönen seçenekler hakkında daha fazla bilgiyi Espressif esptool.py
dokümanları sayfasında bulabilirsiniz.
5. Cihaza bağlanın
- Bir terminal penceresi açın.
- Hangi dizinde olduğunuzu not edin, ardından GNU
screen
kullanarak yeni Matter cihazınıza bağlanın:$ screen -L {device} 115200
- Boş bir konsol görürseniz cihaz önyükleme işlemini başlatmak için RESET düğmesine basın.
6. Cihazı devreye sokma
Not: Bu adım yalnızca Google Home Geliştirici Konsolu'nda projenizi oluşturduysanız başarılı olur.
Nest Hub
Cihazınızı Matter yapısında yaptırmak için bir merkez gerekir. Bu, Nest Hub (2. nesil) gibi bir Google Nest cihazıdır. Matter'ı destekleyen ve Thread özellikli cihazlar için Sınır Yönlendirici olarak ve Akıllı Ev amaçlarının yönlendirilmesi için yerel bir sipariş karşılama yolu olarak işlev görecektir.
Hangi merkezlerin Matter'ı desteklediğini görmek için bu listeye bakın.
Devreye alma işlemine başlamadan önce şunlardan emin olun:
- Hub'ınız, Google Home Console'da oturum açmak için kullandığınız Google Hesabı ile eşlenmiş.
- Hub'ınız, Virtual Matter cihazınızı çalıştırmak için kullandığınız bilgisayarla aynı kablosuz ağdadır.
- Hub'ınız, Google Home uygulamanızda kullandığınız yapıda kullanılır. (Google Home Graph'teki "ev", yapınızı temsil eder.)
Cihazı eşle
Cihazınızı eşlemek için ESP32 eşleme talimatlarını uygulayın.
Not: M5STACK kullanıyorsanız yanıp sönme sonrasında ekranın boş kalacağını, bu nedenle konsolda görünen URL'yi kullanarak QR kodunu görüntülemeniz gerekeceğini unutmayın. Bunun yerine manuel eşleme kodunu da yazabilirsiniz.
QR kodu URL'sini gösteren örnek konsol çıkışı:
I (1926) chip[DL]: Done driving station state, nothing else to do...
I (1936) chip[SVR]: SetupQRCode: [MT:X.XXXXXXXXXXXXXXXXX]
I (1936) chip[SVR]: Copy/paste the below URL in a browser to see the QR Code:
I (1946) chip[SVR]: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3XX.KXXXXXXXXXXXXXXXX
I (1956) chip[SVR]: Manual pairing code: [XXXXXXXXXXX]]
Sorun giderme
Devreye alma hataları
- Google Home Console'da doğru VID/PID kombinasyonuyla proje oluşturduğunuzdan emin olun.
- Derleme yapılandırmasında doğru VID ve PID değerlerini girdiğinizden emin olun.
- Derleme yapılandırmasında doğru
Device Type
öğesini seçtiğinizden emin olun.
Daha fazla sorun giderme ipucu için Konu Sorun Giderme sayfasına bakın.
7. Cihazı kontrol etme
Matter uyumlu cihazınız başarıyla çalıştırıldıktan ve Google Home uygulamasında ampul olarak göründükten sonra Google Asistan'ı, Google Home uygulamasını veya VS Code için Google Home uzantısındaki Google Asistan Simülatörü'nü kullanarak cihazı kontrol etmeyi deneyebilirsiniz.
Google Asistan
"Ok Google, ışıklarımı aç" gibi sesli komutlardan cihaz durumunu değiştirmek için telefonunuzda veya hub'ınızda Google Asistan'ı kullanın.
Daha fazla komut örneği için Google Home uygulamasına eklenen akıllı ev cihazlarını kontrol etme başlıklı makalenin Akıllı ev cihazlarını sesli komutlarla kontrol etme bölümüne bakın.
Google Home uygulaması
Google Home uygulamasında gösterilen ampul simgesinin yanındaki Açık ve Kapalı etiketlerine dokunabilirsiniz.
Daha fazla bilgi için Google Home uygulamasıyla cihazları kontrol etme başlıklı makaleyi inceleyin.
Google Asistan Simülatörü
VS Code için Google Home Uzantısı'nda, Google Asistan Simülatörü'nü kullanarak sohbet benzeri bir arayüz kullanarak cihazınıza söylenen gönderebilirsiniz.
8. Tebrikler!
İlk Matter cihazınızı başarıyla oluşturup kullanıma sundunuz. Mükemmel!
Bu codelab'de şunları öğrendiniz:
- Gerekliliklerden çalışma durumuna bir Matter geliştirme ortamı yükleyin.
- Matter cihazı derleyip çalıştırın.
- Cihazınızı Google Home'dan çalıştırın ve kontrol edin.
Matter hakkında daha fazla bilgi edinmek için şu referansları inceleyin:
- Google Home'dan Matter Primer'da Matter protokolünün önemli kavramlarını ve ilkelerini öğreneceksiniz.
- Connected Standard Alliance tarafından yayınlanan Matter Spesifikasyonu, Matter Cihaz Kitaplığı ve Matter Uygulama Kümesi Kitaplığı.
- Matter GitHub deposu.