Matter cihaz oluşturma

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

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.

  1. Geliştirici kartını USB kablosuyla bilgisayarınıza bağlayın.
  2. 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.

  1. ESP-IDF'yi içerecek bir dizin oluşturun:
    $ mkdir ~/esp-idf_tools
    
  2. 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
    
  3. Araç zinciri kurulumunu tamamlayın:
    $ cd ./esp-idf
    $ ./install.sh
    $ cd ~/
    

Matter SDK'sını ayarlama

  1. 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
    
  2. Depo alt modüllerini getirin:
    $ ./scripts/checkout_submodules.py --shallow --platform esp32
    
  3. 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:

  1. Create project (Proje oluştur) seçeneğini tıklayın.
  2. Benzersiz bir proje adı girin ve Create a project'i (Proje oluştur) tıklayın. Yeni proje oluşturma iletişim kutusu
  3. + 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.
  4. Devam etmeye hazır olduğunuzda Sonraki: Geliştirme'yi tıklayın. Bu sekmede Konu kontrol listesi sayfası görüntülenir.
  5. Sonraki: Kurulum'u tıklayın.
  6. Kurulum sayfasında ürün adınızı girin.
  7. Cihaz türünü seç'i tıklayın ve açılır menüden cihaz türünü seçin (bu örnekte Light).
  8. 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.
    Proje oluşturma
  9. Artık entegrasyonunuzu Konu entegrasyonları altında görebilirsiniz.
  10. 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

  1. 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
    
  2. Derleme işlemini hızlandıran Ccache'i etkinleştirin:
    $ export IDF_CCACHE_ENABLE=1
    
  3. lighting-app ESP32 derleme dizinine geçin ve hedef mimariyi ayarlayın:
    $ cd ./examples/lighting-app/esp32
    $ idf.py set-target esp32
    
    1. Yapılandırma yardımcı programını çalıştırın:
      $ idf.py menuconfig
      
    2. Demo -> Device Type öğesini seçin ve Device Type değerini ESP32-DevKitC olarak ayarlayın.
    3. Üst düzey menüye dönmek için sol ok tuşuna basın.
    4. Component config ---> seçeneğini belirleyin.
    5. CHIP Device Layer ---> seçeneğini belirleyin.
    6. Device Identification Options ---> seçeneğini belirleyin.
    7. Vendor ID özelliğini, ortaklık tarafından atanan VID'nize veya test VID'nize ayarlayın.
    8. Product ID değerini, Google Home Developer Console'daki Matter entegrasyonunda ayarladığınız PID değerine ayarlayın.
    9. Kaydetmek için S tuşuna basın.
    10. Yapılandırmanın kaydedileceği varsayılan yolu kabul etmek için Return tuşuna basın.
    11. Kaydetme onayı iletişim kutusunu kapatmak için Return tuşuna basın.
    12. Yapılandırma yardımcı programından çıkmak için Q tuşuna bası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

  1. Geliştirici kartınızı bir USB kablosuyla bilgisayarınıza bağlayın.
  2. 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
    
  3. 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

  1. Bir terminal penceresi açın.
  2. Hangi dizinde olduğunuzu not edin, ardından GNU screen kullanarak yeni Matter cihazınıza bağlanın:
    $ screen -L {device} 115200
    
  3. 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ı

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: