初始步骤 - FreeRTOS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

初始步骤

要开始将 FreeRTOS 与 AWS IoT 结合使用,您需要一个 AWS 账户以及一个有权访问 AWS IoT 和 FreeRTOS 云服务的 IAM 用户。您还需要下载 FreeRTOS,并将主板的 FreeRTOS 演示项目配置为使用 AWS IoT。以下各节将引导您了解这些要求。

注意

如果您使用的是 Espressif ESP32-DevKitC、ESP-WROVER-KIT 或 ESP32-WROOM-32SE,请跳过这些步骤并转到 Espressif ESP32-DevKitC 和 ESP-WROVER-KIT 入门

如果您使用的是 Nordic nRF52840-DK,请跳过这些步骤并转到 Nordic nRF52840-DK 入门

  1. 设置 AWS 账户和权限

    完成设置 AWS 账户和权限中的说明后,您可以按照 控制台中的FreeRTOS快速连接工作流程快速将主板连接到 AWS 云。如果执行 Quick Connect (快速连接) 工作流,则无需完成此列表中的剩余步骤。请注意,对于以下主板,当前不可在 FreeRTOS 控制台上使用 FreeRTOS 配置:

    • Cypress CYW943907AEVAL1F 开发工具包

    • Cypress CYW954907AEVAL1F 开发工具包

  2. 将您的 MCU 主板注册到 AWS IoT

  3. 下载 FreeRTOS

  4. 配置 FreeRTOS 演示

设置 AWS 账户和权限

要创建 AWS 账户,请参阅创建和激活 AWS 账户

要将 IAM 用户添加到您的 AWS 账户,请参阅 IAM 用户指南。要授予您的 IAM 用户账户访问 AWS IoT 和 FreeRTOS 的权限,请将以下 IAM 策略附加到您的 IAM 用户账户:

  • AmazonFreeRTOSFullAccess

  • AWSIoTFullAccess

将 AmazonFreeRTOSFullAccess 策略附加到您的 IAM 用户

  1. 浏览到 IAM 控制台,在导航窗格中,选择用户

  2. 在搜索文本框中输入您的用户名,然后从列表中选择该名称。

  3. 选择 Add permissions (添加权限)

  4. 选择直接附加现有策略

  5. 在搜索框中,输入 AmazonFreeRTOSFullAccess,从列表中选择,然后选择 下一步: 回顾.

  6. 选择 Add permissions (添加权限)

将 AWSIoTFullAccess 策略附加到您的 IAM 用户

  1. 浏览到 IAM 控制台,在导航窗格中,选择用户

  2. 在搜索文本框中输入您的用户名,然后从列表中选择该名称。

  3. 选择 Add permissions (添加权限)

  4. 选择直接附加现有策略

  5. 在搜索框中,输入 AWSIoTFullAccess,从列表中选择,然后选择 下一步: 回顾.

  6. 选择 Add permissions (添加权限)

有关 IAM 和用户账户的更多信息,请参阅 IAM 用户指南

有关策略的更多信息,请参阅 IAM 权限和策略

设置好 AWS 帐户和权限,您可以继续 将您的 MCU 主板注册到 AWS IoT快速连接 工作流程 FreeRTOS 控制台.

将您的 MCU 主板注册到 AWS IoT

您的主板必须已向 AWS IoT 注册才能与 AWS 云通信。要将主板注册到 AWS IoT,您需要以下信息:

AWS IoT 策略

AWS IoT 策略向您的设备授予访问 AWS IoT 资源的权限。它存储在 AWS 云中。

AWS IoT 事物

通过 AWS IoT 事物,您可以在 AWS IoT 中管理设备。它存储在 AWS 云中。

私有密钥和 X.509 证书

通过私有密钥和证书,您可以用 AWS IoT 对设备进行身份验证。

如果您使用 快速连接 工作流程 FreeRTOS 控制台、政策、 AWS IoT 并且会为您创建密钥和证书。如果您使用 Quick Connect (快速连接) 工作流,则可以忽略以下程序。

要手动注册您的主板,请按照以下程序操作。

