

# 適用於 AWS IoT Core 的 Amazon Sidewalk 入門
<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_tw/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* 中的 [README 文件](https://github.com/aws-samples/amazon-sidewalk-sample-iot-app/blob/main/README.md)。

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/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：連接至 Sidewalk 終端裝置並交換訊息](#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 角色，將傳送資料至 AWS IoT 規則的許可授予適用於 Amazon Sidewalk 的 AWS IoT Core。如要建立該角色，請使用 [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 規則相關聯的目的地，其會處理該規則以與其他 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：連接至 Sidewalk 終端裝置並交換訊息
<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}
   ```