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

Neler öğreneceksiniz?

  • Fiziksel cihazları Matter ile entegre etme
  • Matter cihazınızı Google Home ile kullanıma alma ve kontrol etme

İhtiyacınız olanlar

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ştirme kartınızı programlamanıza ve kartla etkileşimde bulunmanıza olanak tanır.

  1. Geliştirme 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ştirme kartınızın cihaz önekini belirterek aramanızı daraltabilirsiniz. Espressif'in ESP32'si /dev/ttyUSBx kullanır:
    user@host $ ls /dev/ttyUSB*
    /dev/ttyUSB0
    

Hub'ınızı kurma

Hub'ınızı bu codelab'de kullanmayı planladığınız Google Hesabı ile kurun.

Geliştirme ortamınızı kurma

Ön koşullar

Bu talimatlar Debian Linux'ta test edilmiştir ve Ubuntu dahil olmak üzere Debian tabanlı çoğu Linux dağıtımında çalışmalıdır. Farklı bir Linux dağıtımıyla çalışıyorsanız bağımlılık kurulumu prosedürü aşağıdakilerden farklı olabilir.

Bağımlıları yükleme

Gerekli Linux paketi ikililerini yüklemek için aşağıdaki komutu çalıştırın (bu ikililer henüz yüklenmemiş olabilir):

$ 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 Development Framework veya "ESP-IDF") ihtiyacınız vardır.

  1. ESP-IDF'yi içerecek bir dizin oluşturun:
    $ mkdir ~/esp-idf_tools
    
  2. ESP-IDF'yi GitHub'dan bu 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'yı 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ı başlatın:
    $ source ./scripts/bootstrap.sh
    

3. Google Home Developer Console

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ı almış tüm Matter cihazlar Google Home ekosisteminde çalışır. Geliştirme aşamasında olan ve sertifika almamış cihazlar, belirli koşullar altında Google Home ekosisteminde kullanılabilir. Daha fazla bilgi için Eşleme kısıtlamaları başlıklı makaleyi inceleyin.

Geliştirici projesi oluşturma

Google Home Developer Console'a giderek başlayın:

  1. Proje oluştur'u tıklayın.
  2. Benzersiz bir proje adı girin ve Proje oluştur'u tıklayın. Yeni proje oluşturma iletişim kutusu
  3. + Entegrasyon ekle'yi tıkladığınızda Matter kaynakları ekranına yönlendirilirsiniz. Bu ekranda Matter geliştirme belgelerini görüntüleyebilir ve bazı araçlar hakkında bilgi edinebilirsiniz.
  4. Devam etmeye hazır olduğunuzda Sonraki: Geliştir'i tıklayın. Matter yapılacaklar listesi sayfası gösterilir.
  5. Sonraki: Kurulum'u tıklayın.
  6. Kurulum sayfasında Ürün adınızı girin.
  7. Cihaz türünü seçin'i tıklayın ve açılır menüden cihaz türünü seçin (bu örnekte Light).
  8. Tedarikçi kimliği (VID) bölümünde Test VID'yi seçin ve Test VID açılır menüsünden 0xFFF1'i belirleyin. Ürün Kimliği (PID) alanına 0x8000 girin ve Kaydet ve devam et'i, ardından sonraki sayfada Kaydet'i tıklayın. Bu VID/PID değerlerini aynen kullanın. Sonraki codelab adımları bu değerlere bağlıdır.
    Proje oluşturma
  9. Entegrasyonunuzu artık Matter entegrasyonları bölümünde görebilirsiniz.
  10. En son Matter entegrasyonu proje yapılandırmasını aldığından emin olmak için hub'ınızı 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 başlıklı makaleyi inceleyin.

4. Cihazı oluşturma

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

Bu örnek, Google Home'da Açık/Kapalı Işık olarak görünen, Açık ve Kapalı komutlarına yanıt veren basit bir cihazdır. Gerçek bir elektrikli ışığı 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 gidin 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 simgesini seçin ve Device Type simgesini ESP32-DevKitC olarak ayarlayın.
    3. En ü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 Developer Console'da Matter entegrasyonunda ayarladığınız PID olarak belirleyin.
    9. Kaydetmek için S tuşuna basın.
    10. Yapılandırmanın kaydedileceği varsayılan yolu kabul etmek için Return (Geri) tuşuna basın.
    11. Kaydetme onay iletişim kutusunu kapatmak için Geri Ver'e 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 işlemi hatasız tamamlanmalıdır.

Cihazı programlama

  1. Geliştirme 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 yalnızca bir geliştirme kartı bağlıysa -p {device} seçeneğini kullanmayabilirsiniz. Cihaz otomatik olarak algılanır):
    idf.py -p {device} erase-flash
    
  3. Yeni uygulamanızı geliştirici kartına şu komutla kopyalayın:
    idf.py -p {device} flash
    

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

5. Cihaza bağlanma

  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üyorsanız cihaz başlatma sürecini başlatmak için RESET (Sıfırla) düğmesine basın.

6. Cihazı devreye alma

Not: Bu adım yalnızca projenizi Google Home Developer Console'da daha önce ayarladıysanız başarılı olur.

Nest Hub

Cihazınızı Matter ağında kullanıma almak için hub gereklidir. Bu, Matter'ı destekleyen ve hem Thread özellikli cihazlar için sınır yönlendirici hem de akıllı ev amaçlarını yönlendirmek için yerel bir karşılama yolu olarak hizmet verecek bir Google Nest cihazıdır (ör. Nest Hub [2. nesil]).

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

Devreye alma işlemine başlamadan önce şunlardan emin olun:

  • Merkeziniz, Google Home Console'da oturum açmak için kullandığınız Google Hesabı ile eşlenmiş olmalıdır.
  • Hub'ınız, sanal Matter cihazınızı çalıştırmak için kullandığınız bilgisayarla aynı kablosuz ağda olmalıdır.
  • Hub'ınız, Google Home uygulamanızda kullandığınız yapı ile aynı olmalıdır (Google Home Grafiği'ndeki "ev" yapınızı temsil eder).

Cihazı eşleme

Cihazınızı eşlemek için ESP32 eşleme talimatlarını uygulayın.

Not: M5STACK kullanıyorsanız ekranı yanıp söndürüldükten sonra boş kalır. Bu nedenle, QR kodunu konsolda görünen URL'yi kullanarak görüntülemeniz gerekir. Dilerseniz manuel eşleme kodunu da girebilirsiniz.

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

Kullanıma alma işlemi başarısız oluyor

Daha fazla sorun giderme ipucu için Matter Sorun Giderme sayfasını inceleyin.

7. Cihazı kontrol etme

Matter uyumlu cihazınız başarıyla devreye alındı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 komutlar vererek cihaz durumunu değiştirmek için telefonunuzda veya hub'ınızda Google Asistan'ı kullanın.

Komutlarla ilgili daha fazla örnek 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 sohbet benzeri bir arayüzle cihazınıza ifadeler 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:

  • Gereksinimlerden çalışan duruma kadar bir Matter geliştirme ortamı yükleyin.
  • Matter cihazı oluşturup çalıştırma.
  • Cihazınızı Google Home'dan devreye alın ve kontrol edin.

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

  • Google Home'un Matter Primer (Matter Protokolü Temelleri) adlı dokümanı. Bu dokümanda, Matter protokolünün önemli kavramlarını ve ilkelerini öğrenebilirsiniz.
  • Connected Standard Alliance tarafından yayınlanan Matter Specification, Matter Device Library ve Matter Application Cluster Library.
  • Matter GitHub deposu