本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
运行蓝牙低功耗测试
本节介绍如何使用 f AWS IoT Device Tester or 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 图像只能用于免费测试RTOS, AWS IoT Device Tester 不得用于任何其他目的。
-
将 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
。记下 IP 地址,它在命令输出中显示为inet addr
。您在本过程的后面部分需要该 IP 地址。 -
(可选)测试SSH使用 yocto 映像的默认凭据在 Raspberry Pi 上执行命令。为了提高安全性,我们建议您为基于密码设置公钥身份验证SSH并禁用基于密码SSH的身份验证。
-
使用 “打开” SSL
ssh-keygen
命令创建SSH密钥。如果你的主机上已经有SSK密钥对,最好创建一个新的密钥对,让 AWS IoT Device Tester 免费RTOS用户登录你的 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 上,RTOS以便 AWS IoT Device Tester 免费登录设备,请使用主机上的
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测试,可以为BLE:指定组 ID devicetester_
。[linux | mac | win_x86-64]
run-suite
--userdata path-to-userdata
/userdata.json --group-id
FullBLE
为了获得最可靠的性能,请将 Raspberry Pi 放在靠近被测设备的地方(DUT)。
BLE测试疑难解答
确保您已执行首次测试您的微控制器板中的步骤。如果以外的BLE测试失败,则问题很可能不是由蓝牙配置引起的。