Membuat perangkat Matter

1. Pengantar

Matter adalah protokol konektivitas yang menghadirkan peluang menarik untuk pengembangan perangkat smart. Dalam codelab ini, Anda akan mem-build perangkat Matter pertama Anda. Untuk mempelajari Matter, buka Pusat Developer Google Home: Matter atau situs Connectivity Standards Alliance.

Yang akan Anda pelajari

  • Cara mengintegrasikan perangkat fisik dengan Matter.
  • Cara mengaktifkan dan mengontrol perangkat Matter dengan Google Home.

Yang akan Anda butuhkan

2. Menyiapkan lingkungan Anda

Mengidentifikasi perangkat serial

Langkah pertama dalam menyiapkan lingkungan pengembangan Anda adalah menentukan port serial yang terhubung ke perangkat Anda. Informasi ini akan memungkinkan Anda memprogram dan berinteraksi dengan board developer Anda.

  1. Hubungkan board developer ke komputer Anda menggunakan kabel USB.
  2. Lihat sistem file /dev untuk menemukan perangkat board developer. Anda dapat mempersempit penelusuran dengan menentukan awalan perangkat board developer Anda. ESP32 Espressif menggunakan /dev/ttyUSBx:
    user@host $ ls /dev/ttyUSB*
    /dev/ttyUSB0
    

Menyiapkan hub Anda

Siapkan hub Anda menggunakan Akun Google yang sama yang ingin Anda gunakan untuk codelab ini.

Menyiapkan lingkungan pengembangan

Prasyarat

Petunjuk ini diuji di Debian Linux dan akan berfungsi di sebagian besar distribusi Linux berbasis Debian, termasuk Ubuntu. Jika Anda menggunakan distribusi Linux yang berbeda, prosedur penyiapan dependensi mungkin berbeda dengan yang berikut.

Menginstal dependensi

Jalankan perintah berikut untuk menginstal biner paket Linux yang diperlukan yang mungkin belum diinstal:

$ 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

Menyiapkan SDK

Untuk melanjutkan codelab ini, Anda memerlukan Espressif SDK (Espressif IoT Development Framework atau 'ESP-IDF').

  1. Buat direktori untuk memuat ESP-IDF:
    $ mkdir ~/esp-idf_tools
    
  2. Clone ESP-IDF dari GitHub ke direktori ini:
    $ cd ~/esp-idf_tools
    $ git clone -b v4.4.3 --recursive https://github.com/espressif/esp-idf.git
    
  3. Selesaikan penginstalan toolchain:
    $ cd ./esp-idf
    $ ./install.sh
    $ cd ~/
    

Menyiapkan Matter SDK

  1. Clone repositori Matter open source:
    $ git clone https://github.com/project-chip/connectedhomeip.git
    $ cd ./connectedhomeip
    $ git fetch origin v1.0-branch
    $ git checkout FETCH_HEAD
    
  2. Ambil submodule repositori:
    $ ./scripts/checkout_submodules.py --shallow --platform esp32
    
  3. Bootstrap lingkungan pengembangan Matter:
    $ source ./scripts/bootstrap.sh
    

3. Konsol Developer Google Home

Konsol Developer Google Home adalah aplikasi web tempat Anda mengelola integrasi Matter dengan Google Home.

Perangkat Matter yang telah lulus sertifikasi Matter Connectivity Standards Alliance (Alliance) berfungsi di ekosistem Google Home. Perangkat yang sedang dikembangkan dan belum disertifikasi dapat diaktifkan di ekosistem Google Home dalam kondisi tertentu. Lihat Batasan penyambungan untuk mengetahui informasi selengkapnya.

Membuat project developer

