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 bilgi edinmek için Google Home Developer Center: Matter sayfasını veya Connectivity Standards Alliance web sitesini ziyaret edin.

Neler öğreneceksiniz?

  • Fiziksel bir cihazı Matter ile entegre etme.
  • Matter cihazınızı Google Home ile devreye alma ve kontrol etme.

Gerekenler

2. Ortamınızı ayarlama

Seri cihazı tanımlayın

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 sayesinde geliştirici panonuzu programlayabilir ve onunla etkileşim kurabilirsiniz.

  1. Geliştirici kartını bir USB kablosuyla bilgisayarınıza bağlayın.
  2. Geliştirici panosu cihazını bulmak için /dev dosya sistemine bakın. Geliştirici panelinizin cihaz ön ekini belirterek aramanızı daraltabilirsiniz. Espressif'in ESP32'si /dev/ttyUSBx:
    user@host $ ls /dev/ttyUSB*
    /dev/ttyUSB0
    
    kullanır

Hub'ınızı ayarlayın

Hub'ınızı, bu codelab için kullanmayı planladığı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 çoğu Debian tabanlı Linux dağıtımında çalışır. Farklı bir Linux dağıtımıyla çalışıyorsanız bağımlılık kurulum prosedürü aşağıdakinden farklı olabilir.

Bağımlıları yükleme

Daha önce 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ı ayarlayın

Bu codelab'e devam etmek için Espressif SDK'sına (Espressif IoT Development Framework veya "ESP-IDF") ihtiyacınız var.

  1. ESP-IDF'yi içerecek bir dizin oluşturun:
    $ mkdir ~/esp-idf_tools
    
  2. ESP-IDF'yi GitHub'dan ş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 kaynaklı 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 Developer Console, Google Home ile Matter entegrasyonlarınızı yönettiğiniz web uygulamasıdır.

Connectivity Standards Alliance (Alliance) Matter sertifikasını geçen tüm Matter cihazları Google Home ekosisteminde çalışır. Geliştirilme aşamasında olan, ancak sertifikası olmayan cihazlar Google Home ekosisteminde belirli koşullar altında hizmete sunulabilir. Daha fazla bilgi için Eşleme kısıtlamaları bölümüne bakın.

Geliştirici projesi oluşturma

Google Home Geliştirici Konsolu'na giderek başlayın:

  1. Create project (Proje oluştur) seçeneğini tıklayın.
  2. Benzersiz bir proje adı girin ve ardından Create project'i (Proje oluştur) tıklayın. Yeni proje oluştur iletişim kutusu
  3. + Entegrasyon ekle'yi tıklayın. Bu işlem sizi, Matter geliştirme dokümanlarını görüntüleyebileceğiniz ve bazı araçlar hakkında bilgi edinebileceğiniz Konu kaynakları ekranına götürür.
  4. Devam etmeye hazır olduğunuzda Konu kontrol listesi sayfasını görüntüleyen İleri: Geliştirme'yi tıklayın.
  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 test VID'si açılır menüsünden 0xFFF1'i seçin. Ürün Kimliği'ne (PID) 0x8000 değerini girip Kaydet ve devam et'i tıklayın. Ardından bir sonraki sayfada Kaydet'i tıklayın. Bu VID/PID değerlerini tam olarak kullanabilirsiniz. Daha sonraki codelab adımlarında bu değerler geçerli olacaktır.
    Proje hazırlama
  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 merkezinizi yeniden başlatın. VID veya PID'yi daha sonra değiştirmeniz gerekirse değişikliğin geçerli olması için projeyi kaydettikten sonra yeniden başlatmanız da gerekir. Adım adım yeniden başlatma talimatları için Google Nest veya Google Wifi cihazlarını yeniden başlatma makalesine göz atın.

4. Cihazı oluşturma

Matter'daki tüm örnekler, GitHub veri havuzundaki örnekler klasörüne yerleştirilmiştir. Birkaç örnek mevcuttur, ancak bu codelab'de lighting-app'e odaklanacağız.

