NXP 设备上的 适用于 AWS IoT 的 Alexa Voice Service (AVS) 集成 入门 - AWS IoT
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

NXP 设备上的 适用于 AWS IoT 的 Alexa Voice Service (AVS) 集成 入门

NXP i.MX 106A 开发套件使您可以通过预配置的 NXP 账户试用 适用于 AWS IoT 的 Alexa Voice Service (AVS) 集成。通过 NXP 账户试用功能之后,您需要自定义固件、应用程序源代码和随套件提供的 NXP 移动应用程序,以便使用您自己的账户。本主题将引导您完成通过预配置账户试用功能以及使用自己的账户自定义设备的步骤。

使用预配置的 NXP 账户试用 适用于 AWS IoT 的 Alexa Voice Service (AVS) 集成

先决条件

若要执行这些步骤,您需要以下资源。

安装并启动开发工具包

  1. 激活设备套件。该套件附带一张信息载入入门卡。此卡包含激活套件及获取必要的软件包和参考设计文件的说明。软件包包含软件开发工具包源代码和配套的 Android 应用程序 (VoiceCompanionApp.apk)。如果您使用的是 iOS 设备,则必须向您当地的 NXP 代表请求对 TestFlight iOS 应用程序的访问权限。

    下载并解压软件包后,您会看到以下文件结构。

    
                            软件包包含名为 Amazon、DefaultBinaries、Drivers、MobileApplication、SDK 和 Tools 的工具包。其中还包含开发人员指南、迁移指南和用户指南。

    MobileApplication 文件夹包含 Android 移动应用程序。

    Tools 文件夹包含用于配置设备的脚本。

    您还可以找到以下文档:

    • NXP 开发人员指南中的 SLN-ALEXA-IOT-DG.pdf

    • NXP 迁移指南中的 SLN-ALEXA-IOT-MG.pdf

    • NXP 用户指南中的 SLN-ALEXA-IOT-UG.pdf

  2. 启动设备套件。该套件附带的 USB 分路器电缆具有电源和数据连接。

    1. 将两个 USB-A 连接均连接到计算机上。

    2. 将 USB-C 连接器连接到套件。您的配置类似于下图所示。

      
                                    将两个 USB-A 连接插入计算机。将单个 USB-A 连接插入设备套件。

    当电路板通电时,D1 LED 亮起并显示绿色。D2 LED(最靠近扬声器的灯)指示设备的状态。当设备打开时,该指示灯以多种颜色闪烁。在设备运行应用程序代码时,D2 LED 以黄色闪烁。设备初始化完成后,D2 LED 显示为橙色,表示它正在等待将 Wi-Fi 凭证添加到设备中。

    《NXP 用户指南》包含设备的物理控件的描述。

    
                            D2 LED 显示为橙色,表示它正在等待 Wi-Fi 凭证。
  3. 使用终端应用程序了解设备上的客户端应用程序的工作原理。您也可以使用它进行调试,确保设备处于正确状态。

    输入以下命令以开始使用应用程序:

    • help – 显示可用命令的列表。

    • enable_usb_log – 在设备上启用日志记录。这可以帮助您了解应用程序所执行的操作。

    • logs – 显示日志的最后几行。此时,日志应指示设备正在等待 Wi-Fi 凭证。

将设备连接到 AWS IoT 和 Amazon Alexa

  1. 安装适当的移动应用程序。如果您使用的是 Android 设备,则可以在终端中使用 ADB 来安装 VoiceCompanionApp.apk 文件。如果您使用的是 iOS 设备,请使用 TestFlight 应用程序。

  2. 预配置 Wi-Fi 凭证。您可以使用配套移动应用程序或终端来预配置 Wi-Fi 凭证。

    1. 请按照以下步骤,使用移动应用程序来预配置 Wi-Fi 凭证。

      1. 当设备从其出厂的全新状态启动时,它会创建一个 Wi-Fi 接入点。打开配套移动应用程序,然后选择 WIFI PROVISION (WIFI 预配置) 以连接到此接入点。

      2. 从列表中选择一个网络。

      3. 输入您的密码,然后选择 Send (发送),将凭证传输到设备套件。

    2. 在终端应用程序中,输入以下命令。

      setup YourWiFiNetworkName YourWiFiNetworkPassword
    3. Enter

  3. 验证设备套件并连接到 AWS IoT 和 Amazon Alexa。请确保您的移动设备和设备套件使用相同的 Wi-Fi 网络,以便两个设备可以通信。

    为此,请在移动应用程序中按 Discover (发现) 按钮。完成发现后,您会看到附近可用的设备套件序列号的列表。如果有多个可用设备,您可以在终端应用程序中输入 serial_number,确认套件的唯一序列号。

  4. 选择要使用的设备套件。移动应用程序使用 “以 Amazon 登录”服务提示您输入 Amazon 用户凭证。设备套件开始将设备注册到 AVS。D2 LED 显示紫色,指示设备已开始注册。

    注意

    如果您的移动设备已安装了 Amazon 购物应用程序,则移动配套应用程序会自动使用登录购物应用程序的 Amazon 账户。

在您登录 Amazon 账户后,配套应用程序将执行以下步骤:

  1. 设备套件从“以 Amazon 登录”服务接收访问令牌,并开始将设备连接到 AWS IoT 和 AVS。此时移动应用程序会显示完成百分比。设备上的 D2 LED 显示橙色。

  2. D1 LED 每 500 毫秒以绿色闪烁一次,直至设备连接到 AWS IoT。

  3. 当设备连接到时 AWS IoT 时,设备套件开始将设备连接到 AVS。D1 LED 指示灯每 250 毫秒以绿色闪烁一次。

  4. 当设备连接到 AVS 时,在移动应用程序中,设备套件序列号的颜色变为黄色。移动应用程序显示 Complete (完成) 消息。D1 LED 关闭,设备播放铃声。设备现已连接到 NXP 的 AWS IoT 账户。

