Các hướng dẫn sau đây sử dụng ứng dụng chiếu sáng ví dụ từ SDK Matter cùng với nRF52840 của Bắc Âu ban phát triển của chúng tôi.
Thiết lập môi trường
Những hướng dẫn này dựa trên việc cài đặt Kết nối nRF chuỗi công cụ. Nếu bạn không muốn sử dụng Docker, hướng dẫn cài đặt nRF Kết nối vốn có trên máy chủ trên trang web Bắc Âu.
Khám phá SDK Matter
user@host> mkdir otaprep
user@host> cd otaprep
user@host> git clone https://github.com/project-chip/connectedhomeip.git
user@host> cd connectedhomeip/
user@host> git fetch origin v1.0-branch
user@host> git checkout FETCH_HEAD
Kiểm tra đúng hình ảnh Docker sẽ được sử dụng. Sử dụng một trong các hình ảnh đã tạo cho tính năng tích hợp liên tục SDK Matter.
user@host> cat .github/workflows/examples-nrfconnect.yaml | grep chip-build
image: connectedhomeip/chip-build-nrf-platform:0.5.99
Kết nối bảng Bắc Âu với máy tính. Kiểm tra bảng liệt kê USB của giao diện nối tiếp của nó:
Trên MacOS:
user@host> ls /dev/tty.usbmodem*
/dev/tty.usbmodem0123456789000
Trên Linux, hãy thực hiện một trong hai cách sau:
user@host> ls /dev/tty*AC*
/dev/ttyACM0
hoặc
user@host> ls /dev/tty*USB*
/dev/ttyUSB0
Chạy một vùng chứa bằng cách sử dụng thông tin thu thập được trong lệnh trước đó. Bỏ qua cờ để gắn thư mục SDK Matter lưu trữ và USB giao diện nối tiếp vào vùng chứa.
user@host> docker run --name container_name -it --user $(id -u):$(id -g) --mount source=$(pwd),target=/workspace,type=bind connectedhomeip/chip-build-nrf-platform:0.5.99 /bin/bash
Dừng và khởi động vùng chứa Matter Docker
Mỗi khi chạy lệnh docker run
, bạn sẽ tạo một vùng chứa mới chứa
hình ảnh được chỉ định. Khi bạn làm như vậy, dữ liệu cũ của bạn, vốn được lưu trên
thực thể vùng chứa trước đó bị mất. Đôi khi, đây là điều bạn muốn
vì giúp bạn bắt đầu lại từ một bản cài đặt mới. Nhưng trong phần này
ví dụ: bạn có nhiều khả năng muốn lưu cấu hình công việc và môi trường của mình
giữa các phiên.
user@host> docker stop container_name
Khi bạn đã sẵn sàng chạy lại, hãy khởi động vùng chứa và mở một cửa sổ dòng lệnh thời lượng:
user@host> docker start container_name
user@host> docker exec -it container_name /bin/bash
Bạn có thể mở thêm các phiên hoạt động đầu cuối cho vùng chứa của mình bằng:
user@host> docker exec -it container_name /bin/bash
Hoặc bắt đầu phiên gốc bằng cách sử dụng:
user@host> docker exec -u 0 -it container_name /bin/bash
Khởi chạy SDK
Trong vùng chứa, hãy khởi chạy SDK Matter và các biến môi trường cho chuỗi công cụ Nordic nRF52. Chiến lược phát hành đĩa đơn Matter Quá trình khởi chạy SDK thường mất vài phút.
$ cd /workspace
$ git submodule update --init --recursive
$ source ./scripts/bootstrap.sh
$ source ./scripts/activate.sh
$ export ZEPHYR_BASE=/opt/NordicSemiconductor/nrfconnect/zephyr
$ export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"
$ scripts/run_in_build_env.sh "python3 scripts/setup/nrfconnect/update_ncs.py --update --shallow"
$ source /opt/NordicSemiconductor/nrfconnect/zephyr/zephyr-env.sh
Bản dựng và Flash
Định cấu hình VID và PID cho thiết bị:
$ cd examples/lighting-app/nrfconnect
$ west build -b nrf52840dk_nrf52840 -t menuconfig
Trong các tuỳ chọn trên trình đơn tương tác:
Modules --->
connectedhomeip --->
[*] Connected Home over IP protocol stack --->
Nhập
Device vendor ID
(VID) vàDevice product ID
(PID) trong base-10 định dạng số nguyên.Đảm bảo bạn đã chọn cờ
[*] Enable OTA requestor
.Nhấn phím s để lưu cấu hình, nhấn phím Enter để xác nhận, sau đó q để thoát khỏi
menuconfig
.
Thiết lập chứng chỉ kiểm thử
Làm theo các bước trong bài viết Tạo chứng chỉ kiểm tra thiết bị theo chuẩn Matter để tạo chứng chỉ CD, DAC và PAI.
Tạo thiết bị
$ west build -b nrf52840dk_nrf52840
Cài đặt ROM thiết bị
Bạn thực hiện việc này trên máy chủ, không phải trong vùng chứa Docker.
Nếu bạn chưa có công cụ dòng lệnh nRFConnect, hãy tải xuống và cài đặt phần mềm.
user@host> nrfjprog --program build/zephyr/merged.hex --chiperase -f NRF52
Mở một kết nối thiết bị đầu cuối với thiết bị của bạn trên máy chủ hoặc trên
vùng chứa. Sử dụng công cụ dòng lệnh mà bạn yêu thích như minicom
hoặc GNU screen
.
user@host> minicom -c on -D /dev/ttyACM0 115200
user@host> screen /dev/ttyACM0 115200
Tạo và tải hình ảnh qua mạng không dây (OTA) lên
Sau khi cài đặt ROM thiết bị, hãy thay đổi chế độ cài đặt bản dựng một lần nữa để tạo hình ảnh OTA có phiên bản phần mềm tăng dần trên thiết bị.
Chạy Zephyr menuconfig
:
$ west build -b nrf52840dk_nrf52840 -t menuconfig
Trong các tuỳ chọn trên trình đơn tương tác:
Modules -->
connectedhomeip -->
Connected Home over IP protocol stack -->
Thay đổi
Device Software Version
thành2
.Thay đổi
Device Software Version String
thànhprerelease-2
.Nhấn phím s để lưu cấu hình, nhấn phím Enter để xác nhận, sau đó q để thoát khỏi
menuconfig
.
Tạo tệp gói OTA Matter mới. Dữ liệu đầu ra đã được đặt
trong build/zephyr/zephyr.bin
.
$ /workspace/src/app/ota_image_tool.py create -v hex_VID -p hex_PID -vn version_no -vs version_string path_to_binary -da digest_algorithm path_to_ota_file
Xác nhận các thuộc tính của gói OTA Matter đã tạo tệp:
/workspace/examples/lighting-app/nrfconnect# /workspace/src/app/ota_image_tool.py show firmware-ota-update-test.bin
Magic: 1beef11e
Total Size: 951784
Header Size: 72
Header TLV:
[0] Vendor Id: XXXXX (0xXXXX)
[1] Product Id: 32768 (0x8000)
[2] Version: 2 (0x2)
[3] Version String: prerelease-2
[4] Payload Size: 951696 (0xe8590)
[8] Digest Type: 1 (0x1)
[9] Digest: 75f2e8b0c8e922b8bb3841504190bcdd83533e936a284c7254d29327d605c930
Vì SDK Matter được gắn kết từ máy chủ vùng chứa của bạn, hình ảnh OTA cũng có sẵn trên máy chủ lưu trữ vùng chứa của bạn. Tải hình ảnh OTA lên Google Home Developer Console bằng cách theo dõi nội dung tải lên qua mạng không dây hướng dẫn.
Chạy thiết bị và quan sát quy trình OTA.
Mở một kết nối dòng lệnh với thiết bị trên máy chủ hoặc trên
vùng chứa. Sử dụng thiết bị đầu cuối yêu thích của bạn như minicom
hoặc GNU screen
:
$ minicom -c on -D /dev/ttyACM0 115200
Nhấn nút đặt lại của thiết bị để xem nhật ký từ lúc khởi động.
Trong dữ liệu đầu ra của thiết bị, bạn sẽ thấy VID và PID mà bạn đặt, cũng như URL của mã QR lắp đặt:
I: nRF5 802154 radio initialized
I: 4 Sectors of 4096 bytes
(...)
I: 681 [SVR]Server Listening...
I: 684 [DL]Device Configuration:
I: 687 [DL] Serial Number: 11223344556677889900
I: 692 [DL] Vendor Id: XXXXX (0xXXXX)
I: 695 [DL] Product Id: XXXXX (0xXXXX)
I: 699 [DL] Hardware Version: 0
I: 702 [DL] Setup Pin Code (0 for UNKNOWN/ERROR): 20202021
I: 708 [DL] Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00)
I: 714 [DL] Manufacturing Date: (not set)
I: 718 [DL] Device Type: 65535 (0xFFFF)
I: 723 [SVR]SetupQRCode: [MT:6FCJ142C00KA0648G00]
I: 727 [SVR]Copy/paste the below URL in a browser to see the QR Code:
I: 733 [SVR]https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%000000000000000000000
I: 742 [SVR]Manual pairing code: [30900112302]
I: 747 [DL]CHIP task running
I: 752 [DL]CHIPoBLE advertising started
I: 757 [DL]NFC Tag emulation started
Đảm bảo Thiết bị trung tâm của bạn có kết nối mạng và vận hành thiết bị bằng Google Home app (GHA) bằng mã QR qua đường liên kết có trong nhật ký.
Để thiết bị ghi nhật ký các hoạt động sau khi chạy.
Bạn sẽ thấy nội dung sau trong nhật ký thiết bị:
/* Hub OTA provider identification */
I: 69642 [SWU]OTA Requestor received AnnounceOTAProvider
D: 69647 [SWU] FabricIndex: 1
D: 69649 [SWU] ProviderNodeID: 0x00000000XXXXXXXX
D: 69654 [SWU] VendorID: 0x6006
D: 69657 [SWU] AnnouncementReason: 0
D: 69660 [SWU] Endpoint: 2
...
D: 69799 [SWU]Establishing session to provider node ID 0x00000000FC843D94 on fabric index 1
...
D: 262265 [SWU]QueryImageResponse:
D: 262268 [SWU] status: 0
D: 262271 [SWU] imageURI: bdx://00000000FC843D94/37f09fd6-0000-0000-0000-000000000000
D: 262278 [SWU] softwareVersion: 2
D: 262281 [SWU] softwareVersionString: 2
D: 262285 [SWU] updateToken: 36
D: 262288 [SWU] userConsentNeeded: 0
D: 262292 [SWU]Update available from version 0 to 2
...
D: 262372 [SWU]Establishing session to provider node ID 0x00000000FC843D94 on fabric index 1
...
D: 262409 [SWU]BDX::SendMessage
Sau khi áp dụng hình ảnh, thiết bị sẽ khởi động lại. Sau khi khởi động lại, thời gian biên dịch của hình ảnh phải khớp với hình ảnh được tải lên Developer Console.
Xác thực bản cập nhật phần mềm OTA
Bạn có thể dùng ứng dụng Google Home (GHA) để kiểm tra phiên bản phần mềm của thiết bị. Sau khi thiết bị được đưa vào hoạt động, hãy làm theo các quy trình sau:
- Nhấn và giữ ô thiết bị trên màn hình chính của GHA
- Nhấn vào biểu tượng ở trên cùng bên phải
- Nhấn vào Thông tin kỹ thuật
- Kiểm tra trường Phiên bản phần mềm