AWS IoT Greengrass V1 发现演示应用程序 - FreeRTOS

AWS IoT Greengrass V1 发现演示应用程序

重要

该演示托管在已弃用的 Amazon-FreeRTOS 存储库中。当您创建新项目时,我们建议从此处开始。如果您已经有一个基于现已弃用的 Amazon-FreeRTOS 存储库的 FreeRTOS 项目,请参阅 Amazon-FreeRTOS Github 存储库迁移指南

为 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 (保存)

将主板连接到 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. 选择创建

    将 AWS IoT Greengrass 策略附加到设备证书
    1. 浏览至 AWS IoT 控制台

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

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

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

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

  2. 下载 FreeRTOS

    注意

    如果要从 FreeRTOS 控制台下载 FreeRTOS,请选择连接到 AWS IoT Greengrass- 平台,而不是连接到 AWS IoT- 平台

  3. 配置 FreeRTOS 演示.

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

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

该 Greengrass 演示向 Greengrass 核心和 AWS IoT MQTT 客户端发布一系列消息。要查看 AWS IoT MQTT 客户端中的消息,请打开 AWS IoT 控制台,选择测试,选择 MQTT 测试客户端,然后向 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 组。选择设置。将本地连接检测更改为手动管理连接信息

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

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

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

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

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

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

    订阅
    来源 目标 主题
    TIGG1 IoT 云 freertos/demos/ggd

    其中“来源”是在注册主板时为 AWS IoT 控制台中创建的 AWS IoT 事务提供的名称,在本示例中为“TIGG1”。

  9. 启动 AWS IoT Greengrass 组的部署,并确保该部署成功。现在,您应能够成功运行 AWS IoT Greengrass 发现演示。