1. Giới thiệu
Matter là một giao thức kết nối mang đến những cơ hội thú vị cho việc phát triển các thiết bị thông minh. Trong lớp học lập trình này, bạn sẽ tạo thiết bị Matter đầu tiên. Để tìm hiểu về Matter, hãy truy cập vào Trung tâm dành cho nhà phát triển Google Home: Matter hoặc trang web của Connectivity Standards Alliance.
Kiến thức bạn sẽ học được
- Cách tích hợp thiết bị thực với Matter.
- Cách thiết lập và điều khiển thiết bị theo chuẩn Matter bằng Google Home.
Bạn cần có
- Một trung tâm, tức là mọi thiết bị Google Nest có hỗ trợ Matter, chẳng hạn như Nest Hub (thế hệ thứ 2).
- Một bảng đánh giá Matter ESP32-DevkitC hoặc ESP32 M5STACK của Espressif Systems.
- Một máy tính chạy Linux.
- Kiến thức cơ bản về Linux.
2. Thiết lập môi trường
Xác định thiết bị nối tiếp
Bước đầu tiên trong việc thiết lập môi trường phát triển là xác định cổng nối tiếp mà thiết bị của bạn được kết nối. Thông tin này sẽ cho phép bạn lập trình và tương tác với bảng nhà phát triển.
- Kết nối bảng nhà phát triển với máy tính bằng cáp USB.
- Tìm thiết bị bảng dành cho nhà phát triển trong hệ thống tệp
/dev. Bạn có thể thu hẹp phạm vi tìm kiếm bằng cách chỉ định tiền tố thiết bị của bảng nhà phát triển. ESP32 của Espressif sử dụng/dev/ttyUSBx:user@host $ ls /dev/ttyUSB* /dev/ttyUSB0
Thiết lập thiết bị trung tâm
Thiết lập trung tâm bằng Tài khoản Google mà bạn dự định dùng cho lớp học lập trình này.
Thiết lập môi trường phát triển
Điều kiện tiên quyết
Những hướng dẫn này đã được kiểm thử trên Debian Linux và sẽ hoạt động trên hầu hết các bản phân phối Linux dựa trên Debian, bao gồm cả Ubuntu. Nếu bạn đang sử dụng một bản phân phối Linux khác, quy trình thiết lập phần phụ thuộc có thể khác với quy trình sau đây.
Cài đặt các phần phụ thuộc
Chạy lệnh sau để cài đặt các tệp nhị phân gói Linux bắt buộc có thể chưa được cài đặt:
$ 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
Thiết lập SDK
Để tiếp tục lớp học lập trình này, bạn cần có Espressif SDK (Khung phát triển IoT của Espressif hoặc "ESP-IDF").
- Tạo một thư mục để chứa ESP-IDF:
$ mkdir ~/esp-idf_tools
- Sao chép ESP-IDF từ GitHub vào thư mục này:
$ cd ~/esp-idf_tools $ git clone -b v4.4.3 --recursive https://github.com/espressif/esp-idf.git
- Hoàn tất quá trình cài đặt chuỗi công cụ:
$ cd ./esp-idf $ ./install.sh $ cd ~/
Thiết lập Matter SDK
- Sao chép kho lưu trữ Matter nguồn mở:
$ git clone https://github.com/project-chip/connectedhomeip.git $ cd ./connectedhomeip $ git fetch origin v1.0-branch $ git checkout FETCH_HEAD
- Tìm nạp các mô-đun con của kho lưu trữ:
$ ./scripts/checkout_submodules.py --shallow --platform esp32
- Khởi động môi trường phát triển Matter:
$ source ./scripts/bootstrap.sh
3. Google Home Developer Console
Google Home Developer Console là ứng dụng web nơi bạn quản lý các hoạt động tích hợp Matter với Google Home.
Mọi thiết bị Matter đã đạt chứng nhận Matter của Liên minh Tiêu chuẩn Kết nối (Liên minh) đều hoạt động trong hệ sinh thái Google Home. Các thiết bị đang trong quá trình phát triển và chưa được chứng nhận có thể được đưa vào hoạt động trong hệ sinh thái Google Home trong một số điều kiện nhất định – hãy xem phần Hạn chế về việc ghép nối để biết thêm thông tin.
Tạo dự án dành cho nhà phát triển
Bắt đầu bằng cách truy cập vào Google Home Developer Console:
- Nhấp vào Tạo dự án.
- Nhập tên riêng biệt cho dự án rồi nhấp vào Tạo dự án.