Bu örnek, Google Home'da Açık/Kapalı Işığı olarak görünen, Açık ve Kapalı komutlarına yanıt veren basit bir cihazdır. Gerçek bir elektrik ışığını kontrol etmek, 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 öğesini 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 öğesini Alliance tarafından atanan VID'nize veya bir test VID'sine ayarlayın.
    8. Product ID değerini, Google Home Geliştirici Konsolu'ndaki Matter entegrasyonunda ayarladığınız PID olarak 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 olarak tamamlanmalıdır.

Cihazı programlama

  1. Geliştirici kartınızı bir USB kablosuyla bilgisayarınıza bağlayın.
  2. Cihazdaki eski donanım yazılımını silin (bilgisayarınıza bağlı yalnızca bir geliştirici panosu varsa -p {device} seçeneğini kapatabilirsiniz. Cihaz otomatik olarak algılanır):
    idf.py -p {device} erase-flash
    
  3. Aşağıdaki bilgileri kullanarak yeni uygulamanızı geliştirici panosuna kopyalayın:
    idf.py -p {device} flash
    

Yanıp sönme seçenekleri hakkında daha fazla bilgiyi Espressif esptool.py belgeleri sayfasında bulabilirsiniz.

5. Cihaza bağlanın

  1. Bir terminal penceresi açın.
  2. Bulunduğunuz dizini not edin ve GNU screen kullanarak yeni Matter cihazınıza bağlanın:
    $ screen -L {device} 115200
    
  3. Boş bir konsol görürseniz cihaz başlatma işlemini başlatmak için RESET düğmesine basın.

6. Cihazı devreye sokun

Not: Bu adım yalnızca Google Home Geliştirici Konsolu'nda projenizi zaten oluşturduysanız başarılı olur.

Nest Hub

Cihazınızı Matter yapısında çalıştırmak için bir merkez gereklidir. Bu, Nest Hub (2. nesil) gibi Matter'ı destekleyen ve Thread özellikli cihazlar için hem Sınır Yönlendirici hem de Akıllı Ev amaçlarını yönlendirmek için yerel istek karşılama yolu olarak hizmet verecek bir Google Nest cihazıdır.

Hangi merkezlerin Matter'ı desteklediğini görmek için bu listeye bakın.

Devreye alma sürecine başlamadan önce şunlardan emin olun:

  • Merkeziniz, Google Home Console'da oturum açmak için kullandığınız Google Hesabı ile eşlendi.
  • Hub'ınız, Virtual Matter cihazınızı çalıştırmak için kullandığınız bilgisayarla aynı kablosuz ağa bağlı.
  • Merkeziniz, Google Home uygulamanızda kullandığınız yapıda yer alı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öndükten sonra ekranının boş kalacağını unutmayın. Bu nedenle, QR kodunu konsolda görünen URL'yi kullanarak görüntülemeniz gerekecektir. Alternatif olarak, manuel eşleme kodunu 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 Sorunlarını 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, cihazı Google Asistan, Google Home uygulaması veya VS Code için Google Home Uzantısı'ndaki Google Asistan Simülatörü'nü kullanarak kontrol etmeyi deneyebilirsiniz.

Google Asistan

"Ok Google, ışıklarımı aç/kapat" 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 Cihazları Google Home uygulamasıyla 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, sohbete benzer bir arayüz kullanarak cihazınıza ifade gönderebilirsiniz.

8. Tebrikler!

İlk Matter cihazınızı başarıyla oluşturup devreye aldınız. Mükemmel!

Bu codelab'de şunları öğrendiniz:

  • Koşullardan çalışma durumuna bir Matter geliştirme ortamı yükleyin.
  • Matter cihazı oluşturup çalıştırın.
  • Cihazınızı Google Home'dan devreye sokun ve kontrol edin.

Matter hakkında daha fazla bilgi edinmek için şu referansları keşfedin: