Esecuzione della velocità di trasmissione dati adattiva (ADR) con AWS IoT Core per LoRaWAN
Per ottimizzare il consumo di energia di trasmissione del dispositivo e garantire al contempo che i messaggi dei dispositivi finali vengano ricevuti dai gateway, AWS IoT Core per LoRaWAN utilizza una velocità di trasmissione dati adattiva. La velocità di trasmissione dati adattiva indica ai dispositivi finali di ottimizzare la velocità dei dati, la potenza di trasmissione e il numero di ritrasmissioni, cercando di ridurre la percentuale di errori dei pacchetti ricevuti dai gateway. Ad esempio, se il dispositivo finale si trova vicino ai gateway, la velocità di trasmissione dati adattiva riduce la potenza di trasmissione e aumenta la velocità di trasmissione.
Argomenti
Come funziona la velocità di trasmissione dati adattiva (ADR)
Per abilitare l'ADR, il dispositivo deve impostare il bit ADR nell'intestazione del frame. Una volta impostato il bit ADR, AWS IoT Core per LoRaWAN invia il comando LinkADRReq
MAC e i dispositivi rispondono con il comando LinkADRAns
che include lo stato ACK del comando ADR. Una volta ricevuto l'ACK del comando ADR, il dispositivo seguirà le istruzioni ADR da AWS IoT Core per LoRaWAN e regolerà i valori dei parametri di trasmissione per ottenere la velocità di trasmissione ottimale.
L'algoritmo AWS IoT Core per LoRaWAN ADR utilizza le informazioni SINR nella cronologia dei metadati di uplink per determinare la potenza di trasmissione e la velocità di trasmissione dati ottimali da utilizzare per i dispositivi. L'algoritmo utilizza i 20 messaggi uplink più recenti che vengono avviati una volta impostato il bit ADR nell'intestazione del frame. Per determinare il numero di ritrasmissioni, l'algoritmo utilizza la percentuale di errore dei pacchetti (PER), che è una percentuale del numero totale di pacchetti persi. Quando si utilizza questo algoritmo, è possibile controllare solo l'intervallo delle velocità di trasmissione dati, ovvero i limiti minimo e massimo per le velocità di trasmissione dati.
Configurazione dei limiti di velocità dati (CLI)
Per impostazione predefinita, AWS IoT Core per LoRaWAN eseguirà l'ADR quando imposti il bit ADR nell'intestazione del frame del tuo dispositivo LoRaWAN. È possibile controllare i limiti minimi e massimi per la velocità di trasmissione dati durante la creazione di un profilo di servizio per i dispositivi LoRaWAN utilizzando l'operazione API Wireless AWS IoT CreateServiceProfile
o il comando AWS CLI, create-service-profile
.
Nota
Non è possibile specificare i limiti massimi e minimi di velocità di trasmissione dati quando si crea un profilo di servizio dalla AWS Management Console. Può essere abilitato solo utilizzando l'API Wireless AWS IoT o la AWS CLI.
Per specificare i limiti minimo e massimo per la velocità dei dati, utilizza i parametri DrMin
e DrMax
con l'operazione API CreateServiceProfile
. I limiti di velocità dati minimo e massimo predefiniti sono 0 e 15. Ad esempio, il seguente comando CLI imposta un limite minimo di velocità dati di 3 e un limite massimo di 12.
aws iotwireless create-service-profile \ --lorawan DrMin=
3
,DrMax=12
L'esecuzione di questo comando genera un ID e un nome della risorsa Amazon (ARN) per il profilo del servizio.
{ "Arn": "arn:aws:iotwireless:us-east-1:123456789012:ServiceProfile/12345678-a1b2-3c45-67d8-e90fa1b2c34d", "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d" }
È possibile ottenere i valori dei parametri specificati utilizzando l'operazione API Wireless AWS IoT GetServiceProfile
o il comando AWS CLI, get-service-profile
.
aws iotwireless get-service-profile --id
"12345678-a1b2-3c45-67d8-e90fa1b2c34d"
L'esecuzione di questo comando genera i valori per i parametri del profilo di servizio.
{ "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 } }
Se hai creato più profili, puoi utilizzare l'operazione API, ListServiceProfiles
, o il comando AWS CLI, list-service-profiles
, per elencare i profili di servizio nel tuo Account AWS, quindi utilizzare l'API GetServiceProfile
o il comando CLI get-service-profile
per recuperare il profilo di servizio per il quale hai personalizzato i limiti di velocità dei dati.