运行蓝牙低功耗测试 - 免费 RTOS

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

运行蓝牙低功耗测试

本节介绍如何使用 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测试
  1. 下载包含执行测试所需的软件的自定义 Yocto 映像之一。

    注意

    Yocto 图像只能用于免费测试RTOS, AWS IoT Device Tester 不得用于任何其他目的。

  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。记下 IP 地址,它在命令输出中显示为 inet addr。您在本过程的后面部分需要该 IP 地址。

    6. (可选)测试SSH使用 yocto 映像的默认凭据在 Raspberry Pi 上执行命令。为了提高安全性,我们建议您为基于密码设置公钥身份验证SSH并禁用基于密码SSH的身份验证。

      1. 使用 “打开” SSL ssh-keygen 命令创建SSH密钥。如果你的主机上已经有SSK密钥对,最好创建一个新的密钥对,让 AWS IoT Device Tester 免费RTOS用户登录你的 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 上,RTOS以便 AWS IoT Device Tester 免费登录设备,请使用主机上的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测试,可以为BLE:指定组 ID devicetester_[linux | mac | win_x86-64] run-suite --userdata path-to-userdata/userdata.json --group-id FullBLE

为了获得最可靠的性能,请将 Raspberry Pi 放在靠近被测设备的地方(DUT)。

BLE测试疑难解答

确保您已执行首次测试您的微控制器板中的步骤。如果以外的BLE测试失败,则问题很可能不是由蓝牙配置引起的。