Llevar a cabo la velocidad de datos adaptativa (ADR) con AWS IoT Core para LoRaWAN - AWS IoT Wireless

Llevar a cabo la velocidad de datos adaptativa (ADR) con AWS IoT Core para LoRaWAN

Para optimizar el consumo de energía de transmisión del dispositivo y, al mismo tiempo, garantizar que los mensajes de los dispositivos finales se reciban en las puertas de enlace, AWS IoT Core para LoRaWAN utiliza la velocidad de datos adaptativa. La velocidad de datos adaptativa indica a los dispositivos finales que optimicen la velocidad de datos, la potencia de transmisión y el número de retransmisiones, al tiempo que intentan reducir la tasa de errores de los paquetes recibidos en las puertas de enlace. Por ejemplo, si el dispositivo final está ubicado cerca de las puertas de enlace, la velocidad de datos adaptativa reduce la potencia de transmisión y aumenta la velocidad de datos.

Cómo funciona la velocidad de datos adaptativa (ADR)

Para habilitar la ADR, el dispositivo debe configurar el bit ADR en el encabezado del marco. Una vez configurado el bit ADR, AWS IoT Core para LoRaWAN envía el comando MAC LinkADRReq y sus dispositivos responden con el comando LinkADRAns que incluye el estado ACK del comando ADR. Cuando los dispositivos envían el ACK con el comando ADR, se seguirán las instrucciones del ADR de AWS IoT Core para LoRaWAN y se ajustarán los valores de los parámetros de transmisión para obtener una velocidad de datos óptima.

El algoritmo ADR de AWS IoT Core para LoRaWAN utiliza la información de la SINR del historial de metadatos del enlace ascendente para determinar la potencia de transmisión y la velocidad de datos óptimas que deben utilizar los dispositivos. El algoritmo utiliza los 20 mensajes de enlace ascendente más recientes que comienzan una vez que se establece el bit ADR en el encabezado del marco. Para determinar el número de retransmisiones, se utiliza la tasa de errores de paquetes (PER), que es un porcentaje del número total de paquetes que se pierden. Cuando utiliza este algoritmo, solo puede controlar el rango de velocidades de datos, es decir, los límites mínimo y máximo de las velocidades de datos.

Configurar los límites de velocidad de datos (CLI)

De forma predeterminada, AWS IoT Core para LoRaWAN realizará la ADR cuando configure el bit ADR en el encabezado del marco de su dispositivo LoRaWAN. Puede controlar los límites mínimo y máximo de la velocidad de datos al crear un perfil de servicio para sus dispositivos LoRaWAN mediante la operación API CreateServiceProfile de AWS IoT Wireless o el comando create-service-profile de la AWS CLI.

nota

No puede especificar los límites máximo y mínimo de velocidad de datos al crear un perfil de servicio desde AWS Management Console. Solo se puede especificar mediante la API de AWS IoT Wireless o la AWS CLI.

Para especificar los límites mínimo y máximo de la velocidad de datos, utilice los parámetros DrMin y DrMax con la operación API CreateServiceProfile. Los límites máximo y mínimo de velocidad de datos predeterminados son 0 y 15. Por ejemplo, el siguiente comando de la CLI establece un límite de velocidad de datos mínimo de 3 y un límite máximo de 12.

aws iotwireless create-service-profile \ --lorawan DrMin=3,DrMax=12

La ejecución de este comando genera un ID y un nombre de recurso de Amazon (ARN) para el perfil de servicio.

{ "Arn": "arn:aws:iotwireless:us-east-1:123456789012:ServiceProfile/12345678-a1b2-3c45-67d8-e90fa1b2c34d", "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d" }

Puede obtener los valores de los parámetros especificados mediante la operación API GetServiceProfile de AWS IoT Wireless o el comando get-service-profile de la AWS CLI.

aws iotwireless get-service-profile --id "12345678-a1b2-3c45-67d8-e90fa1b2c34d"

La ejecución de este comando genera los valores de los parámetros del perfil de servicio.

{ "Arn": "arn:aws:iotwireless:us-east-1:651419225604:ServiceProfile/12345678-a1b2-3c45-67d8-e90fa1b2c34d", "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d", "LoRaWAN": { "UlRate": 60, "UlBucketSize": 4096, "DlRate": 60, "DlBucketSize": 4096, "AddGwMetadata": false, "DevStatusReqFreq": 24, "ReportDevStatusBattery": false, "ReportDevStatusMargin": false, "DrMin": 3, "DrMax": 12, "PrAllowed": false, "HrAllowed": false, "RaAllowed": false, "NwkGeoLoc": false, "TargetPer": 5, "MinGwDiversity": 1 } }

Si ha creado varios perfiles, puede usar la operación API ListServiceProfiles o el comando list-service-profiles de la AWS CLI para enumerar los perfiles de servicio en su Cuenta de AWS; luego, puede usar la API GetServiceProfile o el comando get-service-profile de la CLI para recuperar el perfil de servicio para el que ha personalizado los límites de velocidad de datos.