加入 Sidewalk 裝置簡介 - AWS IoT Wireless

加入 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

  1. 建立裝置設定檔

    建立一個包含 Sidewalk 裝置共用組態的裝置設定檔。建立設定檔時,請將設定檔的 name 指定為英數字串。如要建立設定檔,請移至 AWS IoT 主控台中設定檔中樞的 Sidewalk 索引標籤,並選擇建立設定檔,或使用 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 {}
  2. 建立您的 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-name SidewalkDestination \ --sidewalk DeviceProfileId="12345678-234a-45bc-67de-e8901234f0a1"
  3. 取得裝置設定檔和無線裝置資訊

    以 JSON 格式取得裝置設定檔和無線裝置資訊。JSON 將會包含裝置詳細信訊、裝置憑證、私有金鑰、DeviceTypeId 和 Sidewalk 製造序號 (SMSN) 的相關資訊。

    • 若您使用 AWS IoT 主控台,則可使用裝置中樞的 Sidewalk 索引標籤,為您的 Sidewalk 終端裝置下載合併的 JSON 檔案。

    • 若您正在使用 API 操作,請將從 API 操作 GetDeviceProfileGetWirelessDevice 取得的回應儲存為個別的 JSON 檔案,例如 device_profile.jsonwireless_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 規則

  1. 建立 IAM 角色

    建立 IAM 角色,將傳送資料至 AWS IoT 規則的許可授予適用於 Amazon Sidewalk 的 AWS IoT Core。如要建立該角色,請使用 CreateRole API 操作或 create-role CLI 命令。您可將該角色命名為 SidewalkRole

    aws iam create-role --role-name lambda-ex \ --assume-role-policy-document file://lambda-trust-policy.json
  2. 建立一個目的地規則

    建立將要處理裝置資料的 AWS IoT 規則名稱,並指定要發佈訊息的主題。連接至硬體平台後,您將會觀察此主題的訊息。請使用 AWS IoT Core API 操作 CreateTopicRule,或 AWS CLI 命令 create-topic-rule,來建立一個目的地規則。

    aws iot create-topic-rule --rule-name Sidewalkrule \ --topic-rule-payload file://myrule.json
  3. 建立目的地

    建立一個將您的 Sidewalk 裝置與 IoT 規則相關聯的目的地,其會處理該規則以與其他 AWS 服務 搭配使用。您可使用 AWS IoT 主控台的目的地中樞、或 CreateDestination API 操作或 create-destination CLI 命令來新增目的地。

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

步驟 3:佈建和註冊終端裝置

使用 Python 命令,您可以佈建和註冊您的終端裝置。佈建指令碼會使用您取得的裝置 JSON 資料,來產生一個製造二進位影像,然後再於硬體主機板上加以重新整理。接著,您可註冊終端裝置以連接至硬體平台。如需詳細資訊,請參閱《Amazon Sidewalk 文件》中的佈建和註冊您的終端裝置

注意

註冊 Sidewalk 終端裝置時,您的閘道必須選擇加入 Amazon Sidewalk,且閘道和裝置必須在彼此的範圍內。

步驟 4:連接至 Sidewalk 終端裝置並交換訊息

註冊您的終端裝置後,則可接著連接您的終端裝置並開始交換訊息和裝置資料。

  1. 連接您的 Sidewalk 終端裝置

    將 HDK 連接至您的電腦,並依照廠商說明文件提供的指示連接至您的 HDK。如需詳細資訊,請參閱《Amazon Sidewalk 文件》中的佈建和註冊您的終端裝置

  2. 檢視和交換訊息

    使用 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}