运行低功耗蓝牙功能测试 - FreeRTOS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

运行低功耗蓝牙功能测试

本节介绍如何使用以下方式设置和运行蓝牙测试。Amazon IoT Device Tester适用于 FreeRTOS。核心资格认证不需要蓝牙测试。如果您不想使用 FreeRTOS 蓝牙支持测试您的设备,则可跳过此设置,确保将 device.json 中的 BLE 功能设置为。No.

先决条件

  • 按照中的说明进行操作准备首次测试微控制器主板

  • 一个 Raspberry Pi 4B 或 3B+。(运行 Raspberry Pi BLE 配套应用程序时必需)

  • 一个适用于 Raspberry Pi 软件的 microSD 卡和 SD 卡适配器。

 

Raspberry Pi 设置

要测试受测设备 (DUT) 的 BLE 功能,您必须具有 Raspberry Pi Model 4B 或 3B+。

设置 Raspberry Pi 以运行 BLE 测试

  1. 下载包含执行测试所需软件的自定义 Yopto 映像之一。

    注意

    Yocto 映像应仅用于测试Amazon IoT Device Tester用于 FreeRTOS 而不是用于任何其他目的。

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

      1. 使用 OpenSSL ssh-keygen 命令创建 SSH 密钥。如果您的主机上已有 SSH key pair,则最佳实践是创建一个新的密钥对以允许。Amazon 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 密钥添加到你的树莓派上Amazon IoT Device Tester对于 FreeRTOS 可以登录设备,请使用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-copy-id 指定 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. 在将 Amazon 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 使用公有密钥身份验证,请将以下内容添加到connectivity的 部分resource.json文件。

        "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。如果您在蓝牙测试可用前开始使用 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 以外的测试失败,则问题很可能与蓝牙配置无关。