使用 AWS IoT 和使用 Amazon Loc MQTT ation Service 进行追踪 - Amazon Location Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 AWS IoT 和使用 Amazon Loc MQTT ation Service 进行追踪

MQTT是一种轻量级且被广泛采用的消息传递协议,专为受限的设备而设计。 AWS IoT Core 支持使用MQTT协议和MQTT通过 S WebSocket ecure (WSS) 协议的设备连接。

AWS IoT Core 将设备连接到设备 AWS 并使您能够在它们之间发送和接收消息。 AWS IoT Core 规则引擎存储有关设备消息主题的查询,并允许您定义向其他 AWS 服务(例如 Amazon Location Service)发送消息的操作。知道自己位置为坐标的设备可以通过规则引擎将其位置转发到 Amazon Location 。

注意

设备可能知道自己的位置,例如通过内置GPS。 AWS IoT 还支持第三方设备位置跟踪。想要了解更多信息,请参阅 AWS IoT Core 开发人员指南中的 AWS IoT Core Device Location

以下演练介绍了使用 AWS IoT Core 规则进行跟踪。如果您需要在将设备信息发送到 Amazon Loc AWS Lambda ation 之前对其进行处理,也可以将设备信息发送到您自己的部门。有关使用 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. 在 “发布到主题” 下,将主题名称设置为 iot/topic (或您在 AWS IoT Core 规则中设置的主题的名称,如果不同),并为消息负载提供以下内容。

    { "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