

# 开始使用适用于 Amazon Sidewalk 的 AWS IoT Core
<a name="sidewalk-getting-started"></a>

本节向您展示如何开始将 Sidewalk 终端设备连接到适用于 Amazon Sidewalk 的 AWS IoT Core，并且解释了如何将终端设备连接到 Amazon Sidewalk 并在它们之间传递消息。您还将大致了解 Sidewalk 应用程序示例，以及如何使用适用于 Amazon Sidewalk 的 AWS IoT Core 执行传感器监控。该应用程序示例为您提供了一个控制面板，用于查看和监控传感器温度的变化。

![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/iot-wireless/latest/developerguide/images/sidewalk-getting-started.png)


以下主题将帮助您开始使用适用于 Amazon Sidewalk 的 AWS IoT Core。

**Topics**
+ [试用传感器监控教程](sidewalk-gs-tutorial.md)
+ [登记 Sidewalk 设备简介](sidewalk-gs-workflow.md)

# 试用传感器监控教程
<a name="sidewalk-gs-tutorial"></a>

本节概述了 GitHub 上的 Amazon Sidewalk 示例应用程序，该应用程序向您展示如何监控传感器的温度。在本教程中，您使用脚本以编程方式创建所需的无线资源，预置终端设备并刷写二进制文件，然后将终端设备连接到应用程序。使用 AWS CLI 和 Python 命令的脚本会创建 AWS CloudFormation 堆栈和无线资源，然后刷写二进制文件，并将应用程序部署到您的硬件开发工具包（HDK）上。

