配置 LoRaWAN 设备的位置 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

配置 LoRaWAN 设备的位置

将设备添加到 Amazon IoT Core for LoRaWAN 时,您可以指定静态位置信息、激活可选的定位解算器并添加目标。目标描述用于处理设备位置信息并将更新的位置路由到 Amazon Location Service 的 IoT 规则。配置设备位置后,位置数据将显示在 Amazon Location 地图上,其中包含准确度信息、解算器配置以及您指定的目标。

您可以使用 Amazon Web Services Management Console、Amazon IoT Wireless API 或 Amazon CLI 配置设备的位置。

如果激活定位解算器,您必须指定频率端口,以便将解算器计算的位置传达给 Amazon IoT Core for LoRaWAN。LoRaWAN 规范提供了数据传输字段(FRMPayload)和端口字段(FPort)来区分不同类型的消息。

要传输位置信息,您可以为频率端口指定一个介于 1 到 223 之间的任意值。FPort 0 为 MAC 消息预留,FPort 224 为 MAC 合规性测试预留,端口 225-255 为未来标准化应用扩展预留。

注意

LoRa Edge 芯片组采用流设计,不区分 WiFi 和 GNSS 有效负载。两个有效负载均使用共享 FPort 进行传输。有关更多信息以及要了解时钟同步,请参阅 Semtech 文档中的可靠的数据流

如果您已激活定位解算器,当 LoRaWAN 设备发送上行链路消息时,解算器会先计算位置信息。系统会使用频率端口将此位置信息传达给 Amazon IoT Core for LoRaWAN。当您添加目标时,它会创建一个 Amazon IoT 规则,以使用规则引擎将数据路由到 Amazon Location Service。然后,更新的位置信息将显示在 Amazon Location 地图上。如果您尚未激活任何解算器,则在您更新设备的静态位置坐标时,目标将路由位置数据。

以下代码显示了从 Amazon IoT Core for LoRaWAN 发送的上行链路消息的格式,其中包含位置信息、准确度、解算器配置和无线元数据。下面突出显示的字段是可选的。如果未激活解算器,或者没有垂直准确度信息,则此值为 null

注意

在此预览版中,仅从 Amazon Location 地图中获取水平准确度信息。垂直准确度将显示为 null