您可以尝试几个 Alexa 语音命令,例如以下示例:

  • “Alexa, what's the weather like?”

  • “Alexa, play a news briefing.”

  • “Alexa, play music.”

使用您的 AWS 和 Alexa Voice Service 开发人员账户设置 适用于 AWS IoT 的 AVS

先决条件

对于此过程,您需要以下资源。

配置您的 AWS IoT 账户并预配置设备

  1. 生成对 AWS IoT 进行身份验证的凭证。所有设备都必须已在固件中安装设备证书、私有密钥和根 CA 证书,以便与 AWS IoT 通信。按照在注册表中注册设备的说明,将设备注册到 AWS IoT。有关 X.509 证书的更多信息,请参阅X.509 客户端证书

  2. 导航到根文件夹并打开《NXP 开发人员指南》。按照“第 9 节(文件系统)”中的说明,将您的客户端证书和密钥转换为 NXP 文件系统可以读取的二进制格式。

    使用以下脚本和命令转换证书和密钥。bin_dump.py 脚本位于 Tools\Ivaldi.zip\Scripts\sln_alexa_iot_utils 文件夹中。

    python3 bin_dump.py CertificateName-certificate.pem.crt CertificateName-certificate.pem.crt.bin
    python3 bin_dump.py CertificateName-private.pem.key CertificateName-private.pem.key.bin

有关为生产设备大量生成凭证的信息,请参阅设备预置

在 Alexa Voice Service 开发人员控制台中设置设备

  1. 导航到根文件夹并打开 NXP 迁移指南。

  2. 要获取创建 AVS API 密钥所需的 MD5 和 SHA256 签名,请按照“第 2 节.为 Android AVS 配套应用程序创建密钥库 ”(见 NXP 迁移指南)中的说明操作。(这包括导航到 Alexa Voice Service 开发人员控制台。)

  3. 要创建以 Amazon 登录安全配置文件和创建 AVS 产品,请按照 NXP 迁移指南 中“第 3 节”的说明操作。

重新生成 Android 移动应用程序

  1. 在 Android Studio 中打开 VoiceCompanionApp 项目。VoiceCompanionApp.apk 文件包括在 NXP 软件包中。

  2. 在 Android Studio 中,将您在上一过程中生成的 API 密钥添加到 assets 文件夹的 api_key.txt 文件中。这会将配套移动应用程序与 AVS 安全配置文件同步。当您使用“以 Amazon 登录”服务登录时,应用程序使用 API 密钥。当应用程序从 Amazon 获取授权代码时,它会将代码传输到设备固件。然后,设备从“以 Amazon 登录”服务获取访问权限和刷新令牌,以呼叫 AVS。

  3. 在 Android Studio 中,选择 Build Project (构建项目)Generate a Signed Bundle/APK (生成签名包/APK)。有关更多信息,请参阅“第 4 节.构建和生成移动应用程序”部分(见 NXP 迁移指南)。有关以这种方式授权 Alexa 的更多信息,请参阅从配套应用程序授权 (Android/iOS)

  4. 将更新后的移动应用程序安装到您的移动设备。在 Mac 计算机上设置 ADB,并使用终端控制台将更新的 Android APK 文件安装到手机上。如果您已安装了移动应用程序以使用预配置的 NXP 账户来试用 适用于 AWS IoT 的 AVS 服务,则必须卸载并重新安装该应用程序。

使用您的 AWS 凭证更新客户端应用程序

  1. 按照 NXP 开发人员指南的“第 3 节”和“第 4 节”中的说明,对 Segger J-Link 驱动程序进行必要的修改。这些说明还解释了如何使用 MCUXPresso IDE 导入 Bootloaderais_demobootstrap 项目。

  2. 请按照“第 7 节.RT106A 固件更改”(见 NXP 迁移指南)中的说明,更新源代码并重新生成应用程序。我们建议您使用 MCUXPresso v10.3.1。

    这些源代码更改使设备固件能够与您的 AWS 账户(而不是默认 NXP 账户)和 AVS 产品通信。

设置并将您的设备连接到 AWS IoT 和 Amazon Alexa

  1. 将设备重置为出厂默认值。如果您使用预配置的 NXP 账户试用了 适用于 AWS IoT 的 AVS 服务,则必须重置设备固件,然后使用配套移动应用程序重新登录。这可确保移动应用程序和设备使用您的安全配置文件。请确保设备已连接到计算机。按 SW1 10 秒钟以启动出厂设置重置。

    NXP 软件包自带的 NXP 用户指南 包含设备物理控制的描述。

  2. 重新编程固件以使用您为设备生成的证书和密钥。将密钥和证书添加到您在上一过程中创建的更新后的 BootstrapAis_demo 二进制文件中。我们还建议使用默认的 Intelligent toolboxapp_crtCA_crt 二进制文件对固件重新编程。

    有关说明,请参阅“第 5 节.构建和编程”(见 NXP 开发人员指南)。

  3. 按照前文将设备连接到 AWS 和 Amazon Alexa 过程中的说明操作。这可让您使用自己的安全配置文件和凭证连接到 适用于 AWS IoT 的 AVS。