Mulailah dengan membuka Konsol Developer Google Home:

  1. Klik Create project.
  2. Masukkan nama project yang unik, lalu klik Create project. Dialog buat project baru
  3. Klik + Add integration, yang akan mengarahkan Anda ke layar Matter resources, tempat Anda dapat melihat dokumentasi pengembangan Matter dan membaca tentang beberapa alat.
  4. Jika sudah siap untuk melanjutkan, klik Next: Develop, yang akan menampilkan halaman Matter checklist.
  5. Klik Next: Setup
  6. Di halaman Setup, masukkan Product name.
  7. Klik Select device type dan pilih jenis perangkat dari menu drop-down (dalam hal ini, Light).
  8. Di Vendor ID (VID), pilih Test VID, lalu pilih 0xFFF1 dari menu drop-down Test VID. Di Product ID (PID), masukkan 0x8000, lalu klik Save &continue, lalu klik Save di halaman berikutnya. Gunakan nilai VID/PID yang sama persis ini, karena langkah-langkah codelab berikutnya bergantung pada nilai tersebut.
    Menyiapkan project
  9. Sekarang Anda akan melihat integrasi Anda di bagian Matter integrations.
  10. Mulai ulang hub Anda untuk memastikan hub menerima konfigurasi project integrasi Matter terbaru. Jika Anda harus mengubah VID atau PID nanti, Anda juga harus memulai ulang setelah menyimpan project agar perubahan diterapkan. Lihat Memulai ulang perangkat Google Nest atau Google Wifi untuk mengetahui petunjuk memulai ulang langkah demi langkah.

4. Mem-build perangkat

Semua contoh di Matter ditempatkan di folder examples di repositori GitHub. Ada beberapa contoh yang tersedia, tetapi fokus kita dalam codelab ini adalah pada lighting-app.

Contoh ini adalah perangkat sederhana yang muncul di Google Home sebagai Lampu On/Off, yang merespons perintah On dan Off. Membuatnya mengontrol lampu listrik sebenarnya berada di luar cakupan codelab ini.

Mengonfigurasi build

  1. Konfigurasi Matter SDK dan aktifkan lingkungan build Matter:
    $ cd ~/esp-idf_tools/esp-idf
    $ source export.sh
    $ cd ~/connectedhomeip
    $ source ./scripts/activate.sh
    
  2. Aktifkan Ccache, yang mempercepat proses build:
    $ export IDF_CCACHE_ENABLE=1
    
  3. Pindah ke direktori build ESP32 lighting-app dan tetapkan arsitektur target:
    $ cd ./examples/lighting-app/esp32
    $ idf.py set-target esp32
    
    1. Jalankan utilitas konfigurasi:
      $ idf.py menuconfig
      
    2. Pilih Demo -> Device Type dan tetapkan Device Type ke ESP32-DevKitC.
    3. Tekan tombol panah kiri untuk kembali ke menu tingkat atas.
    4. Pilih Component config --->.
    5. Pilih CHIP Device Layer --->.
    6. Pilih Device Identification Options --->.
    7. Tetapkan Vendor ID ke VID yang ditetapkan Alliance, atau VID pengujian.
    8. Tetapkan Product ID ke PID yang Anda tetapkan pada integrasi Matter di Konsol Developer Google Home.
    9. Tekan S untuk Menyimpan.
    10. Tekan Return untuk menerima jalur default tempat konfigurasi akan disimpan.
    11. Tekan Return untuk menutup dialog konfirmasi penyimpanan.
    12. Tekan Q untuk Keluar dari utilitas konfigurasi.

Menjalankan build

Panggil skrip build:

idf.py build

Build akan selesai tanpa error.

Memprogram perangkat

  1. Hubungkan board developer ke komputer Anda menggunakan kabel USB.
  2. Hapus firmware sebelumnya di perangkat (jika Anda hanya memiliki satu board developer yang terhubung ke komputer, Anda dapat menghapus opsi -p {device} - perangkat akan terdeteksi secara otomatis):
    idf.py -p {device} erase-flash
    
  3. Salin aplikasi baru Anda ke board developer dengan:
    idf.py -p {device} flash
    

Informasi selengkapnya tentang opsi flashing dapat ditemukan di halaman dokumentasi Espressif esptool.py.