- Nhấp vào + Thêm mục liên kết tích hợp. Thao tác này sẽ đưa bạn đến màn hình Tài nguyên Matter. Tại đây, bạn có thể xem tài liệu phát triển Matter và đọc về một số công cụ.
- Khi bạn đã sẵn sàng tiếp tục, hãy nhấp vào Tiếp theo: Phát triển. Thao tác này sẽ hiển thị trang Danh sách kiểm tra Matter.
- Nhấp vào Tiếp theo: Thiết lập
- Trên trang Thiết lập, hãy nhập Tên sản phẩm.
- Nhấp vào Chọn loại thiết bị rồi chọn loại thiết bị trong trình đơn thả xuống (trong trường hợp này là
Light). - Trong Vendor ID (VID) (Mã nhận dạng nhà cung cấp), hãy chọn Test VID (VID thử nghiệm) rồi chọn 0xFFF1 trong trình đơn thả xuống Test VID (VID thử nghiệm). Trong Product ID (PID) (Mã sản phẩm), hãy nhập 0x8000 rồi nhấp vào Lưu và tiếp tục, sau đó nhấp vào Lưu trong trang tiếp theo. Hãy sử dụng chính xác các giá trị VID/PID này, các bước sau trong lớp học lập trình sẽ phụ thuộc vào các giá trị này.