创建 AWS IoT 策略

  1. 要创建 IAM 策略,您需要知道自己的 AWS 区域和 AWS 账号。

    要查找您的 AWS 账号,请打开 AWS 管理控制台,在右上角找到并展开账户名称下方的菜单,然后选择 My Account (我的账户)。您的账户 ID 显示在 Account Settings (账户设置) 下。

    要查找您的 AWS 账户的 AWS 区域,请使用 AWS Command Line Interface。要安装 AWS CLI,请按照 AWS Command Line Interface 用户指南中的说明操作。在安装 AWS CLI 后,打开命令提示符窗口并输入以下命令:

    aws iot describe-endpoint

    输出应该如下所示:

    { "endpointAddress": "xxxxxxxxxxxxxx.iot.us-west-2.amazonaws.com" }

    在此示例中,区域为 us-west-2

  2. 浏览至 AWS IoT 控制台

  3. 在导航窗格中依次选择安全策略创建

  4. 输入用于标识您的策略的名称。

  5. 添加语句部分中,选择高级模式。将以下 JSON 复制并粘贴到策略编辑器窗口中。Replace aws-regionaws-account 使用AWS区域和帐户ID。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Connect", "Resource":"arn:aws-cn:iot:aws-region:aws-account-id:*" }, { "Effect": "Allow", "Action": "iot:Publish", "Resource": "arn:aws-cn:iot:aws-region:aws-account-id:*" }, { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": "arn:aws-cn:iot:aws-region:aws-account-id:*" }, { "Effect": "Allow", "Action": "iot:Receive", "Resource": "arn:aws-cn:iot:aws-region:aws-account-id:*" } ] }

    此策略授予以下权限:

    iot:Connect

    授予设备使用任意客户端 ID 连接到 AWS IoT 消息代理的权限。

    iot:Publish

    授予设备在任何 MQTT 主题上发布 MQTT 消息的权限。

    iot:Subscribe

    授予设备订阅到任何 MQTT 主题筛选条件的权限。

    iot:Receive

    授予设备从 AWS IoT 消息代理接收有关任何 MQTT 主题的消息的权限。

  6. 选择创建

要创建 IoT 设备、私钥和证书

  1. 浏览至 AWS IoT 控制台

  2. 在导航窗格中,选择管理,然后选择事物

  3. 如果您没有任何 IoT 在您的帐户中登记的事项, 你还没有什么东西 页面显示。如果您看到此页面,请选择注册事物。否则,选择 Create

  4. 创建 AWS IoT 事物页面上,选择创建单个事物

  5. 将设备添加到事物注册表页面上,输入您事物的名称,然后选择下一步

  6. 添加事物的证书页面上的一键式创建证书下,选择创建证书

  7. 选择各项的下载链接来下载私有密钥和证书。

  8. 选择激活来激活您的证书。必须先激活证书,然后才能使用它们 。

  9. 选择附加策略以将策略附加到证书,授予您的设备访问 AWS IoT 操作的权限。

  10. 选择您刚刚创建的策略,然后选择注册事物

将主板注册到 AWS IoT 后,您可以继续至 下载 FreeRTOS

下载 FreeRTOS

您可以从 FreeRTOS 控制台或 FreeRTOSFreeRTOS GitHub 存储库下载 。

注意

如果您遵循的是 控制台中的 FreeRTOSQuick Connect (快速连接) 工作流程,则可以忽略以下过程。

从 FreeRTOS 控制台下载 FreeRTOS

  1. 登录到 FreeRTOS 控制台.

  2. Predefined configurations (预定义配置) 下,找到 Connect to AWS IoT- (连接到 AWS IoT Configurations) Platform,然后选择 Download (下载)

  3. 将下载的文件解压缩到目录,然后复制目录路径。

    重要
    • 在本主题中,FreeRTOS 下载目录的路径称为 freertos.

    • freertos 路径中的空格字符可能会导致构建失败。克隆或复制存储库时,请确保您创建的路径不包含空格字符。

    • Microsoft Windows 上的文件路径最大长度为 260 个字符。长的 FreeRTOS 下载目录路径可能会导致构建操作失败。

注意