5. Menghubungkan ke perangkat

  1. Buka jendela terminal.
  2. Catat direktori tempat Anda berada, lalu hubungkan ke perangkat Matter baru Anda menggunakan GNU screen:
    $ screen -L {device} 115200
    
  3. Jika Anda melihat konsol kosong, tekan tombol RESET untuk memulai proses booting perangkat.

6. Mengaktifkan perangkat

Catatan: Langkah ini hanya akan berhasil jika Anda telah menyiapkan project di Konsol Developer Google Home.

Nest Hub

Hub diperlukan untuk mengaktifkan perangkat Anda di fabric Matter. Ini adalah perangkat Google Nest, seperti Nest Hub (generasi ke-2), yang mendukung Matter dan akan berfungsi sebagai router pembatas untuk perangkat yang mendukung Thread dan sebagai jalur pemenuhan lokal untuk merutekan intent Smart Home.

Lihat daftar ini untuk melihat hub mana yang mendukung Matter.

Sebelum memulai proses aktivasi, pastikan:

  • Hub Anda dipasangkan dengan Akun Google yang sama yang Anda gunakan untuk login di Konsol Google Home.
  • Hub Anda berada di jaringan Wi-Fi yang sama dengan komputer yang Anda gunakan untuk menjalankan Perangkat Matter Virtual.
  • Hub Anda berada dalam struktur yang sama yang Anda gunakan di Aplikasi Google Home. ("Rumah" di Google Home Graph mewakili struktur Anda).

Menyambungkan perangkat

Ikuti petunjuk penyambungan ESP32 untuk menyambungkan perangkat Anda.

Catatan: Jika Anda menggunakan M5STACK, perhatikan bahwa layarnya akan tetap kosong setelah di-flash, sehingga Anda harus melihat kode QR menggunakan URL yang muncul di konsol. Atau, Anda dapat mengetik kode penyambungan manual.

Contoh output konsol yang menampilkan URL kode QR:

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]]

Pemecahan masalah

Aktivasi gagal

Untuk tips pemecahan masalah lainnya, lihat halaman Pemecahan Masalah Matter.

7. Mengontrol perangkat

Setelah perangkat yang kompatibel dengan Matter berhasil diaktifkan dan muncul di aplikasi Google Home sebagai bohlam, Anda dapat mencoba mengontrol perangkat menggunakan Asisten Google, aplikasi Google Home, atau Simulator Asisten Google di Google Home Extension untuk VS Code.

Asisten Google

Gunakan Asisten Google di ponsel atau hub Anda untuk mengalihkan status perangkat dari perintah suara, seperti mengucapkan "Ok Google, alihkan lampu saya".

Lihat bagian Mengontrol perangkat smart home dengan perintah suara di Mengontrol perangkat smart home yang ditambahkan ke aplikasi Google Home untuk mengetahui contoh perintah lainnya.

Aplikasi Google Home

Anda dapat mengetuk label On dan Off di samping ikon bohlam yang ditampilkan di Aplikasi Google Home.

Lihat Mengontrol perangkat dengan aplikasi Google Home untuk mengetahui informasi selengkapnya.

Simulator Asisten Google

Di Google Home Extension untuk VS Code, menggunakan Simulator Asisten Google, Anda dapat mengeluarkan ucapan ke perangkat menggunakan antarmuka seperti chat.

8. Selamat!

Anda telah berhasil membuat dan mengaktifkan perangkat Matter pertama Anda. Keren!

Dalam codelab ini, Anda telah mempelajari cara:

  • Menginstal lingkungan pengembangan Matter dari persyaratan hingga status kerja.
  • Mem-build dan menjalankan perangkat Matter.
  • Mengaktifkan dan mengontrol perangkat Anda dari Google Home.

Untuk mempelajari Matter lebih lanjut, lihat referensi berikut:

  • Matter Primer oleh Google Home, tempat Anda akan mempelajari konsep dan prinsip penting protokol Matter.
  • Spesifikasi Matter, Library Perangkat Matter, dan Library Cluster Aplikasi Matter, yang dipublikasikan oleh the Connected Standard Alliance.
  • Repositório GitHub Matter.