AWS IoT Greengrass Discovery 演示应用程序 - FreeRTOS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS IoT Greengrass Discovery 演示应用程序

为 FreeRTOS 运行 AWS IoT Greengrass Discovery 演示之前,您需要设置 AWS、AWS IoT Greengrass 和 AWS IoT。要设置 AWS,请遵循 设置 AWS 账户和权限 中的说明。要设置 AWS IoT Greengrass,您需要创建一个 Greengrass 组,然后添加一个 Greengrass 核心。有关设置 AWS IoT Greengrass 的更多信息,请参阅 AWS IoT Greengrass 入门

设置 AWS 和 AWS IoT Greengrass 之后,您需要为 AWS IoT Greengrass 配置一些其他权限。

设置 AWS IoT Greengrass 权限

  1. 浏览至 IAM 控制台

  2. 从导航窗格中,选择 Roles (角色),然后查找并选择 Greengrass_ServiceRole

  3. 选择 Attach policies (附加策略),选择 AmazonS3FullAccessAWSIoTFullAccess,然后选择 Attach policy (附加策略)

  4. 浏览至 AWS IoT 控制台

  5. 在导航窗格中,选择 Greengrass,选择 Groups (组),然后选择之前创建的 Greengrass 组。

  6. 选择 Settings (设置),然后选择 Add role (添加角色)

  7. 选择 Greengrass_ServiceRole,然后选择 Save (保存)

您可以使用 FreeRTOS 控制台中的 Quick Connect (快速连接) 工作流,将您的主板快速连接到 AWS IoT 并运行演示。FreeRTOS 配置当前对以下主板不可用:

  • Cypress CYW943907AEVAL1F 开发工具包

  • Cypress CYW954907AEVAL1F 开发工具包

  • Espressif ESP-WROVER-KIT

  • Espressif ESP32-DevKitC

  • Nordic nRF52840-DK

您也可以手动将主板连接到 AWS IoT 并配置 FreeRTOS 演示。

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

    注册主板后,您需要创建新的 Greengrass 策略并将其附加到设备证书。

    创建新的 AWS IoT Greengrass 策略

    1. 浏览至 AWS IoT 控制台

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

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

    4. 添加语句部分中,选择高级模式。将以下 JSON 复制并粘贴到策略编辑器窗口中:

      { "Effect": "Allow", "Action": [ "greengrass:*" ], "Resource": "*" }

      此策略向所有资源授予 AWS IoT Greengrass 权限。

    5. 选择 Create

    将 AWS IoT Greengrass 策略附加到设备证书

    1. 浏览至 AWS IoT 控制台

    2. 在导航窗格中,选择 Manage (管理),选择 Things (事物),然后选择之前创建的事物。

    3. 选择 Security (安全性),然后选择附加到设备的证书。

    4. 选择 Policies (策略),选择 Actions (操作),然后选择 Attach Policy (附加策略)

    5. 查找并选择之前创建的 Greengrass 策略,然后选择 Attach (附加)

  2. 下载 FreeRTOS

    注意

    如果要从 FreeRTOS 控制台下载 FreeRTOS,请选择 Connect to AWS IoT Greengrass- Platform (连接到 GreeGrass - <平台>) 而不是 Connect to AWS IoT- Platform (连接到 IoT - <平台>)

  3. 配置 FreeRTOS 演示

    打开 freertos/vendors/vendor/boards/board/aws_demos/config_files/aws_demo_config.h,注释掉 #define CONFIG_MQTT_DEMO_ENABLED 并定义 CONFIG_GREENGRASS_DISCOVERY_DEMO_ENABLED

设置 AWS IoT 和 AWS IoT Greengrass 以及下载和配置 FreeRTOS 之后,您可以在设备上生成、刷新并运行 Greengrass 演示。要设置主板的硬件和软件开发环境,请遵循主板特定的入门指南中的说明。

该 Greengrass 演示向 Greengrass 核心和 AWS IoT MQTT 客户端发布一系列消息。要查看 AWS IoT MQTT 客户端中的消息,请打开 AWS IoT 控制台,选择 Test (测试),然后向 freertos/demos/ggd 添加订阅。

在 MQTT 客户端中,您应看到下列字符串:

Message from Thing to Greengrass Core: Hello world msg #1! Message from Thing to Greengrass Core: Hello world msg #0! Message from Thing to Greengrass Core: Address of Greengrass Core found! 123456789012.us-west-2.compute.amazonaws.com

使用 Amazon EC2 实例

在使用 Amazon EC2 实例的情况下

  1. 查找与您的 Amazon EC2 实例关联的公有 DNS (IPv4) — 转至 Amazon EC2 控制台,然后在左侧导航面板中选择实例。选择您的 Amazon EC2 实例,然后选择描述面板。查找并记下公有 DNS (IPv4) 的条目。

  2. 查找安全组的条目,然后选择附加到您的 Amazon EC2 实例的安全组。

  3. 选择入站规则选项卡,然后选择编辑入站规则并添加以下规则。

    入站规则
    类型 协议 端口范围 描述 - 可选
    HTTP TCP 80 0.0.0.0/0 -
    HTTP TCP 80 ::/0 -
    SSH TCP 22 0.0.0.0/0 -
    自定义 TCP TCP 8883 0.0.0.0/0 MQTT 通信
    自定义 TCP TCP 8883 ::/0 MQTT 通信
    HTTPS TCP 443 0.0.0.0/0 -
    HTTPS TCP 443 ::0/0 -
    所有 ICMP - IPv4 ICMP 全部 0.0.0.0/0 -
    所有 ICMP - IPv4 ICMP 全部 ::0/0 -
  4. 在 AWS IoT 控制台中,选择 Greengrass,选择 ,然后选择先前创建的 Greengrass 组。选择 Settings。将本地连接检测更改为手动管理连接信息

  5. 在导航窗格中,选择核心,然后选择您的组核心。

  6. 选择连接,并确保您只有一个核心终端节点(删除其余所有终端节点),并且它不是 IP 地址(因为它可能会发生更改)。最佳选择是使用您在第一步中记下的公有 DNS (IPv4)。

  7. 将您创建的 FreeRTOS IoT 物品添加到 GG 组。

    1. 选择返回箭头以返回 AWS IoT Greengrass 组页面。在导航窗格中,选择设备,然后选择添加设备

    2. 选择选择 IoT 物品。选择您的设备,然后选择完成

  8. 添加必要的订阅 — 在 Greengrass 组页面上,选择订阅,然后选择添加订阅并输入信息,如此处所示。

    订阅
    目标 主题
    TIGG1 IoT 云 freertos/demos/ggd
  9. 启动 AWS IoT Greengrass 组的部署,并确保该部署成功。现在,您应能够成功运行 AWS IoT Greengrass 发现演示。