本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
執行藍牙低功耗測試
本節說明如何使用 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測試
-
下載其中一個自訂 Yocto 映像,其中包含執行測試所需的軟體。
注意
Yocto 映像只能用於使用 AWS IoT Device Tester 免費RTOS測試,不能用於任何其他用途。
-
將 yocto 映像刷到 Raspberry Pi 的 SD 卡上。
-
使用 SD 卡片撰寫工具 (例如 Etcher
) 將下載的
檔案刷到 SD 卡片上。由於作業系統映像較大,此步驟需要時間才能完成。從電腦退出 SD 卡,並將 microSD 卡插入 Raspberry Pi。image-name
.rpi-sd.img
-
-
設定您的 Raspberry Pi。
-
第一次啟動時,建議您將 Raspberry Pi 連接到螢幕、鍵盤和滑鼠。
-
將 Raspberry Pi 連接至微型USB電源。
-
使用預設的登入資料進行登入。使用者 ID 請輸入
root
。密碼請輸入idtafr
。 -
使用乙太網路或 Wi-Fi 連線將 Raspberry Pi 連接到您的網路。
-
若要透過 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
" } -
執行
ifup wlan0
以啟動 Wi-Fi 連線。連接到 Wi-Fi 網路可能需時一分鐘。
-
-
若為乙太網路連線,請執行
ifconfig eth0
。若為 Wi-Fi 連線,請執行ifconfig wlan0
。請記下在命令輸出中顯示為inet addr
的 IP 地址。在此程序稍後您將需要該 IP 地址。 -
(選用) 測試SSH會使用 yocto 映像的預設憑證在 Raspberry Pi 上執行命令。為了提高安全性,建議您為 設定公有金鑰身分驗證,SSH並停用密碼型 SSH。
-
使用 OpenSSL
ssh-keygen
命令建立SSH金鑰。如果您的主機電腦上已有SSK金鑰對,最佳實務是建立新的金鑰對,允許 AWS IoT Device Tester FreeRTOS 登入 Raspberry Pi。注意
Windows 不會隨附已安裝的SSH用戶端。如需如何在 Windows 上安裝SSH用戶端的相關資訊,請參閱下載SSH軟體
。 -
ssh-keygen
命令會提示您提供金鑰對的存放名稱和路徑。根據預設,該金鑰對檔案會命名為id_rsa
(私有金鑰) 和id_rsa.pub
(公有金鑰)。在 macOS 和 Linux 上,這些檔案的預設位置是~/.ssh/
。在 Windows 上,預設位置為C:\Users\
。user-name
-
系統提示您輸入金鑰片語時,只要按 ENTER 繼續。
-
若要將SSH金鑰新增至 Raspberry Pi,以便 AWS IoT Device Tester 免費RTOS登入裝置,請使用主機電腦上的
ssh-copy-id
命令。此命令會將您的公有金鑰新增至 Raspberry Pi 上的~/.ssh/authorized_keys
檔案。ssh-copy-id root@
raspberry-pi-ip-address
-
提示您輸入密碼時,請輸入
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。 -
若要測試公有金鑰身分驗證運作正常,請執行
ssh -i
。/my/path/myKey
root@raspberry-pi-device-ip
如果您未被提示輸入密碼,則您的公開金鑰身分驗證運作正常。
-
確認您可以使用公有金鑰登入 Raspberry Pi,然後停用密碼型 SSH。
-
在 Raspberry Pi 上編輯
/etc/ssh/sshd_config
檔案。 -
將
PasswordAuthentication
屬性設為no
。 -
儲存並關閉
sshd_config
檔案。 -
執行 以重新載入SSH伺服器
/etc/init.d/sshd reload
。
-
-
-
建立
resource.json
檔案。-
在您擷取 AWS IoT 裝置測試儀的目錄中,建立名為 的檔案
resource.json
。 -
將 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
" } } ] } ] -
如果您未選擇使用 的公有金鑰身分驗證SSH,請將以下內容新增至
resource.json
檔案的connectivity
區段。"connectivity": { "protocol": "ssh", "ip": "
rasp-pi-ip-address
", "auth": { "method": "password", "credentials": { "user": "root", "password": "idtafr" } } } -
(選用) 如果您選擇使用 的公有金鑰身分驗證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_
而不指定群組 ID 。 [linux | mac | win_x86-64]
run-suite
如果您想要分別執行BLE測試,您可以指定 的群組 IDBLE:devicetester_
。[linux | mac | win_x86-64]
run-suite --userdata path-to-userdata
/userdata.json --group-id FullBLE
為了取得最可靠的效能,請將 Raspberry Pi 放在受測裝置附近 (DUT)。
測試疑難排解 BLE
確定您已遵循 微控制器板的第一次測試 中的步驟。如果 以外的測試BLE失敗,則問題很可能不是因為藍牙組態所致。