{ // Position configuration parameters for given wireless device "WirelessDeviceId": "5b58245e-146c-4c30-9703-0ca942e3ff35", "PayloadData": "Cc48AAAAAAAAAAA=", // Position information for a device. Altitude is optional. // If no vertical accuracy information is available or no // solvers are specified, the value is set to null. "PositionInfo": { "Position": [-22.219999313354492, 33.33000183105469, 99.0], "Accuracy": { "Horizontal": number "Vertical": number }, "SolverProvider": "Semtech", "SolverType": "GNSS", "SolverVersion": "1.0.2", "Timestamp": "2022-06-02T06:13:37.208Z" }, //Parameters controlled by IoT Core for LoRaWAN "WirelessMetadata": { "LoRaWAN": { "ADR": false, "Bandwidth": 125, "ClassB": false, "CodeRate": "4/5", "DataRate": "0", "DevAddr": "00b96cd4", "DevEui": "58a0cb000202c99", "FOptLen": 2, "FCnt": 1, "Fport": 136, "Frequency": "868100000", "Gateways": [ { "GatewayEui": "80029cfffe5cf1cc", "Snr": -29, "Rssi": 9.75 } ], "MIC": "7255cb07", "MType": "UnconfirmedDataUp", "Major": "LoRaWANR1", "Modulation": "LORA", "PolarizationInversion": false, "SpreadingFactor": 12, "Timestamp": "2021-05-03T03:24:29Z" } } }

使用控制台配置设备的位置

要使用 Amazon Web Services Management Console 配置和管理设备资源的位置,请先登录控制台,然后转到 Amazon IoT 控制台的 Gateways(网关)中心页面。

添加位置配置

为设备添加位置配置:

  1. Devices(设备)中心页面中,选择 Add wireless device(添加无线设备)。

  2. 输入无线设备规格、设备和服务配置文件以及用于定义将数据路由到其他 Amazon Web Service 的 IoT 规则的目标。有关更多信息,请参阅将您的设备搭载到 Amazon IoT Core for LoRaWAN 上

  3. 输入位置信息、要使用的任何可选地理位置解算器以及设备的位置数据目标。

    1. 位置信息

      使用纬度和经度坐标以及可选的高度坐标指定设备的位置数据。位置信息基于 WGS84 坐标系。

    2. 地理位置解算器

      指定您希望 Amazon IoT Core for LoRaWAN 用于计算设备位置的任何地理位置解算器。这些解算器可用于实时识别设备的位置。要输入解算器信息,请选择 Activate positioning solvers(激活定位解算器)。

      1. 检查 Solver type(解算器类型)是否指定为 Semtech GNSS。要激活此解算器,请使用具有 Semtech LoRa Edge 芯片的 LoRaWAN 设备。有关更多信息,请参阅定位解算器:Semtech GNSS

      2. 输入定位频率端口,其中包括时钟同步、流和 GNSS 的 FPort 值。您将看到填充的默认 FPort 供您参考。但是,您可以选择 1 到 223 之间的其他任意值。

      3. 为位置数据激活可选的前向纠错(FEC)以避免数据包丢失并纠正错误,而无需重新传输数据。使用错误纠正可能会对您的 Amazon Web Services 账户 额外计费。有关 FEC 和 GNSS 解算器的更多信息,请参阅 Semtech 文档中的调制解调器和地理定位服务

    3. 位置数据目标

      选择一个目标以描述用于处理设备位置数据并将此数据转发到 Amazon IoT Core for LoRaWAN 的 Amazon IoT 规则。此目标仅用于路由位置数据。它必须不同于您用于将设备数据路由到其他 Amazon Web Service 的目标。

查看设备的位置配置

配置设备的位置后,Amazon IoT Core for LoRaWAN 会创建一个称为 iotwireless.map 的 Amazon Location 地图。您可以在设备详细信息页面中的 Position(位置)选项卡上查看此地图。根据您指定的位置坐标或定位解算器计算的位置,网关的位置将在地图上显示为标记。您可以放大或缩小以在地图上清晰地查看设备的位置。

注意

如果尚未激活 Amazon Location Service 地图,您将看到一条消息,指示您必须使用 Amazon Location Service 才能访问地图并查看位置。使用 Amazon Location Service 地图可能会对您的 Amazon Web Services 账户 额外计费。有关更多信息,请参阅 Amazon IoT Core 定价

地图 iotwireless.map 用作可使用 Get API 操作(GetMapTile)访问的地图数据的来源。有关与地图一起使用的 Get API 的信息,请参阅 Amazon Location Service API 参考

要获取有关此地图的其他详细信息,请转到 Amazon Location Service 控制台,选择 maps(地图),然后选择 iotwireless.map。有关更多信息,请参阅《Amazon Location Service 开发人员指南》中的地图

在设备详细信息页面中的 Position(位置)选项卡上,您还将看到准确度信息、确定设备位置的时间戳以及您指定的位置数据目标。

更新设备的位置配置

要更改设备的位置配置,请在设备详细信息页面中选择 Edit(编辑),然后更新位置信息、任何解算器配置设置和目标。

注意

在此预览版中,历史位置信息不可用。当您更新设备的位置坐标时,它将覆盖以前报告的位置数据。更新位置后,在设备详细信息的 Position(位置)选项卡中,您将看到新的位置信息。时间戳的更改表示它对应于设备的上次已知位置。

使用 API 配置设备位置

您可以使用 Amazon IoT Wireless API 或 Amazon CLI 指定位置信息、配置设备位置以及添加任何可选的地理位置解算器配置。

添加位置信息和配置

使用以下 Amazon IoT Wireless API 操作或 Amazon CLI 命令来更新给定无线设备的位置信息和位置配置。

  • 添加设备位置

    要添加给定无线设备的静态位置信息,请使用 UpdatePosition API 操作或 update-position CLI 命令指定坐标。将 WirelessDevice 指定为 ResourceType,将要更新的无线设备的 ID 指定为 ResourceIdentifier,并将位置坐标指定为包含纬度、经度和高度信息的数组。

    aws iotwireless update-position \ --resource-type WirelessDevice \ --resource-id "1ffd32c8-8130-4194-96df-622f072a315f" \ --position [33.33, -33.33, 10.0]

    运行此命令不会生成任何输出。要查看您指定的位置信息,请使用 GetPosition API。

  • 配置解算器和位置目标

    要配置给定无线设备的位置目标和解算器,请使用 PutPositionConfiguration API 操作或 put-position-configuration CLI 命令。将 WirelessDevice 指定为 ResourceType,将要更新的无线设备 ID 指定为 ResourceIdentifier,并指定要使用的任何可选解算器的配置信息和用于路由位置数据的目标。

    aws iotwireless put-position-configuration \ --resource-type WirelessDevice \ --resource-id "1ffd32c8-8130-4194-96df-622f072a315f" \ --cli-input-json file:\\input.json

    以下代码显示 input.json 文件的内容:

    input.json 的内容

    { "Destination": "Device_position_destination" "Solvers": { "SemtechGnss": { "Status": "Enabled", "Fec": "ROSE" } } }

    运行此命令不会生成任何输出。要查看您指定的位置信息,请使用 GetPositionConfigurationListPositionConfigurations API 操作。

获取位置信息和配置

使用以下 Amazon IoT Wireless API 操作或 Amazon CLI 命令来获取给定无线设备的位置信息和位置配置。

  • 获取设备的位置信息

    要获取给定无线设备的位置信息,请使用 GetPosition API 或 get-position CLI 命令。将 WirelessDevice 指定为 resourceType,并提供无线设备的 ID 作为 resourceIdentifier

    aws iotwireless get-position \ --resource-type WirelessDevice \ --resource-id "1ffd32c8-8130-4194-96df-622f072a315f"

    运行此命令会显示无线设备的位置信息。您将看到有关位置坐标的信息、对应于设备的上次已知位置的时间戳以及准确度信息。

    { "Accuracy": { "HorizontalAccuracy": 0.0, "VerticalAccuracy": 0.0 }, "Position": [ 33.33000183105469, -33.33000183105469, 10.0 ], "SolverProvider": null, "SolverType": null, "SolverVersion": null, "Timestamp": "Fri Jul 01 19:43:37 UTC 2022" }
  • 获取设备的位置配置

    要获取给定无线设备的位置配置,请使用 GetPositionConfiguration API 或 get-position-configuration CLI 命令。将 WirelessDevice 指定为 resourceType,并提供无线设备的 ID 作为 resourceIdentifier

    aws iotwireless get-position-configuration \ --resource-type WirelessDevice \ --resource-id "1ffd32c8-8130-4194-96df-622f072a315f"

    运行此命令将显示无线设备的位置配置。您将看到有关您为路由位置数据指定的解算器配置和目标的信息。

    { "Destination": "Device_position_destination", "Solvers": { "SemtechGnss": { "Fec": "ROSE", "Provider": "Semtech", "Status": "Enabled", "Type": "GNSS" } } }

列出位置配置

您可以为账户中的多个资源创建位置配置。资源可以是无线设备和/或网关。创建这些配置后,可以使用 ListPositionConfigurations API 操作或 list-position-configurations CLI 命令来获取这些配置的列表。要筛选列表以仅显示无线设备的位置配置,请将 resourceType 设置为 WirelessDevice

aws iotwireless list-position-configurations \ --resource-type WirelessDevice

运行此命令会显示您的 Amazon Web Services 账户 中所有 LoRaWAN 设备的位置配置。也可以使用 max-results 参数来指定要显示多少个配置。下面的代码显示运行此命令的输出。

{ "PositionConfigurationList": [ { "Destination": "Device_position_destination1", "ResourceIdentifier": "12345678-a1b2-3c45-67d8-e90fa1b2c34d", "ResourceType": "WirelessDevice", "Solvers": { "SemtechGnss": { "Fec": "ROSE", "Provider": "Semtech", "Status": "Enabled", "Type": "GNSS" } } }, { "Destination": "Device_position_destination2", "ResourceIdentifier": "12345678-a1b2-c3d4-e5f6-e90fa1b2c34d", "ResourceType": "WirelessDevice", "Solvers": { "SemtechGnss": { "Fec": "ROSE", "Provider": "Semtech", "Status": "Enabled", "Type": "GNSS" } } } ] }