- Giờ đây, bạn sẽ thấy chế độ tích hợp của mình trong phần Chế độ tích hợp Matter.
- Khởi động lại trung tâm để đảm bảo trung tâm nhận được cấu hình dự án tích hợp Matter mới nhất. Nếu phải thay đổi VID hoặc PID sau này, bạn cũng cần khởi động lại sau khi lưu dự án để thay đổi có hiệu lực. Hãy xem bài viết Khởi động lại thiết bị Google Nest hoặc Google Wifi để biết hướng dẫn từng bước về cách khởi động lại.
4. Tạo thiết bị
Tất cả ví dụ trong Matter đều nằm trong thư mục examples trong kho lưu trữ Github. Có một số mẫu, nhưng trọng tâm của chúng ta trong lớp học lập trình này là lighting-app.
Ví dụ này là một thiết bị đơn giản xuất hiện trong Google Home dưới dạng Đèn bật/tắt, phản hồi các lệnh Bật và Tắt. Việc điều khiển một đèn điện thực tế nằm ngoài phạm vi của lớp học lập trình này.
Định cấu hình bản dựng
- Định cấu hình SDK Matter và kích hoạt môi trường tạo bản dựng Matter:
$ cd ~/esp-idf_tools/esp-idf $ source export.sh $ cd ~/connectedhomeip $ source ./scripts/activate.sh
- Bật Ccache để tăng tốc quy trình xây dựng:
$ export IDF_CCACHE_ENABLE=1
- Di chuyển đến thư mục bản dựng
lighting-appESP32 và đặt kiến trúc mục tiêu:$ cd ./examples/lighting-app/esp32 $ idf.py set-target esp32
- Chạy tiện ích cấu hình:
$ idf.py menuconfig
- Chọn
Demo -> Device Typerồi đặtDevice TypethànhESP32-DevKitC. - Nhấn phím mũi tên trái để quay lại trình đơn cấp cao nhất.
- Chọn
Component config --->. - Chọn
CHIP Device Layer --->. - Chọn
Device Identification Options --->. - Đặt
Vendor IDthành VID do Alliance chỉ định hoặc VID kiểm thử. - Đặt
Product IDthành PID mà bạn đã đặt trên chế độ tích hợp Matter trong Google Home Developer Console. - Nhấn S để lưu.
- Nhấn phím Return để chấp nhận đường dẫn mặc định nơi cấu hình sẽ được lưu.
- Nhấn phím Return để đóng hộp thoại xác nhận lưu.
- Nhấn Q để thoát khỏi tiện ích định cấu hình.
- Chạy tiện ích cấu hình:
Chạy bản dựng
Gọi tập lệnh bản dựng:
idf.py build
Quá trình tạo bản dựng phải hoàn tất mà không có lỗi.
Lập trình thiết bị
- Kết nối bo mạch nhà phát triển với máy tính bằng cáp USB.
- Xoá mọi chương trình cơ sở trước đó trên thiết bị (nếu chỉ có một bảng nhà phát triển kết nối với máy tính, bạn có thể bỏ qua lựa chọn
-p {device}– thiết bị sẽ tự động được phát hiện):idf.py -p {device} erase-flash - Sao chép ứng dụng mới của bạn vào bảng nhà phát triển bằng cách:
idf.py -p {device} flash
Bạn có thể xem thêm thông tin về các lựa chọn nhấp nháy trên trang tài liệu esptool.py của Espressif.
5. Kết nối với thiết bị
- Mở một cửa sổ dòng lệnh.
- Ghi lại thư mục bạn đang ở, sau đó kết nối với thiết bị Matter mới bằng GNU
screen:$ screen -L {device} 115200 - Nếu bạn thấy một bảng điều khiển trống, hãy nhấn nút RESET (ĐẶT LẠI) để bắt đầu quá trình khởi động thiết bị.
6. Uỷ quyền thiết bị
Lưu ý: Bước này sẽ chỉ thành công nếu bạn đã thiết lập dự án trong Google Home Developer Console.
Nest Hub
Bạn phải có một thiết bị trung tâm để thiết lập thiết bị trên hệ sinh thái Matter. Đây là một thiết bị Google Nest (chẳng hạn như Nest Hub (thế hệ thứ 2)) hỗ trợ Matter và sẽ đóng vai trò là cả Bộ định tuyến biên cho các thiết bị hỗ trợ Thread và là đường dẫn thực hiện cục bộ để định tuyến các ý định Nhà thông minh.
Hãy tham khảo danh sách này để biết những trung tâm nào hỗ trợ Matter.
Trước khi bắt đầu quy trình thiết lập, hãy kiểm tra để đảm bảo rằng:
- Trung tâm của bạn được ghép nối với chính Tài khoản Google mà bạn đã dùng để đăng nhập vào Google Home Console.
- Trung tâm của bạn đang kết nối với cùng mạng Wi-Fi với máy tính mà bạn đang dùng để chạy Thiết bị Matter ảo.
- Trung tâm của bạn nằm trong cùng một cấu trúc mà bạn đang sử dụng trên Ứng dụng Google Home. ("Nhà" trong Google Home Graph đại diện cho cấu trúc của bạn).
Ghép nối thiết bị
Làm theo hướng dẫn ghép nối ESP32 để ghép nối thiết bị.
Lưu ý: Nếu đang dùng M5STACK, hãy lưu ý rằng màn hình của thiết bị này sẽ vẫn trống sau khi được nhấp nháy, vì vậy, bạn sẽ phải xem mã QR bằng URL xuất hiện trong bảng điều khiển. Hoặc bạn có thể nhập mã ghép nối theo cách thủ công.
Ví dụ về thông tin xuất trong bảng điều khiển cho thấy URL mã 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]]
Khắc phục sự cố
Không thiết lập được
- Đảm bảo rằng bạn đã tạo một dự án có tổ hợp VID/PID chính xác trong Google Home Console.
- Đảm bảo rằng bạn đã nhập đúng VID và PID trong cấu hình bản dựng.
- Đảm bảo bạn đã chọn đúng
Device Typetrong cấu hình bản dựng.
Để biết thêm các mẹo khắc phục sự cố, hãy xem trang Khắc phục sự cố về Matter.
7. Điều khiển thiết bị
Sau khi thiết bị tuân thủ Matter được thiết lập thành công và xuất hiện trong ứng dụng Google Home dưới dạng bóng đèn, bạn có thể thử điều khiển thiết bị bằng Trợ lý Google, ứng dụng Google Home hoặc Trình mô phỏng Trợ lý Google trong Tiện ích Google Home cho VS Code.
Trợ lý Google
Sử dụng Trợ lý Google trên điện thoại hoặc trung tâm để chuyển đổi trạng thái của thiết bị bằng lệnh thoại, chẳng hạn như nói "Ok Google, bật/tắt đèn".
Hãy xem phần Điều khiển thiết bị nhà thông minh bằng lệnh thoại trong bài viết Điều khiển thiết bị nhà thông minh được thêm vào ứng dụng Google Home để biết thêm ví dụ về các lệnh.
Ứng dụng Google Home
Bạn có thể nhấn vào nhãn Bật và Tắt bên cạnh biểu tượng bóng đèn xuất hiện trên Ứng dụng Google Home.
Hãy xem bài viết Điều khiển thiết bị bằng ứng dụng Google Home để biết thêm thông tin.
Trình mô phỏng Trợ lý Google
Trong Tiện ích Google Home cho VS Code, bằng cách sử dụng Trình mô phỏng Trợ lý Google, bạn có thể đưa ra câu lệnh cho thiết bị của mình bằng giao diện giống như trò chuyện.
8. Xin chúc mừng!
Bạn đã tạo và đưa vào sử dụng thành công thiết bị Matter đầu tiên. Tuyệt vời!
Trong lớp học lập trình này, bạn đã tìm hiểu cách:
- Cài đặt môi trường phát triển Matter từ các yêu cầu đến trạng thái hoạt động.
- Tạo và chạy một thiết bị Matter.
- Thiết lập và điều khiển thiết bị của bạn thông qua Google Home.
Để tìm hiểu thêm về Matter, hãy tham khảo các tài liệu sau:
- Matter Primer của Google Home, nơi bạn sẽ tìm hiểu các khái niệm và nguyên tắc quan trọng của giao thức Matter.
- Quy cách Matter, Thư viện thiết bị Matter và Thư viện cụm ứng dụng Matter do Liên minh Tiêu chuẩn Kết nối xuất bản.
- Kho lưu trữ Matter trên GitHub.