下图显示了您运行[示例应用程序](https://github.com/aws-samples/aws-iot-core-for-amazon-sidewalk-sample-app)并将 Sidewalk 终端设备连接到该应用程序时所涉及的步骤。有关包括本教程的先决条件和配置在内的详细说明，请参阅 *GitHub* 中的[自述文件文档](https://github.com/aws-samples/amazon-sidewalk-sample-iot-app/blob/main/README.md)。

![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/iot-wireless/latest/developerguide/images/sidewalk-sensor-monitoring.png)


# 登记 Sidewalk 设备简介
<a name="sidewalk-gs-workflow"></a>

本节向您展示如何将 Sidewalk 终端设备登记到适用于 Amazon Sidewalk 的 AWS IoT Core。要登记您的设备，请先添加 Sidewalk 设备，接着预置和登记设备，然后将硬件连接到云应用程序。在运行本教程之前，请仔细阅读并完成[安装 Python 和 AWS CLI](setting-up-iotwireless.md#wireless-onboard-prereq)。

以下步骤向您展示了如何登记 Sidewalk 终端设备并将其连接到适用于 Amazon Sidewalk 的 AWS IoT Core。如果要使用 AWS CLI 登记设备，可以参考本节提供的命令示例。有关使用 AWS IoT 控制台登记设备的信息，请参阅[连接到适用于 Amazon Sidewalk 的 AWS IoT Core](iot-sidewalk-onboard.md)。

**重要**  
要执行整个登记工作流，您还需要预置和登记终端设备，并连接硬件开发工具包（HDK）。有关更多信息，请参阅《Amazon Sidewalk 文档》**中的[预置和注册终端设备](https://docs.sidewalk.amazon/provisioning/)。

**Topics**
+ [步骤 1：将 Sidewalk 设备添加到适用于 Amazon Sidewalk 的 AWS IoT Core](#iot-sidewalk-qsg-step1)
+ [步骤 2：为 Sidewalk 终端设备创建目标](#iot-sidewalk-qsg-step2)
+ [步骤 3：预置和注册终端设备](#iot-sidewalk-qsg-step2)
+ [步骤 4：连接到终端设备并交换消息](#iot-sidewalk-qsg-step4)

## 步骤 1：将 Sidewalk 设备添加到适用于 Amazon Sidewalk 的 AWS IoT Core
<a name="iot-sidewalk-qsg-step1"></a>

下面概述了将 Sidewalk 终端设备添加到适用于 Amazon Sidewalk 的 AWS IoT Core 需要执行的步骤。存储您获得的有关您创建的设备配置文件和无线设备的信息。您将使用此信息来预置和注册终端设备。有关这些步骤的更多信息，请参阅[将设备添加到适用于 Amazon Sidewalk 的 AWS IoT Core](iot-sidewalk-create-device.md)。

1. 

**创建设备配置文件**

   创建包含 Sidewalk 设备的共享配置的设备配置文件。创建配置文件时，请将配置文件的 `name` 指定为字母数字字符串。要创建配置文件，请转到 AWS IoT 控制台的[配置文件中心的 Sidewalk 选项卡](https://console.aws.amazon.com/iot/home#/wireless/profiles?tab=sidewalk)并选择**创建配置文件**，或者使用 [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateDeviceProfile.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateDeviceProfile.html) API 操作或 [https://docs.aws.amazon.com/cli/latest/reference/create-device-profile.html](https://docs.aws.amazon.com/cli/latest/reference/create-device-profile.html) CLI 命令，如本示例所示。

   ```
   // Add your device profile using a name and the sidewalk object.
   aws iotwireless create-device-profile --name sidewalk_profile --sidewalk {}
   ```

1. 

**创建 Sidewalk 终端设备**

   使用适用于 Amazon Sidewalk 的 AWS IoT Core 创建 Sidewalk 终端设备。指定目标名称和从上一步获得的设备配置文件的 ID。要添加设备，请转到 AWS IoT 控制台的[设备中心的 Sidewalk 选项卡](https://console.aws.amazon.com/iot/home#/wireless/devices?tab=sidewalk)并选择**预置设备**，或者使用 [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateWirelessDevice.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateWirelessDevice.html) API 操作或 [https://docs.aws.amazon.com/cli/latest/reference/create-wireless-device.html](https://docs.aws.amazon.com/cli/latest/reference/create-wireless-device.html) 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-name SidewalkDestination \
       --sidewalk DeviceProfileId="12345678-234a-45bc-67de-e8901234f0a1"
   ```

1. 

**获取设备配置文件和无线设备信息**

   以 JSON 格式获取设备配置文件和无线设备信息。JSON 将包含有关设备详细信息、设备证书、私有密钥、`DeviceTypeId` 和 Sidewalk 制造序列号（SMSN）的信息。
   + 如果您使用的是 AWS IoT 控制台，则可以使用[设备中心的 Sidewalk 选项卡](https://console.aws.amazon.com/iot/home#/wireless/devices?tab=sidewalk)为 Sidewalk 终端设备下载组合的 JSON 文件。
   + 如果您使用的是 API 操作，请将从 API 操作 [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetDeviceProfile.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetDeviceProfile.html) 和 [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateWirelessDevice.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateWirelessDevice.html) 获得的响应存储为单独的 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 终端设备创建目标
<a name="iot-sidewalk-qsg-step2"></a>

下面概述了将目标添加到适用于 Amazon Sidewalk 的 AWS IoT Core 需要执行的步骤。使用 AWS 管理控制台、AWS IoT Wireless API 操作或 AWS CLI，您可以运行以下步骤来创建 AWS IoT 规则和目标。然后，您可以连接到硬件平台，并查看和交换消息。有关本节中用于 AWS CLI 示例的 IAM 角色和 AWS IoT 规则，请参阅[为您的目标创建 IAM 角色和 IoT 规则](sidewalk-destination-rule-role.md)。

1. 

**创建 IAM 角色**

   创建一个 IAM 角色来授予适用于 Amazon Sidewalk 的 AWS IoT Core 向 AWS IoT 规则发送数据的权限。要创建角色，请使用 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html) API 操作或 [https://docs.aws.amazon.com/cli/latest/reference/iam/create-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role) CLI 命令。您可以将角色命名为 *`SidewalkRole`*。

   ```
   aws iam create-role --role-name lambda-ex \ 
       --assume-role-policy-document file://lambda-trust-policy.json
   ```

1. 

**为目标创建规则**

   创建一条 AWS IoT 规则，用于处理设备数据并指定要向其发布消息的主题。连接到硬件平台后，您将观察到有关此主题的消息。使用 AWS IoT Core API 操作 [https://docs.aws.amazon.com/iot/latest/apireference/API_CreateTopicRule.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateTopicRule.html) 或 AWS CLI 命令 [https://docs.aws.amazon.com/cli/latest/reference/iot/create-topic-rule.html](https://docs.aws.amazon.com/cli/latest/reference/iot/create-topic-rule.html) 为目标创建规则。

   ```
   aws iot create-topic-rule --rule-name Sidewalkrule \ 
       --topic-rule-payload file://myrule.json
   ```

1. 

**创建目标**

   创建一个目标以将 Sidewalk 设备与 IoT 规则相关联，此 IoT 规则对设备进行处理，以便用于其他 AWS 服务。您可以使用 AWS IoT 控制台的[目标中心](https://console.aws.amazon.com/iot/home#/wireless/destinations)、[https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateDestination.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateDestination.html) API 操作或 [https://docs.aws.amazon.com/cli/latest/reference/create-destination.html](https://docs.aws.amazon.com/cli/latest/reference/create-destination.html) CLI 命令添加目标。

   ```
   aws iotwireless create-destination --name SidewalkDestination \
       --expression-type RuleName --expression SidewalkRule \
       --role-arn arn:aws:iam::123456789012:role/SidewalkRole
   ```

## 步骤 3：预置和注册终端设备
<a name="iot-sidewalk-qsg-step2"></a>

使用 Python 命令，您可以预置和注册您的终端设备。预置脚本使用您获得的设备 JSON 数据生成制造二进制映像，然后将其刷写到硬件板上。然后，您可以注册终端设备以连接到硬件平台。有关更多信息，请参阅《Amazon Sidewalk 文档》**中的[预置和注册终端设备](https://docs.sidewalk.amazon/provisioning/)。

**注意**  
注册您的 Sidewalk 终端设备时，您的网关必须选择加入 Amazon Sidewalk，并且网关和设备必须位于彼此的范围内。

## 步骤 4：连接到终端设备并交换消息
<a name="iot-sidewalk-qsg-step4"></a>

注册终端设备后，您可以连接终端设备并开始交换消息和设备数据。

1. 

**连接 Sidewalk 终端设备**

   将 HDK 连接到您的计算机，然后按照供应商文档提供的说明连接到您的 HDK。有关更多信息，请参阅《Amazon Sidewalk 文档》**中的[预置和注册终端设备](https://docs.sidewalk.amazon/provisioning/)。

1. 

**查看和交换消息**

   使用 MQTT 客户端订阅在规则中指定的主题并查看收到的消息。您还可以使用 [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_SendDataToWirelessDevice.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_SendDataToWirelessDevice.html) API 操作或 [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/send-data-to-wireless-device.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/send-data-to-wireless-device.html) CLI 命令向设备发送下行链路消息并验证连接状态。

   （可选）您可以启用消息传送状态事件来检查是否已成功接收下行链路消息。

   ```
   aws iotwireless send-data-to-wireless-device \
       --id "<Wireless_Device_ID>" \
       --payload-data "SGVsbG8gVG8gRGV2c2lt" \
       --wireless-metadata Sidewalk={Seq=1,AckModeRetryDurationSecs=10}
   ```