دستورالعملهای زیر از مثال برنامه روشنایی از کیت توسعه نرمافزار Matter بههمراه برد توسعه Nordic nRF52840 استفاده میکند.
راهاندازی محیط
این دستورالعملها براساس نصب زنجیره ابزار nRF Connect مبتنی بر Docker است. اگر ترجیح میدهید از Docker استفاده نکنید، دستورالعملهای نصب nRF Connect بهصورت بومی در رایانه میزبان در سایت Nordic موجود است.
بررسی Matter SDK
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
تصویر Docker صحیح را برای استفاده بررسی کنید. از یکی از تصاویر ایجادشده برای ادغام مداوم کیت توسعه نرمافزار Matter استفاده کنید.
user@host> cat .github/workflows/examples-nrfconnect.yaml | grep chip-build
image: connectedhomeip/chip-build-nrf-platform:0.5.99
برد Nordic را به رایانه وصل کنید. شمارش USB واسط سریال آن را بررسی کنید:
در macOS:
user@host> ls /dev/tty.usbmodem*
/dev/tty.usbmodem0123456789000
در Linux، یکی از کارهای زیر را انجام دهید:
user@host> ls /dev/tty*AC*
/dev/ttyACM0
یا
user@host> ls /dev/tty*USB*
/dev/ttyUSB0
بااستفاده از اطلاعات جمعآوریشده در فرمان قبلی، محفظهای را اجرا کنید. پرچمها را برای سوار کردن پوشه کیت توسعه نرمافزار Matter میزبان و میانای سریال USB در محفظه ارسال کنید.
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
متوقف و راهاندازی کردن محفظه Matter Docker
هرزمان که فرمان docker run را اجرا کنید، محفظه جدیدی با تصویر مشخصشده ایجاد خواهید کرد. وقتی این کار را انجام میدهید، دادههای قدیمی شما که در نمونه محفظه قبلی ذخیره شده بود ازدست میرود. گاهی اوقات این همان چیزی است که میخواهید اتفاق بیفتد، زیرا به شما امکان میدهد با نصب جدید شروع کنید. اما در این مثال، احتمالاً میخواهید کار و پیکربندی محیط خود را بین جلسات ذخیره کنید.
user@host> docker stop container_name
وقتی آماده اجرای مجدد بودید، محفظه را راهاندازی کنید و پنجره ترمینال را باز کنید:
user@host> docker start container_name
user@host> docker exec -it container_name /bin/bash
میتوانید جلسههای پایانه بیشتری را با این دستور در محفظه خود باز کنید:
user@host> docker exec -it container_name /bin/bash
یا جلسه ریشه را بااستفاده از این مورد شروع کنید:
user@host> docker exec -u 0 -it container_name /bin/bash
مقداردهی اولیه کیت توسعه نرمافزار
در محفظه، کیت توسعه نرمافزار Matter و متغیرهای محیطی را برای زنجیره ابزار Nordic nRF52 مقداردهی اولیه کنید. مقداردهی اولیه کیت توسعه نرمافزار Matter اغلب چند دقیقه طول میکشد.
cd /workspacegit submodule update --init --recursivesource ./scripts/bootstrap.shsource ./scripts/activate.shexport ZEPHYR_BASE=/opt/NordicSemiconductor/nrfconnect/zephyrexport 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ساختن و فلش کردن
VID و PID را برای دستگاه پیکربندی کنید:
cd examples/lighting-app/nrfconnectwest build -b nrf52840dk_nrf52840 -t menuconfigدر گزینههای منو تعاملی:
Modules --->connectedhomeip --->[*] Connected Home over IP protocol stack --->Device vendor ID(VID) وDevice product ID(PID) را در قالب عدد صحیح مبنای ۱۰ وارد کنید.مطمئن شوید پرچم
[*] Enable OTA requestorانتخاب شده باشد.برای ذخیره کردن پیکربندی، کلید s را فشار دهید، برای تأیید کردن، کلید Enter را فشار دهید، سپس برای خروج از
menuconfig، کلید q را فشار دهید.
راهاندازی گواهیهای آزمایشی
مراحل ایجاد گواهیهای آزمایشی دستگاه Matter را دنبال کنید تا گواهیهای CD، DAC، و PAI را ایجاد کنید.
دستگاهتان را بسازید
west build -b nrf52840dk_nrf52840فلش کردن دستگاه
این کار در رایانه میزبان انجام میشود، نه در محفظه Docker.
اگر ازقبل ابزارهای خط فرمان nRFConnect را ندارید، آنها را بارگیری و نصب کنید.
user@host> nrfjprog --program build/zephyr/merged.hex --chiperase -f NRF52
اتصال پایانه به دستگاهتان را در میزبان یا در محفظه باز کنید. از ابزار پایانه دلخواهتان مثل minicom یا GNU screen استفاده کنید.
user@host> minicom -c on -D /dev/ttyACM0 115200
user@host> screen /dev/ttyACM0 115200
ایجاد و بارگذاری تصویر OTA
پساز فلش کردن دستگاه، تنظیمات ساخت را یکبار دیگر تغییر دهید تا تصویر OTA با نسخه نرمافزار دستگاه افزایشی ایجاد شود.
راهاندازی Zephyr menuconfig:
west build -b nrf52840dk_nrf52840 -t menuconfigدر گزینههای منو تعاملی:
Modules -->connectedhomeip -->Connected Home over IP protocol stack -->Device Software Versionرا به2تغییر دهید.Device Software Version Stringرا بهprerelease-2تغییر دهید.برای ذخیره کردن پیکربندی، کلید s را فشار دهید، برای تأیید کردن، کلید Enter را فشار دهید، سپس برای خروج از
menuconfig، کلید q را فشار دهید.
فایل بسته OTA جدید Matter را بسازید. برونداد در 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ویژگیهای فایل بسته OTA Matter تولیدشده را تأیید کنید:
/workspace/examples/lighting-app/nrfconnect# /workspace/src/app/ota_image_tool.py show firmware-ota-update-test.binMagic: 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
چون کیت توسعه نرمافزار Matter از میزبان محفظه شما نصب شده است، «تصویر OTA» نیز در میزبان محفظه شما دردسترس است. با دنبال کردن دستورالعملهای بارگذاری OTA، تصویر OTA را در Google Home Developer Console بارگذاری کنید.
دستگاه را راهاندازی کنید و فرایند OTA را مشاهده کنید.
اتصال پایانه به دستگاه را در میزبان یا در محفظه باز کنید. از پایانه دلخواهتان مثل minicom یا GNU screen استفاده کنید:
minicom -c on -D /dev/ttyACM0 115200دکمه بازنشانی دستگاه را فشار دهید تا گزارشهای مربوط به راهاندازی را ببینید.
در خروجی دستگاه، باید VID و PID تنظیمشده و همچنین نشانی وب رمزینه پاسخسریع راهاندازی را ببینید:
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
مطمئن شوید «کانون» شما آنلاین است و دستگاه را بااستفاده از رمزینه پاسخسریع موجود در پیوند یافتشده در گزارش، با Google Home app (GHA) راهاندازی کنید.
پساز راهاندازی، اجازه دهید دستگاه فعالیتهایش را ثبت کند.
باید نوشتار زیر را در گزارش دستگاه ببینید:
/* 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
پساز اعمال تصویر، دستگاه بازراهاندازی میشود. پساز بازراهاندازی، زمان ترجمه تصویر باید با زمان ترجمه تصویری که در Developer Console بارگذاری شده است مطابقت داشته باشد.
اعتبارسنجی بهروزرسانی نرمافزار ازطریق هوا
نسخه نرمافزار دستگاه را میتوان بااستفاده از برنامه Google Home بررسی کرد. وقتی دستگاهی راهاندازی شد، این رویهها را دنبال کنید:
- کاشی دستگاه را در صفحه اصلی GHA طولانی فشار دهید
- روی نماد در بالا سمت چپ تکضرب بزنید
- روی اطلاعات فنی تکضرب بزنید
- فیلد نسخه نرمافزار را بررسی کنید