如何使用公共网络支持
要启用 Everynet 的公共网络支持,请在创建服务配置文件时启用某些漫游参数。在此测试版中,这些参数在您使用 AWS IoT Wireless API 或 AWS CLI 时可用。以下各节显示了必须启用的参数以及如何使用 AWS CLI 启用公共网络。
注意
只有在创建新的服务配置文件时,才能启用公共网络支持。您无法使用这些参数更新现有配置文件以启用公共网络。
漫游参数
在为设备创建服务配置文件时,请指定以下参数。在从 AWS IoT 控制台的配置文件CreateServiceProfile
或 AWS CLI 命令 create-service-profile
。
注意
适用于 LoRaWAN 的 AWS IoT Core 不支持移交漫游。创建服务配置文件时,您无法启用指定是否使用移交漫游的 HrAllowed
参数。
-
允许漫游激活(
RaAllowed
):此参数指定是否启用漫游激活。漫游激活使终端设备能够在 vNS 的覆盖范围内激活。使用漫游特征时,RaAllowed
必须设置为true
。 -
允许被动漫游(
PrAllowed
):此参数指定是否启用被动漫游。使用漫游特征时,PrAllowed
必须设置为true
。
为设备启用公共网络支持
要在设备上启用公共 LoRaWAN 网络支持,请运行以下过程。
注意
只能为 OTAA 设备启用公共网络功能。使用 ABP 作为激活方法的设备不支持此特征。
-
使用漫游参数创建服务配置文件
通过启用漫游参数创建服务配置文件。
注意
在为要与该服务配置文件关联的设备创建设备配置文件时,我们建议您为
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
\ --nameroamingprofile1
\ --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
" }
-
-
检查服务配置文件中的漫游参数
要检查您指定的漫游参数,可以在控制台中或使用
get-service-profile
CLI 命令查看服务配置文件,如下例所示。-
使用 AWS IoT控制台
转到 AWS IoT 控制台的配置文件
中心,然后选择您创建的配置文件。在详细信息页面的配置文件配置选项卡中,您将看到 RaAllowed 和 PrAllowed 设置为 true
。 -
使用 AWS IoT Wireless API
要查看您启用的漫游参数,请使用 GetServiceProfile API 操作或
get-service-profile
CLI 命令,如下例所示。aws iotwireless get-service-profile \ --region
us-east-1
\ --id12345678-a1b2-3c45-67d8-e90fa1b2c34d
运行此命令会将服务配置文件详细信息作为输出返回,包括漫游参数
RaAllowed
和PrAllowed
的值。{ "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 } }
-
-
将服务配置文件附加到设备
将您使用漫游参数创建的服务配置文件附加到终端设备。您也可以创建设备配置文件并为无线设备添加目标。您将使用此目标路由从您的设备发送的上行链路消息。有关创建设备配置文件和目标的更多信息,请参阅添加设备配置文件和将目标添加到 适用于 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 命令来获取更新的信息。
-
-
使用 Everynet 将设备连接到云端
由于已启用漫游,您的设备现在必须执行联接才能获得新的
DevAddr
。当您使用 OTAA 时,LoRaWAN 设备会发送联接请求,网络服务器将允许该请求。然后,它可以使用 Everynet 提供的网络覆盖范围连接到 AWS Cloud。有关如何为设备执行激活过程或联接的说明,请参阅设备文档。注意
-
只能针对使用 OTAA 作为激活方式的设备,启用漫游功能并连接到公共网络。不支持 ABP 设备。有关如何为设备执行激活过程或联接的说明,请参阅设备文档。请参阅 激活模式。
-
要禁用设备的漫游功能,您可以取消设备与该服务配置文件的关联,然后将其与漫游参数设置为
false
的另一个服务配置文件进行关联。切换到此服务配置文件后,您的设备必须再次加入,这样它们就不会继续在公共网络上运行。
-
-
交换上行链路和下行链路消息
在将设备联接到 适用于 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 服务条款
。
-