使用 AWS IoT MQTT 與 Amazon 定 Location Service 進行跟踪 - Amazon Location Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 AWS IoT MQTT 與 Amazon 定 Location Service 進行跟踪

MQTT 是一種輕量級且廣泛採用的消息傳遞協議,專為受限設備設計。 AWS IoT Core支援使用 MQTT 通訊協定和 MQTT 透過 WebSocket 安全 (WSS) 通訊協定的裝置連線。

AWS IoT Core將設備連接到AWS並使您能夠在它們之間發送和接收消息。AWS IoT Core規則引擎會儲存有關裝置訊息主題的查詢,並可讓您定義將訊息傳送至其他AWS服務的動作,例如 Amazon 定 Location Service。將其位置視為座標的裝置,可以透過規則引擎將其位置轉送到 Amazon 位置。

注意

設備可能知道自己的位置,例如通過內置 GPS。 AWS IoT還支持第三方設備位置跟踪。如需詳細資訊,請參閱AWS IoT核心開發人員指南中的AWS IoT核心裝置位置

以下逐步解說說明使用AWS IoT Core規則進行追蹤。如果您需要在傳送至 Amazon 位置之前處理裝置資訊,也可以將裝置資訊傳送至您自己的AWS Lambda功能。如需使用 Lambda 處理裝置位置的詳細資訊,請參閱AWS Lambda搭配 MQTT 使用

先決條件

您必須先完成下列先決條件,才能開始追蹤:

  • 創建一個跟踪器資源,您將向其發送設備位置數據。

  • 建立 IAM 角色以授予追蹤器的AWS IoT Core存取權。

    按照這些步驟進行操作時,請使用以下策略授予跟踪器的訪問權限:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "WriteDevicePosition", "Effect": "Allow", "Action": "geo:BatchUpdateDevicePosition", "Resource": "arn:aws:geo:*:*:tracker/*" } ] }

建立 AWS IoT Core 規則

接下來,建立AWS IoT Core規則,將裝置的位置遙測轉寄至 Amazon 定 Location Service。如需有關建立規則的詳細資訊,請參閱AWS IoT Core開發人員指南中的下列主題:

在主控台中測試您的AWS IoT Core規則

如果目前沒有裝置發佈包含位置的遙測,您可以使用AWS IoT Core主控台測試規則。控制台具有測試客戶端,您可以在其中發布示例消息以驗證解決方案的結果。

  1. 請在以下位置登入AWS IoT Core主控台 https://console.aws.amazon.com/iot/

  2. 在左側導覽列中,展開 [測試],然後選擇 [MQTT 測試用戶端]。

  3. 在「發佈至主題」下,將「主題名稱」設定為 「物聯網/主題」(或您在AWS IoT Core規則中設定的主題名稱 (如果不同),並為「訊息」承載提供下列資訊。將時間戳記 1604940328 取代為過去 30 天內的有效時間戳記 (Amazon 定 Location Service 追蹤器會忽略任何超過 30 天的時間戳記)。

    { "payload": { "deviceid": "thing123", "timestamp": 1604940328, "location": { "lat": 49.2819, "long": -123.1187 }, "accuracy": { "Horizontal": 20.5 }, "positionProperties": { "field1": "value1", "field2": "value2" } } }
  4. 選擇「發佈至主題」以傳送測試訊息。

  5. 若要驗證 Amazon 定 Location Service 是否收到訊息,請使用下列AWS CLI命令。如果您在設定期間對其進行修改,請將追蹤器名稱取代為您使用的名稱。

    aws location batch-get-device-position --tracker-name MyTracker --device-ids thing123