如何使用公共网络支持 - AWS IoT Wireless

如何使用公共网络支持

要启用 Everynet 的公共网络支持,请在创建服务配置文件时启用某些漫游参数。在此测试版中,这些参数在您使用 AWS IoT Wireless API 或 AWS CLI 时可用。以下各节显示了必须启用的参数以及如何使用 AWS CLI 启用公共网络。

注意

只有在创建新的服务配置文件时,才能启用公共网络支持。您无法使用这些参数更新现有配置文件以启用公共网络。

漫游参数

在为设备创建服务配置文件时,请指定以下参数。在从 AWS IoT 控制台的配置文件中心添加服务配置文件时,请指定这些参数,也可以使用 AWS IoT Wireless API 操作 CreateServiceProfile 或 AWS CLI 命令 create-service-profile

注意

适用于 LoRaWAN 的 AWS IoT Core 不支持移交漫游。创建服务配置文件时,您无法启用指定是否使用移交漫游的 HrAllowed 参数。

  • 允许漫游激活(RaAllowed):此参数指定是否启用漫游激活。漫游激活使终端设备能够在 vNS 的覆盖范围内激活。使用漫游特征时,RaAllowed 必须设置为 true

  • 允许被动漫游(PrAllowed):此参数指定是否启用被动漫游。使用漫游特征时,PrAllowed 必须设置为 true

为设备启用公共网络支持

要在设备上启用公共 LoRaWAN 网络支持,请运行以下过程。

注意

