執行藍牙低功耗測試 - 免費RTOS

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

執行藍牙低功耗測試

本節說明如何使用 AWS IoT Device Tester for Free 設定和執行藍牙低功耗測試RTOS。

核心資格不需要進行藍牙測試。如果您不想使用免費RTOS藍牙支援測試裝置,可以略過此設定,請務必將 device.json 中的BLE功能設定為 No

必要條件

  • 請遵循中的說明進行微控制器板的第一次測試

  • Raspberry Pi 4B 或 3B +。(執行 Raspberry Pi BLE搭配應用程式所需)

  • Raspberry Pi 軟體使用的 MicroSD 卡和 SD 卡的轉接卡。

 

Raspberry Pi 設定

若要測試受測裝置BLE的功能 (DUT),您必須具有 Raspberry Pi 4B 或 3B + 型。

設定 Raspberry Pi 以執行BLE測試
  1. 下載其中一個自訂 Yocto 映像,其中包含執行測試所需的軟體。

    注意

    Yocto 映像只能用於使用 AWS IoT Device Tester 免費RTOS測試,不能用於任何其他用途。

  2. 將 yocto 映像刷到 Raspberry Pi 的 SD 卡上。

    1. 使用 SD 卡片撰寫工具 (例如 Etcher) 將下載的 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,然後將您的 Wi-Fi 登入資料新增到 Network 組態。

        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 網路可能需時一分鐘。

    5. 若為乙太網路連線,請執行 ifconfig eth0。若為 Wi-Fi 連線,請執行 ifconfig wlan0。請記下在命令輸出中顯示為 inet addr 的 IP 地址。在此程序稍後您將需要該 IP 地址。

    6. (選用) 測試SSH會使用 yocto 映像的預設憑證在 Raspberry Pi 上執行命令。為了提高安全性,建議您為 設定公有金鑰身分驗證,SSH並停用密碼型 SSH。

      1. 使用 OpenSSL ssh-keygen命令建立SSH金鑰。如果您的主機電腦上已有SSK金鑰對,最佳實務是建立新的金鑰對,允許 AWS IoT Device Tester FreeRTOS 登入 Raspberry Pi。

        注意

        Windows 不會隨附已安裝的SSH用戶端。如需如何在 Windows 上安裝SSH用戶端的相關資訊,請參閱下載SSH軟體

      2. ssh-keygen 命令會提示您提供金鑰對的存放名稱和路徑。根據預設,該金鑰對檔案會命名為 id_rsa (私有金鑰) 和 id_rsa.pub (公有金鑰)。在 macOS 和 Linux 上,這些檔案的預設位置是 ~/.ssh/。在 Windows 上,預設位置為 C:\Users\user-name

      3. 系統提示您輸入金鑰片語時,只要按 ENTER 繼續。

      4. 若要將SSH金鑰新增至 Raspberry Pi,以便 AWS IoT Device Tester 免費RTOS登入裝置,請使用主機電腦上的 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。如果您為公有金鑰提供不同的名稱,或將其存放在不同的位置,您必須使用 -i 選項指定SSH公有金鑰的完整路徑 ssh-copy-id(例如 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. 執行 以重新載入SSH伺服器/etc/init.d/sshd reload

    7. 建立 resource.json 檔案。

      1. 在您擷取 AWS IoT 裝置測試儀的目錄中,建立名為 的檔案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" } } }

免費RTOS裝置設定

在您的 device.json 檔案中將 BLE 功能設為 Yes。如果您是在藍牙測試可用之前從 開始device.json檔案,您需要將 功能BLE新增至features陣列:

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

執行BLE測試

在 中啟用 BLE功能後device.json,BLE測試會在您執行時執行,devicetester_[linux | mac | win_x86-64] run-suite而不指定群組 ID 。

如果您想要分別執行BLE測試,您可以指定 的群組 IDBLE:devicetester_[linux | mac | win_x86-64] run-suite --userdata path-to-userdata/userdata.json --group-id FullBLE

為了取得最可靠的效能,請將 Raspberry Pi 放在受測裝置附近 (DUT)。

測試疑難排解 BLE

確定您已遵循 微控制器板的第一次測試 中的步驟。如果 以外的測試BLE失敗,則問題很可能不是因為藍牙組態所致。