Bluetooth Low Energy テストを実行する - FreeRTOS

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Bluetooth Low Energy テストを実行する

このセクションでは、 AWS IoT Device Tester for FreeRTOS を使用して Bluetooth Low Energy テストをセットアップして実行する方法について説明します。

コア資格には Bluetooth テストの必要はありません。FreeRTOS Bluetooth サポートを使用してデバイスをテストしない場合はこのセットアップをスキップできますが、device.json の BLE 機能を No に設定していることを確認してください。

前提条件

  • マイクロコントローラーボードの最初のテスト」の手順に従います。

  • Raspberry Pi 4B または 3B+。(Raspberry Pi BLE コンパニオンアプリケーションを実行するために必要)

  • Raspberry Pi のソフトウェア用のマイクロ SD カードおよび SD カードアダプタ。

 

Raspberry Pi のセットアップ

テスト対象デバイス (DUT) の BLE 機能をテストするには、Raspberry Pi Model 4B または 3B+ を保有している必要があります。

BLE テストを実行するように Raspberry Pi をセットアップするには
  1. テストの実行に必要なソフトウェアが含まれているカスタム Yocto イメージのいずれかをダウンロードします。

    注記

    Yocto イメージは AWS IoT Device Tester 、 for FreeRTOS でのテストにのみ使用し、他の目的では使用しないでください。

  2. Raspberry Pi 用の SD カードに yocto イメージをフラッシュします。

    1. Etcher などの SD カード書き込みツールを使用して、ダウンロードした image-name.rpi-sd.img ファイルを SD カードにフラッシュします。オペレーティングシステムイメージが大きいため、このステップに時間がかかることがあります。次に、SD カードをコンピュータから取り出し、microSD カードを Raspberry Pi に挿入します。

  3. Raspberry Pi を設定します。

    1. 最初の起動では、Raspberry Pi をモニター、キーボード、およびマウスに接続することをお勧めします。

    2. Raspberry Pi をマイクロ USB 電源に接続します。

    3. デフォルトの認証情報を使用してサインインします。ユーザー ID には root と入力します。パスワードには idtafr と入力します。

    4. イーサネットまたは Wi-Fi 接続を使用して、Raspberry Pi をネットワークに接続します。

      1. Wi-Fi 経由で Raspberry Pi を接続するには、Raspberry Pi 上で /etc/wpa_supplicant.conf を開き、Network 接続に Wi-Fi 接続を追加します。

        ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0 update_config=1 network={ scan_ssid=1 ssid="your-wifi-ssid" psk="your-wifi-password" }
      2. ifup wlan0 を実行して Wi-Fi 接続を開始します。Wi-Fi ネットワークに接続するには 1 分かかる場合があります。

    5. イーサネット接続の場合は、ifconfig eth0 を実行します。Wi-Fi 接続の場合は、ifconfig wlan0 を実行します。コマンドの出力に inet addr として表示される IP アドレスを書き留めます。この手順の後半でこの IP アドレスが必要になります。

    6. (オプション) このテストは、yocto イメージ用のデフォルトの認証情報を使用して SSH を介して Raspberry Pi 上でコマンドを実行します。より高度なセキュリティには、SSH にパブリックキー認証を設定し、パスワードベースの SSH を無効にすることが推奨されます。

      1. OpenSSL ssh-keygen コマンドを使用して SSH キーを作成します。ホストコンピュータに SSK キーペアがすでにある場合は、 AWS IoT Device Tester FreeRTOS が Raspberry Pi にサインインできるように新しいキーペアを作成することをお勧めします。

        注記

        Windows にはインストール済みの SSH クライアントがありません。Windows に SSH クライアントをインストールする方法については、「Windows に SSH ソフトウェアをダウンロードする」を参照してください。

      2. ssh-keygen コマンドは、キーペアを保存する名前とパスの入力を求めます。デフォルトでは、キーペアファイルの名前は id_rsa (プライベートキー) と id_rsa.pub (パブリックキー) です。macOS および Linux の場合、これらのファイルのデフォルトの場所は ~/.ssh/ です。Windows の場合、デフォルトの場所は C:\Users\user-name です。

      3. キーフレーズの入力を求められたら、単にエンターキーを押します。

      4. AWS IoT Device Tester for FreeRTOS がデバイスにサインインできるように Raspberry Pi に SSH キーを追加するには、ホストコンピュータから ssh-copy-id コマンドを使用します。このコマンドは、Raspberry Pi の ~/.ssh/authorized_keys ファイルにパブリックキーを追加します。

        ssh-copy-id root@raspberry-pi-ip-address

      5. パスワードの入力を求められたら、「idtafr」と入力します。これは yocto イメージのデフォルトのパスワードです。

        注記

        ssh-copy-id コマンドが引き受けるパブリックキーの名前は id_rsa.pub です。macOS および Linux では、デフォルトの場所は ~/.ssh/ になります。Windows の場合、デフォルトの場所は C:\Users\user-name\.ssh です。パブリックキーに別の名前や別の保存先を指定した場合は、ssh-copy-id-i オプションを使用し、SSH 公開鍵への完全修飾パス (ssh-copy-id -i ~/my/path/myKey.pub など) を指定する必要があります。SSH キーの作成とパブリックキーのコピーの詳細については、「SSH-COPY-ID」を参照してください。

      6. パブリックキー認証が動作していることをテストするには、ssh -i /my/path/myKey root@raspberry-pi-device-ip を実行します。

        パスワードの入力を求められない場合、パブリックキー認証が動作しています。

      7. パブリックキーを使用して Raspberry Pi にサインインできることを確認したら、パスワードベースの SSH を無効にします。

        1. Raspberry Pi で /etc/ssh/sshd_config ファイルを編集します。

        2. PasswordAuthentication 属性を no に設定します。

        3. sshd_config ファイルを保存して閉じます。

        4. /etc/init.d/sshd reload を実行して SSH サーバーを再ロードします。

    7. resource.json ファイルを作成します。

      1. AWS IoT Device Tester を抽出したディレクトリに、 という名前のファイルを作成しますresource.json

      2. Raspberry Pi に関する次の情報をこのファイルに追加し、rasp-pi-ip-address を Raspberry Pi の IP アドレスで置き換えます。

        [ { "id": "ble-test-raspberry-pi", "features": [ {"name":"ble", "version":"4.2"} ], "devices": [ { "id": "ble-test-raspberry-pi-1", "connectivity": { "protocol": "ssh", "ip": "rasp-pi-ip-address" } } ] } ]
      3. SSH にパブリックキー認証の使用を選択しなかった場合、resource.json ファイルの connectivity セクションに以下を追加します。

        "connectivity": { "protocol": "ssh", "ip": "rasp-pi-ip-address", "auth": { "method": "password", "credentials": { "user": "root", "password": "idtafr" } } }
      4. (オプション) SSH にパブリックキーの使用を選択した場合、resource.json ファイルの connectivity セクションに以下を追加します。

        "connectivity": { "protocol": "ssh", "ip": "rasp-pi-ip-address", "auth": { "method": "pki", "credentials": { "user": "root", "privKeyPath": "location-of-private-key" } } }

FreeRTOS デバイスのセットアップ

device.json ファイルで、BLE 機能を Yes に設定します。Bluetooth テストが利用可能になる前に device.json ファイルを開始した場合、BLE 用の機能を features 配列に追加する必要があります。

{ ... "features": [ { "name": "BLE", "value": "Yes" }, ... }

BLE テストを実行する

device.json で BLE 機能を有効にすると、グループ ID を指定せずに devicetester_[linux | mac | win_x86-64] run-suite を実行したときに BLE テストが実行されます。

BLE テストを個別に実行する場合、次のように BLE の グループ ID を指定できます。devicetester_[linux | mac | win_x86-64] run-suite --userdata path-to-userdata/userdata.json --group-id FullBLE

より高い信頼性のあるパフォーマンスには、Raspberry Pi をテスト対象のデバイス (DUT) に近い位置に配置します。

BLE テストのトラブルシューティング

マイクロコントローラーボードの最初のテスト」のステップを実行したことを確認します。BLE 以外のテストが失敗した場合、Bluetooth 設定がこの問題の原因である可能性はほとんどありません。