登记 Sidewalk 设备简介
本节向您展示如何将 Sidewalk 终端设备登记到适用于 Amazon Sidewalk 的 AWS IoT Core。要登记您的设备,请先添加 Sidewalk 设备,接着预置和登记设备,然后将硬件连接到云应用程序。在运行本教程之前,请仔细阅读并完成安装 Python 和 AWS CLI。
以下步骤向您展示了如何登记 Sidewalk 终端设备并将其连接到适用于 Amazon Sidewalk 的 AWS IoT Core。如果要使用 AWS CLI 登记设备,可以参考本节提供的命令示例。有关使用 AWS IoT 控制台登记设备的信息,请参阅连接到适用于 Amazon Sidewalk 的 AWS IoT Core。
重要
要执行整个登记工作流,您还需要预置和登记终端设备,并连接硬件开发工具包(HDK)。有关更多信息,请参阅《Amazon Sidewalk 文档》中的预置和注册终端设备
主题
步骤 1:将 Sidewalk 设备添加到适用于 Amazon Sidewalk 的 AWS IoT Core
下面概述了将 Sidewalk 终端设备添加到适用于 Amazon Sidewalk 的 AWS IoT Core 需要执行的步骤。存储您获得的有关您创建的设备配置文件和无线设备的信息。您将使用此信息来预置和注册终端设备。有关这些步骤的更多信息,请参阅将设备添加到适用于 Amazon Sidewalk 的 AWS IoT Core。
-
创建设备配置文件
创建包含 Sidewalk 设备的共享配置的设备配置文件。创建配置文件时,请将配置文件的
指定为字母数字字符串。要创建配置文件,请转到 AWS IoT 控制台的配置文件中心的 Sidewalk 选项卡name
并选择创建配置文件,或者使用 CreateDeviceProfile
API 操作或create-device-profile
CLI 命令,如本示例所示。// Add your device profile using a name and the sidewalk object. aws iotwireless create-device-profile --name
sidewalk_profile
--sidewalk {} -
创建 Sidewalk 终端设备
使用适用于 Amazon Sidewalk 的 AWS IoT Core 创建 Sidewalk 终端设备。指定目标名称和从上一步获得的设备配置文件的 ID。要添加设备,请转到 AWS IoT 控制台的设备中心的 Sidewalk 选项卡
并选择预置设备,或者使用 CreateWirelessDevice
API 操作或create-wireless-device
CLI 命令,如本示例所示。注意
为目标指定一个对您的 AWS 账户和 AWS 区域具有唯一性的名称。将目标添加到适用于 Amazon Sidewalk 的 AWS IoT Core 中时,您将使用相同的目标名称。
// Add your Sidewalk device by using the device profile ID. aws iotwireless create-wireless-device --type "Sidewalk" --name
sidewalk_device
\ --destination-nameSidewalkDestination
\ --sidewalk DeviceProfileId="12345678-234a-45bc-67de-e8901234f0a1"
-
获取设备配置文件和无线设备信息
以 JSON 格式获取设备配置文件和无线设备信息。JSON 将包含有关设备详细信息、设备证书、私有密钥、
DeviceTypeId
和 Sidewalk 制造序列号(SMSN)的信息。-
如果您使用的是 AWS IoT 控制台,则可以使用设备中心的 Sidewalk 选项卡
为 Sidewalk 终端设备下载组合的 JSON 文件。 -
如果您使用的是 API 操作,请将从 API 操作
GetDeviceProfile
和GetWirelessDevice
获得的响应存储为单独的 JSON 文件,例如
和device_profile.json
。wireless_device.json
// Store device profile information as a JSON file. aws iotwireless get-device-profile \ --id
"12345678-a1b2-3c45-67d8-e90fa1b2c34d"
>device_profile.json
// Store wireless device information as a JSON file. aws iotwireless get-wireless-device --identifier-type WirelessDeviceId \ --identifier"23456789-abcd-0123-bcde-fabc012345678"
>wireless_device.json
-
步骤 2:为 Sidewalk 终端设备创建目标
下面概述了将目标添加到适用于 Amazon Sidewalk 的 AWS IoT Core 需要执行的步骤。使用 AWS Management Console、AWS IoT Wireless API 操作或 AWS CLI,您可以运行以下步骤来创建 AWS IoT 规则和目标。然后,您可以连接到硬件平台,并查看和交换消息。有关本节中用于 AWS CLI 示例的 IAM 角色和 AWS IoT 规则,请参阅为您的目标创建 IAM 角色和 IoT 规则。
-
创建 IAM 角色
创建一个 IAM 角色来授予适用于 Amazon Sidewalk 的 AWS IoT Core 向 AWS IoT 规则发送数据的权限。要创建角色,请使用
CreateRole
API 操作或create-role
CLI 命令。您可以将角色命名为
。SidewalkRole
aws iam create-role --role-name lambda-ex \ --assume-role-policy-document
file://lambda-trust-policy.json
-
为目标创建规则
创建一条 AWS IoT 规则,用于处理设备数据并指定要向其发布消息的主题。连接到硬件平台后,您将观察到有关此主题的消息。使用 AWS IoT Core API 操作
CreateTopicRule
或 AWS CLI 命令create-topic-rule
为目标创建规则。aws iot create-topic-rule --rule-name
Sidewalkrule
\ --topic-rule-payloadfile://myrule.json
-
创建目标
创建一个目标以将 Sidewalk 设备与 IoT 规则相关联,此 IoT 规则对设备进行处理,以便用于其他 AWS 服务。您可以使用 AWS IoT 控制台的目标中心
、 CreateDestination
API 操作或create-destination
CLI 命令添加目标。aws iotwireless create-destination --name
SidewalkDestination
\ --expression-type RuleName --expressionSidewalkRule
\ --role-arn arn:aws:iam::123456789012
:role/SidewalkRole
步骤 3:预置和注册终端设备
使用 Python 命令,您可以预置和注册您的终端设备。预置脚本使用您获得的设备 JSON 数据生成制造二进制映像,然后将其刷写到硬件板上。然后,您可以注册终端设备以连接到硬件平台。有关更多信息,请参阅《Amazon Sidewalk 文档》中的预置和注册终端设备
注意
注册您的 Sidewalk 终端设备时,您的网关必须选择加入 Amazon Sidewalk,并且网关和设备必须位于彼此的范围内。
步骤 4:连接到终端设备并交换消息
注册终端设备后,您可以连接终端设备并开始交换消息和设备数据。
-
连接 Sidewalk 终端设备
将 HDK 连接到您的计算机,然后按照供应商文档提供的说明连接到您的 HDK。有关更多信息,请参阅《Amazon Sidewalk 文档》中的预置和注册终端设备
。 -
查看和交换消息
使用 MQTT 客户端订阅在规则中指定的主题并查看收到的消息。您还可以使用
SendDataToWirelessDevice
API 操作或send-data-to-wireless-device
CLI 命令向设备发送下行链路消息并验证连接状态。(可选)您可以启用消息传送状态事件来检查是否已成功接收下行链路消息。
aws iotwireless send-data-to-wireless-device \ --id
"<Wireless_Device_ID>"
\ --payload-data"SGVsbG8gVG8gRGV2c2lt"
\ --wireless-metadata Sidewalk={Seq=1,AckModeRetryDurationSecs=10}