در دستورالعملهای زیر از برنامه روشنایی مثال از Matter کیت توسعه نرمافزار همراه با برد توسعه Nordic nRF52840 استفاده شده است.
راهاندازی محیط
این دستورالعملها براساس نصب مبتنی بر Docker از nRF Connect زنجیره ابزار است. اگر ترجیح میدهید از Docker استفاده نکنید، دستورالعملهای نصب nRF Connect بهصورت بومی در رایانه میزبان در سایت Nordic موجود است.
با «کیت توسعه نرمافزار 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
تصویر 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 container
هرگاه فرمان 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 SDK اغلب چند دقیقه طول میکشد.
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 را فشار دهید.
راهاندازی گواهینامههای آزمایشی
برای ایجاد گواهینامههای CD، DAC، و PAI، مراحل ایجاد گواهینامههای آزمایش دستگاه Matter را دنبال کنید.
ساختن دستگاه
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ویژگیهای فایل بسته Matter OTA تولیدشده را تأیید کنید:
/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 در 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) بررسی کرد. پساز راهاندازی دستگاه، این رویهها را دنبال کنید:
- کاشی دستگاه را در صفحه اصلی GHA طولانی فشار دهید
- روی نماد در بالا سمت چپ تکضرب بزنید
- روی اطلاعات فنی تکضرب بزنید
- فیلد نسخه نرمافزار را بررسی کنید