次の手順では、 照明アプリ Matter SDK のサンプルと Nordic の nRF52840 できます。
環境設定
以下の手順は、Docker ベースの nRF 接続 ツールチェーン。Docker を使用しない場合は、nRF のインストール手順 ホスト コンピュータでネイティブに接続すると、 北欧のサイトをご覧ください。
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 SDK の継続的インテグレーション
user@host> cat .github/workflows/examples-nrfconnect.yaml | grep chip-build
image: connectedhomeip/chip-build-nrf-platform:0.5.99
Nordic Board をパソコンに接続します。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 SDK フォルダと 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
SDK の初期化
コンテナで、Matter SDK と Nordic nRF52 ツールチェーンの環境変数を使用します。「 Matter SDK の初期化には通常、数分かかります。
$ 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
ビルドとフラッシュ
デバイスの VID と PID を設定します。
$ cd examples/lighting-app/nrfconnect
$ west build -b nrf52840dk_nrf52840 -t menuconfig
インタラクティブ メニューのオプション:
Modules --->
connectedhomeip --->
[*] Connected Home over IP protocol stack --->
Device vendor ID
(VID)とDevice product ID
(PID)を 10 進数で入力してください 使用します。[*] Enable OTA requestor
フラグが選択されていることを確認します。s キーを押して構成を保存し、s キーを押して確定してから、 q キーを押して
menuconfig
を終了します。
テスト証明書を設定する
Matter デバイステスト証明書を作成するの手順に沿って操作する 証明書、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 キーを押して構成を保存し、s キーを押して確定してから、 q キーを押して
menuconfig
を終了します。
新しい Matter OTA バンドル ファイルをビルドします。出力は Pod の
(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.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
Matter SDK はコンテナホストからマウントされるため、 OTA イメージはコンテナホストでも使用できます。OTA イメージの Google Home Developer Console するには、OTA アップロード 手順をご覧ください。
デバイスをコミッショニングして OTA プロセスを確認します。
ホストまたは
されます。minicom
や GNU screen
など、任意のターミナルを使用します。
$ minicom -c on -D /dev/ttyACM0 115200
デバイスのリセットボタンを押して起動時のログを確認します。
デバイスの出力に、設定した VID と PID、および 試運転の QR コードの URL:
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
ハブがオンラインになっていることを確認し、以下を使用してデバイスをコミッショニングします。 ログにあるリンクの QR コードを使用して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。
OTA ソフトウェア アップデートを検証する
デバイスのソフトウェア バージョンは、Google Home アプリ(GHA)を使用して確認できます。デバイスをコミッショニングした後、次の手順を行います。
- GHA のメイン画面でデバイスのタイルを長押しします
- 右上の アイコンをタップします
- [技術情報] をタップします。
- [Software version] フィールドを確認します。