本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
初始步骤
此页面指的是已过时的亚马逊 FreeRTOS 存储库。建议您在创建新项目时从这里开始。如果您已经有一个基于现已弃用的 Amazon-FreeRTOS 存储库的 FreeRTOS 项目,请参阅亚马逊 FreeRTOS Github 存储库迁移指南。
要开始使用 FreeRTOSAmazon IoT,您必须拥有一个Amazon账户、一个具有访问权限的 IAM 用户Amazon IoT和 FreeRTOS 云服务。您还必须下载 FreeRTOS 并配置主板的 FreeRTOS 演示项目才能使用Amazon IoT。以下各节将引导您了解这些要求。
-
如果你使用的是 Espressif ESP32-DevKit C、ESP-WROVER-KIT 或 ESP32-WROOM-32SE,请跳过这些步骤然后转到开始使用 Espressif ESP32-DevKit C 和 ESP-WROVER-KIT。
-
如果您使用的是 Nordic nRF52840-DK,请跳过这些步骤并转到 Nordic nRF52840-DK 入门。
设置您的Amazon账户和权限
要创建 Amazon 账户,请参阅创建和激活 Amazon 账户
要向您的Amazon账户添加 IAM 用户,请参阅 IAM 用户指南。要授予您的 IAM 用户账户访问Amazon IoT和 FreeRTOS 的权限,请将以下 IAM 策略附加到您的 IAM 用户账户:
-
AmazonFreeRTOSFullAccess
-
AWSIoTFullAccess
将 AmazonFree RTOSFullAccess 策略附加到您的 IAM 用户
-
浏览到 IAM 控制台
,然后从导航窗格中选择用户。 -
在搜索文本框中输入您的用户名,然后从列表中选择该名称。
-
选择 Add permissions(添加权限)。
-
选择 Attach existing policies directly(直接附上现有策略)。
-
在搜索框中,输入
AmazonFreeRTOSFullAccess
,从列表中选择,然后选择下一步: 审核。 -
选择 Add permissions(添加权限)。
将 AWSIoTFullAccess 策略挂载到您的 IAM 用户
-
浏览到 IAM 控制台
,然后从导航窗格中选择用户。 -
在搜索文本框中输入您的用户名,然后从列表中选择该名称。
-
选择 Add permissions(添加权限)。
-
选择 Attach existing policies directly(直接附上现有策略)。
-
在搜索框中,输入
AWSIoTFullAccess
,从列表中选择,然后选择下一步: 审核。 -
选择 Add permissions(添加权限)。
有关 IAM 的更多信息,请参阅 IAM 用户指南。
有关策略的更多信息,请参阅 IAM 权限与策略。
设置Amazon帐户和权限后,您可以继续将您的 MCU 主板注册到 Amazon IoT。
将您的 MCU 主板注册到 Amazon IoT
您的主板必须已向 Amazon IoT 注册才能与 Amazon 云通信。要注册您的主板Amazon IoT,您必须:
- Amazon IoT 策略
-
Amazon IoT 策略向您的设备授予访问 Amazon IoT 资源的权限。它存储在 Amazon 云中。
- Amazon IoT 事物
-
通过 Amazon IoT 事物,您可以在 Amazon IoT 中管理设备。它存储在 Amazon 云中。
- 私有密钥和 X.509 证书
-
通过私有密钥和证书,您可以用 Amazon IoT 对设备进行身份验证。
要注册您的董事会,请按照以下步骤操作。
创建 Amazon IoT策略
-
要创建 IAM 策略,您必须知道您的Amazon区域和Amazon账号。
要查找您的Amazon账号,请打开Amazon管理控制台
,找到并展开右上角账户名称下方的菜单,然后选择我的账户。您的账户 ID 显示在 Account Settings (账户设置) 下。 要查找您的Amazon账户所在Amazon区域,请使用Amazon Command Line Interface。要安装 Amazon CLI,请按照 Amazon Command Line Interface 用户指南中的说明操作。在安装 Amazon CLI 后,打开命令提示符窗口并输入以下命令:
aws iot describe-endpoint --endpoint-type=iot:Data-ATS
输出应该如下所示:
{ "endpointAddress": "xxxxxxxxxxxxxx-ats.iot.us-west-2.amazonaws.com" }
在此示例中,区域为
us-west-2
。注意 我们建议使用 ATS 端点,如示例所示。
-
浏览至 Amazon IoT 控制台
。 -
在导航窗格中依次选择安全、策略和创建。
-
输入用于标识您的策略的名称。
-
在添加语句部分中,选择高级模式。将以下 JSON 复制并粘贴到策略编辑器窗口中。将
和aws-region
替换为您的 Amazon 区域和帐户 ID。aws-account
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Connect", "Resource":"arn:aws:iot:
aws-region
:aws-account-id
:*" }, { "Effect": "Allow", "Action": "iot:Publish", "Resource": "arn:aws:iot:aws-region
:aws-account-id
:*" }, { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": "arn:aws:iot:aws-region
:aws-account-id
:*" }, { "Effect": "Allow", "Action": "iot:Receive", "Resource": "arn:aws:iot:aws-region
:aws-account-id
:*" } ] }此策略授予以下权限:
iot:Connect
-
授予设备使用任意客户端 ID 连接到 Amazon IoT 消息代理的权限。
iot:Publish
-
授予设备在任何 MQTT 主题上发布 MQTT 消息的权限。
iot:Subscribe
-
授予设备订阅到任何 MQTT 主题筛选条件的权限。
iot:Receive
-
授予设备从 Amazon IoT 消息代理接收有关任何 MQTT 主题的消息的权限。
-
选择 Create(创建)。
为设备创建 IoT 事物、私有密钥和证书
-
浏览至 Amazon IoT 控制台
。 -
在导航窗格中,选择管理,然后选择事物。
-
如果您的账户中未注册任何 IoT 事物,此时将显示您还没有任何事物页面。如果您看到此页面,请选择注册事物。否则,选择 Create。
-
在创建 Amazon IoT事物页面上,选择创建单个事物。
-
在将设备添加到事物注册表页面上,输入您事物的名称,然后选择下一步。
-
在添加事物的证书页面上的一键式创建证书下,选择创建证书。
-
选择各项的下载链接来下载私有密钥和证书。
-
选择激活来激活您的证书。必须先激活证书,然后才能使用它们 。
-
选择附加策略以将策略附加到证书,授予您的设备访问 Amazon IoT 操作的权限。
-
选择您刚刚创建的策略,然后选择注册事物。
将主板注册到 Amazon IoT 后,您可以继续至 下载FreeRTOS。
下载FreeRTOS
你可以从 FreeRTOS GitHub 存储库下载 FreeRTOS
下载 FreeRTOS 后,你可以继续配置 FreeRTOS 演示。
配置 FreeRTOS 演示
必须先编辑 FreeRTOS 目录中的一些配置文件,然后才能在主板上编译和运行任何演示。
配置 Amazon IoT 终端节点
您必须向 FreeRTOS 提供您的Amazon IoT终端节点,以便在您的开发板上运行的应用程序可以向正确的终端节点发送请求。
-
浏览至 Amazon IoT 控制台
。 -
在左侧导航窗格中,选择 Settings (设置)。
您的Amazon IoT终端节点显示在设备数据端点中。它应该类似于
。记下此终端节点。1234567890123
-ats.iot.us-east-1
.amazonaws.com -
在导航窗格中,选择管理,然后选择事物。
您的设备应具有 Amazon IoT 事物名称。记下此名称。
-
打开
demos/include/aws_clientcredential.h
。 -
为以下常量指定值:
-
#define clientcredentialMQTT_BROKER_ENDPOINT "
Your Amazon IoT endpoint
"; -
#define clientcredentialIOT_THING_NAME "
The Amazon IoT thing name of your board
"
-
配置 Wi-Fi
如果您的主板通过 Wi-Fi 连接连接到互联网,则必须向 FreeRTOS 提供 Wi-Fi 凭据才能连接到网络。如果主板不支持 Wi-Fi,您可以跳过这些步骤。
-
demos/include/aws_clientcredential.h
. -
为以下
#define
常量指定值:-
#define clientcredentialWIFI_SSID "
The SSID for your Wi-Fi network
" -
#define clientcredentialWIFI_PASSWORD "
The password for your Wi-Fi network
" -
#define clientcredentialWIFI_SECURITY
Wi-Fi 网络的安全类型
有效安全类型为:
-
eWiFiSecurityOpen
(开放,不安全) -
eWiFiSecurityWEP
(WEP 安全性) -
eWiFiSecurityWPA
(WPA 安全性) -
eWiFiSecurityWPA2
(WPA2 安全性)
-
-
对 Amazon IoT 证书进行格式化
FreeRTOS 必须拥有与您的注册事物及其权限策略相关的Amazon IoT证书和私钥,才能Amazon IoT代表您的设备成功与之通信。
要配置您的Amazon IoT证书,您必须拥有注册设备时从Amazon IoT控制台下载的私钥和证书。在将设备注册为 Amazon IoT 事物之后,可从 Amazon IoT 控制台检索设备证书,但无法检索私有密钥。
FreeRTOS 是一个 C 语言项目,证书和私钥必须经过特殊格式化才能添加到项目中。
-
在浏览器窗口中,打开
tools/certificate_configuration/CertificateConfigurator.html
。 -
在 Certificate PEM file (证书 PEM 文件) 下,选择您从 Amazon IoT 控制台下载的
。ID
-certificate.pem.crt -
在 Private Key PEM file (私有密钥 PEM 文件) 下,选择您从 Amazon IoT 控制台下载的
。ID
-private.pem.key -
选择 Generate and save aws_clientcredential_keys.h (生成并保存 aws_clientcredential_keys.h),然后将文件保存到
demos/include
中。这将覆盖目录中的现有文件。注意 仅出于演示目的对证书和私有密钥进行了硬编码。生产级应用程序应将这些文件存储在安全位置。
配置 FreeRTOS 后,您可以继续阅读开发板的入门指南,设置平台的硬件及其软件开发环境,然后在主板上编译和运行演示。有关主板特定的说明,请参阅主板特定的入门指南。入门教程中使用的演示应用程序是 CoreMQTT 双向身份验证演示,该演示位于demos/coreMQTT/mqtt_demo_mutual_auth.c
。