查看从 LoRaWAN 设备发送的上行链路消息的格式 - AWS IoT Wireless

查看从 LoRaWAN 设备发送的上行链路消息的格式

将 LoRaWAN 设备连接到 适用于 LoRaWAN 的 AWS IoT Core 后,您可以观察将从无线设备接收的上行链路消息的格式。

您必须已登记无线设备并将设备连接到 AWS IoT,以便它能够传输和接收数据。有关将您的设备登记到 适用于 LoRaWAN 的 AWS IoT Core 的更多消息,请参阅 将您的设备登记到 适用于 LoRaWAN 的 AWS IoT Core

LoRaWAN 设备使用 LoRaWAN 网关连接到 适用于 LoRaWAN 的 AWS IoT Core。您从设备接收的上行链路消息将包含以下信息。

  • 对应从无线设备发送的加密负载消息的负载数据。

  • 无线元数据,包括:

    • 设备信息,例如 DevEui、数据速率和设备运行所在的频率通道。

    • 连接到设备的网关的可选附加参数和网关信息。网关参数包括网关的 EUI、SNR 和 RSSi。

    通过使用无线元数据,您可以获取有关无线设备的有用信息以及在设备和 AWS IoT 之间传输的数据。例如,您可以使用 AckedMessageId 参数来检查设备是否已收到上次确认的下行链路消息。或者,如果您选择包含网关信息,则可以确定是否要切换到更靠近设备的更强网关通道。

登记设备后,您可以使用 AWS IoT 控制台中 Test(测试)页面的 MQTT 测试客户端订阅创建目标时指定的主题。连接设备并开始发送负载数据后,您将开始看到消息。

此图表标识了连接到 适用于 LoRaWAN 的 AWS IoT Core 的 LoRaWAN 系统中的密钥元素,其中显示了主数据面板以及数据在系统中流动的方式。

图片显示了 适用于 LoRaWAN 的 AWS IoT Core 数据如何从无线设备传递到 AWS IoT 和其他服务。

当无线设备开始发送上行链路数据时,适用于 LoRaWAN 的 AWS IoT Core 将无线元数据信息与负载打包,然后将其发送到 AWS 应用程序。

以下示例显示了从您的设备接收的上行链路消息的格式。

{ "WirelessDeviceId": "5b58245e-146c-4c30-9703-0ca942e3ff35", "PayloadData": "Cc48AAAAAAAAAAA=", "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" } } }

如果要从上行链路元数据中排除网关元数据信息,请在您创建服务配置文件时禁用 AddGwMetadata 参数。有关禁用此参数的信息,请参阅 添加服务配置文件

在这种情况下,您将不会在上行链路元数据中看到 Gateways 部分,如以下示例所示。

{ "WirelessDeviceId": "0d9a439b-e77a-4573-a791-49d5c0f4db95", "PayloadData": "AAAAAAAA//8=", "WirelessMetadata": { "LoRaWAN": { "ClassB": false, "CodeRate": "4/5", "DataRate": "1", "DevAddr": "01920f27", "DevEui": "ffffff10000163b0", "FCnt": 1, "FPort": 5, "Timestamp": "2021-04-29T05:19:43.646Z" } } }