如果要开始使用 Cypress CYW954907AEVAL1F 或 CYW943907AEVAL1F 开发工具包,则必须从 FreeRTOS 下载 GitHub。 有关说明,请参阅 README.md 文件。当前不可从 FreeRTOS 控制台使用这些主板的 FreeRTOS 配置。

下载 FreeRTOS 之后,您可以继续至 配置 FreeRTOS 演示.

配置 FreeRTOS 演示

您需要在 FreeRTOS 目录中编辑一些配置文件,然后才能在主板上编译和运行任何演示。

如果您遵循 控制台上的 FreeRTOSQuick Connect (快速连接) 工作流程,请按照控制台上工作流程中的配置说明操作,并忽略这些步骤。

配置 AWS IoT 终端节点

您需要向 FreeRTOS 提供 AWS IoT 终端节点,以便主板上运行的应用程序能够将请求发送到正确的终端节点。

  1. 浏览至 AWS IoT 控制台

  2. 在导航窗格中,选择 Settings

    您的 AWS IoT 终端节点将显示在终端节点中。它应该类似于 1234567890123-ats.iot.us-east-1.amazonaws.com。 记下此终端节点。

  3. 在导航窗格中,选择管理,然后选择事物

    您的设备应具有 AWS IoT 事物名称。记下此名称。

  4. 打开 /demos/include/aws_clientcredential.h

  5. 为以下 常量指定值:

    • #define clientcredentialMQTT_BROKER_ENDPOINT "Your AWS IoT endpoint";

    • #define clientcredentialIOT_THING_NAME "The AWS IoT thing name of your board"

配置 Wi-Fi

如果您的主板通过 Wi-Fi 连接来连接到 Internet,则需要向 FreeRTOS 提供 Wi-Fi 凭证才能连接到网络。如果主板不支持 Wi-Fi,您可以跳过这些步骤。

  1. demos/include/aws_clientcredential.h.

  2. 为以下 #define 常量指定值:

    • #define clientcredentialWIFI_SSID "The SSID for your Wi-Fi network"

    • #define clientcredentialWIFI_PASSWORD "The password for your Wi-Fi network"

    • #define clientcredentialWIFI_SECURITY The security type of your Wi-Fi network

      有效安全类型为:

      • eWiFiSecurityOpen(开放,不安全)

      • eWiFiSecurityWEP(WEP 安全性)

      • eWiFiSecurityWPA(WPA 安全性)

      • eWiFiSecurityWPA2(WPA2 安全性)

对 AWS IoT 证书进行格式化

FreeRTOS 需要与您注册的事物及其权限策略关联的 AWS IoT 证书和私有密钥才能代表您的设备与 AWS IoT 成功通信。

注意

要配置 AWS IoT 凭证,您需要您在注册设备时从 AWS IoT 控制台下载的私有密钥和证书。在将设备注册为 AWS IoT 事物之后,可从 AWS IoT 控制台检索设备证书,但无法检索私有密钥。

FreeRTOS 是 C 语言项目,证书和私有密钥必须进行特别的格式设置才能添加到该项目中。

  1. 在浏览器窗口中,打开 tools/certificate_configuration/CertificateConfigurator.html

  2. Certificate PEM file (证书 PEM 文件) 下,选择您从 AWS IoT 控制台下载的 ID-certificate.pem.crt

  3. Private Key PEM file (私有密钥 PEM 文件) 下,选择您从 AWS IoT 控制台下载的 ID-private.pem.key

  4. 选择 Generate and save aws_clientcredential_keys.h (生成并保存 aws_clientcredential_keys.h),然后将该文件保存在 demos/include 中。 这将覆盖目录中的现有文件。

    注意

    仅出于演示目的对证书和私有密钥进行了硬编码。生产级应用程序应将这些文件存储在安全位置。

配置 FreeRTOS 后,您可以继续至主板的入门指南,以编译和运行 FreeRTOS 演示。本入门教程中使用的演示应用程序是位于 coreMQTT 的 demos/mqtt/iot_demo_mqtt.c 双向身份验证演示。

完成初始步骤后,您可以设置平台的硬件及其软件开发环境,然后在主板上编译并运行演示。有关主板特定的说明,请参阅主板特定的入门指南