只能为 OTAA 设备启用公共网络功能。使用 ABP 作为激活方法的设备不支持此特征。

  1. 使用漫游参数创建服务配置文件

    通过启用漫游参数创建服务配置文件。

    注意

    在为要与该服务配置文件关联的设备创建设备配置文件时,我们建议您为 RxDelay1 参数指定一个较大的值,至少大于 2 秒。

    • 使用 AWS IoT控制台

      转到 AWS IoT 控制台的配置文件中心,然后选择添加服务配置文件。创建配置文件时,选择启用公共网络

    • 使用 AWS IoT Wireless API

      要在创建服务配置文件时启用漫游功能,请使用 CreateServiceProfile API 操作或 create-service-profile CLI 命令,如下例所示。

      aws iotwireless create-service-profile \ --region us-east-1 \ --name roamingprofile1 \ --lorawan '{"AddGwMetadata":true,"PrAllowed":true,"RaAllowed":true}'

      运行此命令将返回服务配置文件的 ARN 和 ID 作为输出。

      { "Arn": "arn:aws:iotwireless:us-east-1:123456789012:ServiceProfile/12345678-a1b2-3c45-67d8-e90fa1b2c34d", "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d" }
  2. 检查服务配置文件中的漫游参数

    要检查您指定的漫游参数,可以在控制台中或使用 get-service-profile CLI 命令查看服务配置文件,如下例所示。

    • 使用 AWS IoT控制台

      转到 AWS IoT 控制台的配置文件中心,然后选择您创建的配置文件。在详细信息页面的配置文件配置选项卡中,您将看到 RaAllowedPrAllowed 设置为 true

    • 使用 AWS IoT Wireless API

      要查看您启用的漫游参数,请使用 GetServiceProfile API 操作或 get-service-profile CLI 命令,如下例所示。

      aws iotwireless get-service-profile \ --region us-east-1 \ --id 12345678-a1b2-3c45-67d8-e90fa1b2c34d

      运行此命令会将服务配置文件详细信息作为输出返回,包括漫游参数 RaAllowedPrAllowed 的值。

      { "Arn": "arn:aws:iotwireless:us-east-1:123456789012:ServiceProfile/12345678-a1b2-3c45-67d8-e90fa1b2c34d", "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d", "Name": "roamingprofile1" "LoRaWAN": { "UlRate": 60, "UlBucketSize": 4096, "DlRate": 60, "DlBucketSize": 4096, "AddGwMetadata": true, "DevStatusReqFreq": 24, "ReportDevStatusBattery": false, "ReportDevStatusMargin": false, "DrMin": 0, "DrMax": 15, "PrAllowed": true, "RaAllowed": true, "NwkGeoLoc": false, "TargetPer": 5, "MinGwDiversity": 1 } }
  3. 将服务配置文件附加到设备

    将您使用漫游参数创建的服务配置文件附加到终端设备。您也可以创建设备配置文件并为无线设备添加目标。您将使用此目标路由从您的设备发送的上行链路消息。有关创建设备配置文件和目标的更多信息,请参阅添加设备配置文件将目标添加到 适用于 LoRaWAN 的 AWS IoT Core

    • 登记新设备

      如果您尚未登记设备,则可以指定此服务配置文件,以便在将设备添加 适用于 LoRaWAN 的 AWS IoT Core 时使用。以下命令显示如何使用 create-wireless-device CLI 命令,通过您创建的服务配置文件的 ID 添加设备。有关使用控制台添加服务配置文件的信息,请参阅使用控制台将您的无线设备规范添加到 适用于 LoRaWAN 的 AWS IoT Core

      aws iotwireless create-wireless-device --cli-input-json file://createdevice.json

      下面显示的是 createdevice.json 文件的内容。

      createdevice.json 的内容

      { "Name": "DeviceA", "Type": LoRaWAN, "DestinationName": "RoamingDestination1", "LoRaWAN": { "DeviceProfileId": "ab0c23d3-b001-45ef-6a01-2bc3de4f5333", "ServiceProfileId": "12345678-a1b2-3c45-67d8-e90fa1b2c34d", "OtaaV1_1": { "AppKey": "3f4ca100e2fc675ea123f4eb12c4a012", "JoinEui": "b4c231a359bc2e3d", "NwkKey": "01c3f004a2d6efffe32c4eda14bcd2b4" }, "DevEui": "ac12efc654d23fc2" }, }

      运行此命令的输出将生成无线设备的 ARN 和 ID 作为输出。

      { "Arn": "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/1ffd32c8-8130-4194-96df-622f072a315f", "Id": "1ffd32c8-8130-4194-96df-622f072a315f" }
    • 更新现有设备

      如果您已经登记了设备,则可以更新现有的无线设备以使用此服务配置文件。以下命令显示如何使用 update-wireless-device CLI 命令,通过您创建的服务配置文件的 ID 更新设备。

      aws iotwireless update-wireless-device \ --id "1ffd32c8-8130-4194-96df-622f072a315f" \ --service-profile-id "12345678-a1b2-3c45-67d8-e90fa1b2c34d" \ --description "Using roaming service profile A"

      此命令不会生成任何输出。您可以使用 GetWirelessDevice API 或 get-wireless-device CLI 命令来获取更新的信息。

  4. 使用 Everynet 将设备连接到云端

    由于已启用漫游,您的设备现在必须执行联接才能获得新的 DevAddr。当您使用 OTAA 时,LoRaWAN 设备会发送联接请求,网络服务器将允许该请求。然后,它可以使用 Everynet 提供的网络覆盖范围连接到 AWS Cloud。有关如何为设备执行激活过程或联接的说明,请参阅设备文档。

    注意
    • 只能针对使用 OTAA 作为激活方式的设备,启用漫游功能并连接到公共网络。不支持 ABP 设备。有关如何为设备执行激活过程或联接的说明,请参阅设备文档。请参阅 激活模式

    • 要禁用设备的漫游功能,您可以取消设备与该服务配置文件的关联,然后将其与漫游参数设置为 false 的另一个服务配置文件进行关联。切换到此服务配置文件后,您的设备必须再次加入,这样它们就不会继续在公共网络上运行。

  5. 交换上行链路和下行链路消息

    在将设备联接到 适用于 LoRaWAN 的 AWS IoT Core 后,即可开始在设备和云端之间交换消息。

    • 查看上行链路消息

      当您从设备发送上行链路消息时,适用于 LoRaWAN 的 AWS IoT Core 使用您之前配置的目标将这些消息传送到您的 AWS 账户。这些消息将通过 Everynet 的网络从您的设备发送到云端。

      您可以使用 AWS IoT 规则名称查看消息,也可以使用 MQTT 客户端订阅在创建目标时指定的 MQTT 主题。有关规则名称和您指定的其他目标详细信息的更多信息,请参阅使用控制台添加一个目标

      有关查看上行链路消息和格式的更多信息,请参阅查看从 LoRaWAN 设备发送的上行链路消息的格式

    • 发送下行链路消息

      您可以从控制台对下行链路消息排队并向设备发送这些消息,也可以使用 AWS IoT Wireless API 命令 SendDataToWirelessDevice 或 AWS CLI 命令 send-data-to-wireless-device 执行这一过程。有关对下行链路消息排队和发送这些消息的信息,请参阅管理要发送到 LoRaWAN 设备的下行链路消息队列

      以下代码显示了如何使用 send-data-to-wireless-device CLI 命令发送下行链路消息的示例。您可以指定接收数据的无线设备的 ID、有效负载、是否使用确认模式以及无线元数据。

      aws iotwireless send-data-to-wireless-device \ --id "1ffd32c8-8130-4194-96df-622f072a315f" \ --transmit-mode "1" \ --payload-data "SGVsbG8gVG8gRGV2c2lt" \ --wireless-metadata LoRaWAN={FPort=1}

      运行此命令的输出会生成下行链路消息的 MessageId

      注意

      在某些情况下,即使收到 MessageId,数据包也可能丢失。有关对此类场景进行问题排查和解决问题的信息,请参阅排查下行链路消息队列错误

      { MessageId: "6011dd36-0043d6eb-0072-0008" }
    • 查看覆盖范围信息

      启用公共网络后,可以在 AWS IoT 控制台中查看网络覆盖范围信息。转至 AWS IoT 控制台的覆盖范围中心,然后搜索位置以在地图上查看设备的覆盖范围信息。

      注意

      此特征使用 Amazon Location Service 在 Amazon Location 地图上显示您设备的覆盖范围信息。使用 Amazon Location 地图之前,请查看 Amazon Location Service 的条款和条件。请注意,AWS 可能会将您的 API 查询传输给您选择的第三方数据提供商,这些提供商可能不在您当前使用的 AWS 区域范围内。有关更多信息,请参阅 AWS 服务条款