本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon IoT Greengrass 探索图书馆
注意
此页面上的内容可能不是 up-to-date。有关最新更新,请参阅免费 RTOS .org 库页面
概述
微控制设备使用 Amazon IoT Greengrass Discovery 库来发现网络上的 Greengrass 核心。使用 Amazon IoT Greengrass DiscoveryAPIs,您的设备可以在找到内核端点后向 Greengrass 核心发送消息。
依赖项和要求
要使用 Greengrass Discovery 库,你必须在 Amazon IoT中创建一个东西,包括证书和策略。有关更多信息,请参阅 Amazon IoT 入门。
您必须为
文件中的以下常量设置值:freertos
/demos/include/aws_clientcredential.h
clientcredentialMQTT_BROKER_ENDPOINT
-
您的 Amazon IoT 终端节点。
clientcredentialIOT_THING_NAME
-
IoT 事物的名称。
clientcredentialWIFI_SSID
-
SSID适用于你的 Wi-Fi 网络。
clientcredentialWIFI_PASSWORD
-
Wi-Fi 密码。
clientcredentialWIFI_SECURITY
-
Wi-Fi 网络所使用的安全类型。
您还必须为
文件中的以下常量设置值:freertos
/demos/include/aws_clientcredential_keys.h
keyCLIENT_CERTIFICATE_PEM
-
与你的东西PEM相关的证书。
keyCLIENT_PRIVATE_KEY_PEM
-
与你的东西PEM相关的私钥。
必须在控制台中设置 Greengrass 组和核心设备。有关更多信息,请参阅入门 Amazon IoT Greengrass。
尽管 Greengrass 连接不需要核心MQTT库,但我们强烈建议您安装它。该库可用于在发现 Greengrass 核心后与其进行通信。
API参考
有关完整API参考资料,请参阅 Greengrass API 参考资料。
示例用法
Greengrass 工作流
MCU设备通过请求包含 Greengrass 核心连接参数JSON的文件来启动发现过程。 Amazon IoT 有两种方法可以从文件中检索 Greengrass 核心连接参数:JSON
-
自动选择会遍历文件中列出的所有 Greengrass 内核,并连接到第一个可JSON用的内核。
-
手动选择,使用
aws_ggd_config.h
中的信息连接到指定的 Greengrass 核心。
如何使用 Greengrass API
G API reengrass 的所有默认配置选项都在中定义。aws_ggd_config_defaults.h
如果只有一个 Greengrass 内核,GGD_GetGGCIPandCertificate
请调用请求包含 Greengrass 核心连接JSON信息的文件。返回GGD_GetGGCIPandCertificate
时,pcBuffer
参数包含JSON文件文本。pxHostAddressData
参数中包含了您可以连接的 Greengrass 核心的 IP 地址和端口。
要获得更多自定义选项,例如动态分配证书,则必须调用以下命令APIs:
GGD_JSONRequestStart
-
向发出HTTPGET请求, Amazon IoT 以启动发现请求,以发现 Greengrass 内核。
GD_SecureConnect_Send
用于将请求发送到 Amazon IoT。 GGD_JSONRequestGetSize
-
从HTTP响应中获取JSON文件的大小。
GGD_JSONRequestGetFile
-
获取JSON对象字符串。
GGD_JSONRequestGetSize
并GGD_JSONRequestGetFile
GGD_SecureConnect_Read
用于从套接字获取JSON数据。GGD_JSONRequestStart
GGD_SecureConnect_Send
,GGD_JSONRequestGetSize
必须调用才能从中接收JSON数据 Amazon IoT。 GGD_GetIPandCertificateFromJSON
-
从数据中提取 IP 地址和 Greengrass 核心证书。JSON可以通过将
xAutoSelectFlag
设置为True
,打开自动选择功能。自动选择会找到您的免费RTOS设备可以连接的第一台核心设备。要连接到 Greengrass 核心,可调用GGD_SecureConnect_Connect
函数,传递核心设备的 IP 地址、端口和证书。要使用手动选择,可设置HostParameters_t
参数的以下字段:pcGroupName
-
核心所属 Greengrass 组的 ID。你可以使用该
aws greengrass list-groups
CLI命令来查找 Greengrass 群组的 ID。 pcCoreAddress
-
你正在ARN连接的 Greengrass 内核中的那个。