

# Incorporar dispositivos a AWS IoT Core para LoRaWAN
<a name="lorawan-onboard-end-devices"></a>

Una vez que haya incorporado su puerta de enlace AWS IoT Core para LoRaWAN y haya verificado su estado de conexión, podrá incorporar sus dispositivos inalámbricos. Para obtener información sobre cómo implementar su puerta de enlace, consulte [Incorporar las puertas de enlace a AWS IoT Core para LoRaWAN](lorawan-onboard-gateways.md).

Los dispositivos LoRaWAN utilizan un protocolo LoRaWAN para intercambiar datos con aplicaciones alojadas en la nube. AWS IoT Core para LoRaWAN admite dispositivos que cumplen las especificaciones LoRaWAN 1.0.x o 1.1 que se ajusta a LoRa Alliance.

Un dispositivo LoRaWAN normalmente contiene uno o más sensores y actores. Los dispositivos envían datos de telemetría de enlace ascendente a través de las puertas de enlace LoRaWAN a AWS IoT Core para LoRaWAN. Las aplicaciones alojadas en la nube pueden controlar los sensores enviando comandos de enlace descendente a los dispositivos LoRaWAN a través de las puertas de enlace LoRaWAN.

**Antes de incorporar su dispositivo inalámbrico**  
Antes de incorporar el dispositivo inalámbrico a AWS IoT Core para LoRaWAN, debe tener preparada la siguiente información de antemano:
+ 

**Especificación de LoRaWAN y configuración del dispositivo inalámbrico**  
Tener listos de antemano los parámetros de configuración exclusivos de cada dispositivo facilita la introducción de los datos en la consola. Los parámetros específicos que debe introducir dependen de la especificación LoRaWAN que utilice el dispositivo. Para obtener una lista completa de sus especificaciones y parámetros de configuración, consulte la documentación de cada dispositivo.
+ 

**Nombre del dispositivo y descripción (opcional)**  
La información de estos campos opcionales proviene de la forma en que organiza y describe los elementos de su sistema inalámbrico. Para obtener más información acerca del nombre y la descripción de los recursos, consulte [Descripción de los recursos de AWS IoT Wireless](iotwireless-describe-resources.md).
+ 

**Perfiles de dispositivos y servicios**  
Tenga preparados varios parámetros de configuración de los dispositivos inalámbricos que muchos dispositivos comparten y que se pueden almacenar en AWS IoT Core para LoRaWAN como perfiles de dispositivo y servicio. Los parámetros de configuración se encuentran en la documentación del dispositivo o en el propio dispositivo. Deberá identificar un perfil de dispositivo que coincida con los parámetros de configuración del dispositivo o crear uno si es necesario antes de agregar el dispositivo. Para obtener más información, consulte [Agregar perfiles a AWS IoT Core para LoRaWAN](lorawan-define-profiles.md).
+ 

**Destino de AWS IoT Core para LoRaWAN**  
Cada dispositivo debe estar asignado a un destino que procese los mensajes para su envío a AWS IoT y otros servicios. Las reglas de AWS IoT que procesan y envían los mensajes del dispositivo son específicas del formato de los mensajes del dispositivo. Para procesar los mensajes del dispositivo y enviarlos al servicio correcto, identifique el destino que creará para usarlo con los mensajes del dispositivo y asígnelo al dispositivo.

**Topics**
+ [Agregue su dispositivo inalámbrico a AWS IoT Core para LoRaWAN](lorawan-end-devices-add.md)
+ [Agregar perfiles a AWS IoT Core para LoRaWAN](lorawan-define-profiles.md)
+ [Agregar destinos a AWS IoT Core para LoRaWAN](lorawan-create-destinations.md)
+ [Crear reglas para procesar los mensajes del dispositivo LoRaWAN](lorawan-destination-rules.md)
+ [Conectar un dispositivo LoRaWAN y verificar el estado de su conexión](lorawan-device-connection-status.md)

# Agregue su dispositivo inalámbrico a AWS IoT Core para LoRaWAN
<a name="lorawan-end-devices-add"></a>

Si es la primera vez que agrega el dispositivo inalámbrico, le recomendamos que use la consola. Vaya a la página **Introducción de [AWS IoT Core para LoRaWAN](https://console.aws.amazon.com/iot/home#/wireless/landing)** de la consola de AWS IoT, seleccione **Introducción** y, a continuación, elija **Agregar dispositivo**. Si ya ha agregado un dispositivo, seleccione **Ver dispositivo** para ver la puerta de enlace que ha agregado. Si quiere agregar más dispositivos, seleccione **Agregar dispositivo**.

Como alternativa, también puede agregar dispositivos inalámbricos desde la página [Dispositivos](https://console.aws.amazon.com/iot/home#/wireless/devices) de la consola de AWS IoT.

## Agregar las especificaciones de un dispositivo inalámbrico a AWS IoT Core para LoRaWAN con la consola
<a name="lorawan-end-device-spec-console"></a>

Elija una **especificación de dispositivo inalámbrico** según su método de activación y la versión de LoRaWAN. Una vez seleccionados, los datos se cifran con una clave que AWS guarda y administra por usted. 

**Modos de activación OTAA y ABP**  
Para que su dispositivo LoRaWAN pueda enviar datos de enlace ascendente, debe completar un proceso denominado procedimiento de *activación* o *unión*. Para activar su dispositivo, puede utilizar OTAA (Activación inalámbrica) o ABP (Activación mediante personalización).

ABP no requiere un procedimiento de unión y utiliza claves estáticas. Cuando utiliza OTAA, su dispositivo LoRaWAN envía una solicitud de unión y el servidor de red puede aceptarla. Le recomendamos que utilice OTAA para activar el dispositivo, ya que se generan nuevas claves de sesión para cada activación, lo que lo hace más seguro.

**Versión de LoRaWAN**  
Cuando utiliza OTAA, su dispositivo LoRaWAN y las aplicaciones alojadas en la nube comparten las claves raíz. Estas claves raíz dependen de si utiliza la versión v1.0.x o v1.1. La versión v1.0.x solo tiene una clave raíz, **AppKey** (clave de aplicación), mientras que la versión v1.1 tiene dos claves raíz, **AppKey** (clave de aplicación) y **NwkKey (clave de red)**. Las claves de sesión se obtienen en función de las claves raíz de cada activación. Tanto **NWKKey** como **AppKey** son valores hexadecimales de 32 dígitos proporcionados por su proveedor de servicios inalámbricos.

**EUI de dispositivos inalámbricos**  
Tras seleccionar la **Especificación del dispositivo inalámbrico**, verá los parámetros del EUI (identificador único extendido) del dispositivo inalámbrico que se muestran en la consola. Puede encontrar esta información en la documentación del dispositivo o del proveedor de servicios inalámbricos.
+ **DevEUI**: valor hexadecimal de 16 dígitos que es exclusivo del dispositivo y que se encuentra en la etiqueta del dispositivo o en su documentación.
+ **AppEUI**: valor hexadecimal de 16 dígitos que es exclusivo del servidor de unión y que se encuentra en la documentación del dispositivo. En la versión 1.1 de LoRaWAN, **AppEUI** se denomina **JoinEUI**.

Para obtener más información sobre los identificadores únicos, las claves de sesión y las claves raíz, consulte la documentación de [LoRa Alliance](https://lora-alliance.org/about-lorawan).

## Agregar la especificación del dispositivo inalámbrico a AWS IoT Core para LoRaWAN mediante la API
<a name="lorawan-end-device-spec-api"></a>

Si va a agregar un dispositivo inalámbrico mediante la API, primero debe crear el perfil del dispositivo y el perfil de servicio antes de crear el dispositivo inalámbrico. Utilizará el perfil del dispositivo y el ID del perfil de servicio al crear el dispositivo inalámbrico. Para obtener información acerca de cómo crear estos perfiles con la API, consulte [Agregar un perfil de dispositivo mediante la API](lorawan-define-profiles.md#lorawan-device-profile-api).

En las siguientes listas se describen las acciones de la API que realizan las tareas asociadas a agregar, actualizar o eliminar un perfil de servicio.

**Acciones de la API de AWS IoT Wireless para los perfiles de servicio**
+ [CreateWirelessDevice](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateWirelessDevice.html)
+ [GetWirelessDevice](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetWirelessDevice.html)
+ [ListWirelessDevices](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListWirelessDevices.html)
+ [UpdateWirelessDevice](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateWirelessDevice.html)
+ [DeleteWirelessDevice](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteWirelessDevice.html)

Para ver la lista completa de las acciones y los tipos de datos disponibles para crear y administrar recursos de AWS IoT Core para LoRaWAN, consulte la [referencia de la API de AWS IoT Wireless](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/welcome.html).

**Cómo utilizar la AWS CLI para crear un dispositivo inalámbrico**  
Puede utilizar la AWS CLI para crear un dispositivo inalámbrico mediante el comando [create-wireless-device](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-device-profile.html). En el siguiente ejemplo, se crea un dispositivo inalámbrico mediante un archivo input.json para introducir los parámetros.

**nota**  
También puede realizar este procedimiento con la API utilizando los métodos de la API de AWS que corresponden a los comandos CLI que se muestran aquí. 

**Contenido de input.json**

```
{
    "Description": "My LoRaWAN wireless device"
    "DestinationName": "IoTWirelessDestination"
    "LoRaWAN": {
        "DeviceProfileId": "ab0c23d3-b001-45ef-6a01-2bc3de4f5333",
        "ServiceProfileId": "fe98dc76-cd12-001e-2d34-5550432da100",
        "OtaaV1_1": {
            "AppKey": "3f4ca100e2fc675ea123f4eb12c4a012",
            "JoinEui": "b4c231a359bc2e3d",
            "NwkKey": "01c3f004a2d6efffe32c4eda14bcd2b4"
        },
        "DevEui": "ac12efc654d23fc2"
    },
    "Name": "SampleIoTWirelessThing"
    "Type": LoRaWAN
}
```

Puede proporcionar este archivo como entrada al comando `create-wireless-device`.

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

Para obtener información sobre las CLI que puede usar, consulte la [referencia de AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/index.html) 

# Agregar perfiles a AWS IoT Core para LoRaWAN
<a name="lorawan-define-profiles"></a>

Los perfiles de dispositivos y servicios se pueden definir para describir las configuraciones comunes de los dispositivos. Estos perfiles describen los parámetros de configuración que comparten los dispositivos para facilitar su agregación. AWS IoT Core para LoRaWAN admite perfiles de dispositivos y perfiles de servicio.

 Los parámetros de configuración y los valores que se deben introducir en estos perfiles los proporciona el fabricante del dispositivo.

## Agregar perfiles de dispositivos
<a name="lorawan-device-profiles"></a>

Los perfiles de dispositivo definen las capacidades del dispositivo y los parámetros de arranque que el servidor de red utiliza para configurar el servicio de acceso por radio LoRaWAN. Incluye una selección de parámetros como la banda de frecuencia de LoRa, la versión de los parámetros regionales de LoRa y la versión MAC del dispositivo. Para obtener más información sobre las diferentes bandas de frecuencia, consulte [Considere la posibilidad de seleccionar bandas de frecuencia LoRa para sus puertas de enlace y la conexión del dispositivo](lorawan-rfregion-permissions.md#lorawan-frequency-bands).

### Agregar un perfil de dispositivo mediante la consola
<a name="lorawan-device-profile-console"></a>

Si va a agregar un dispositivo inalámbrico mediante la consola tal y como se describe en [Agregar las especificaciones de un dispositivo inalámbrico a AWS IoT Core para LoRaWAN con la consola](lorawan-end-devices-add.md#lorawan-end-device-spec-console), después de agregar la especificación del dispositivo inalámbrico, puede agregar el perfil de su dispositivo. Como alternativa, también puede agregar dispositivos inalámbricos desde la página [Perfiles](https://console.aws.amazon.com/iot/home#/wireless/profiles) de la consola de AWS IoT, en la pestaña **LoRaWAN**.

Puede elegir entre los perfiles de dispositivo predeterminados o crear un perfil de dispositivo nuevo. Le recomendamos que utilice los perfiles de dispositivo predeterminados. Si la aplicación requiere que cree un perfil de dispositivo, proporcione un **nombre de perfil de dispositivo**, seleccione la **banda de frecuencia (RfRegion)** que está utilizando para el dispositivo y la puerta de enlace, y mantenga los demás ajustes con los valores predeterminados, a menos que se especifique lo contrario en la documentación del dispositivo.

### Agregar un perfil de dispositivo mediante la API
<a name="lorawan-device-profile-api"></a>

Si va a agregar un dispositivo inalámbrico mediante la API, debe crear el perfil de su dispositivo antes de crear el dispositivo inalámbrico.

En las siguientes listas se describen las acciones de la API que realizan las tareas asociadas a agregar, actualizar o eliminar un perfil de servicio.

**Acciones de la API de AWS IoT Wireless para los perfiles de servicio**
+ [CreateDeviceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateDeviceProfile.html)
+ [GetDeviceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetDeviceProfile.html)
+ [ListDeviceProfiles](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListDeviceProfiles.html)
+ [UpdateDeviceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateDeviceProfile.html)
+ [DeleteDeviceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteDeviceProfile.html)

Para ver la lista completa de las acciones y los tipos de datos disponibles para crear y administrar recursos de AWS IoT Core para LoRaWAN, consulte la [referencia de la API de AWS IoT Wireless](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/welcome.html).

**Cómo utilizar la AWS CLI para crear un perfil de dispositivo**  
Puede utilizar la AWS CLI para crear un perfil de dispositivo mediante el comando [create-device-profile](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-device-profile.html). En el ejemplo siguiente se crea un perfil de dispositivo.

```
aws iotwireless create-device-profile
```

Al ejecutar este comando, se crea automáticamente un perfil de dispositivo con un ID que puede utilizar al crear el dispositivo inalámbrico. Ahora puede crear el perfil de servicio mediante la siguiente API y, a continuación, crear el dispositivo inalámbrico mediante los perfiles de dispositivo y servicio.

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

Para obtener información sobre las CLI que puede usar, consulte la [referencia de AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/index.html) 

## Agregar perfiles de servicio
<a name="lorawan-service-profiles"></a>

Los perfiles de servicio describen los parámetros de comunicación que el dispositivo necesita para comunicarse con el servidor de aplicaciones.

### Agregar un perfil de servicio mediante la consola
<a name="lorawan-service-profile-console"></a>

Si desea agregar un dispositivo inalámbrico mediante la consola como se describe en [Agregar las especificaciones de un dispositivo inalámbrico a AWS IoT Core para LoRaWAN con la consola](lorawan-end-devices-add.md#lorawan-end-device-spec-console), puede agregar su perfil de servicio después de agregar el perfil del dispositivo. Como alternativa, también puede agregar dispositivos inalámbricos desde la página [Perfiles](https://console.aws.amazon.com/iot/home#/wireless/profiles) de la consola de AWS IoT, en la pestaña **LoRaWAN**.

Le recomendamos que deje habilitada la configuración **AddGWMetaData** para recibir metadatos de puerta de enlace adicionales por cada carga, como RSSI y SNR para la transmisión de datos.

### Agregar un perfil de servicio mediante la API
<a name="lorawan-service-profile-api"></a>

Si desea agregar un dispositivo inalámbrico mediante la API, primero debe crear su perfil de servicio antes de crear el dispositivo inalámbrico.

En las siguientes listas se describen las acciones de la API que realizan las tareas asociadas a agregar, actualizar o eliminar un perfil de servicio.

**Acciones de la API de AWS IoT Wireless para los perfiles de servicio**
+ [CreateServiceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateServiceProfile.html)
+ [GetServiceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetServiceProfile.html)
+ [ListServiceProfiles](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListServiceProfiles.html)
+ [ UpdateServiceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateServiceProfile.html)
+ [DeleteServiceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteServiceProfile.html)

Para ver la lista completa de las acciones y los tipos de datos disponibles para crear y administrar recursos de AWS IoT Core para LoRaWAN, consulte la [referencia de la API de AWS IoT Wireless](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/welcome.html).

**Cómo utilizar la AWS CLI para crear un perfil de servicio**  
Puede usar la AWS CLI para crear un servicio con el comando [create-service-profile](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-service-profile.html). En el siguiente ejemplo, se crea un perfil de servicio.

```
aws iotwireless create-service-profile
```

Al ejecutar este comando, se crea automáticamente un perfil de servicio con un ID que puede utilizar al crear el dispositivo inalámbrico. Ahora puede crear el dispositivo inalámbrico con los perfiles de dispositivo y servicio.

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

# Agregar destinos a AWS IoT Core para LoRaWAN
<a name="lorawan-create-destinations"></a>

Los destinos de AWS IoT Core for LoRaWAN describen la regla de AWS IoT que procesa los datos de un dispositivo para su uso por parte de los servicios de AWS.

Como la mayoría de los dispositivos LoRaWAN no envían datos a AWS IoT Core for LoRaWAN en un formato que puedan utilizar los servicios de AWS, una regla de AWS IoT debe procesarlos primero. La regla de AWS IoT contiene la instrucción SQL que interpreta los datos del dispositivo y las acciones de la regla temática que envían el resultado de la instrucción SQL a los servicios que la utilizarán.

Si es la primera vez que agrega el destino, le recomendamos que use la consola. 

## Agregar un destino mediante la consola
<a name="lorawan-create-destination-console"></a>

Si desea agregar un dispositivo inalámbrico mediante la consola como se describe en [Agregar las especificaciones de un dispositivo inalámbrico a AWS IoT Core para LoRaWAN con la consola](lorawan-end-devices-add.md#lorawan-end-device-spec-console), después de haber agregado las especificaciones y los perfiles del dispositivo inalámbrico a AWS IoT Core para LoRaWAN como se describió anteriormente, puede continuar y agregar un destino.

Como alternativa, también puede agregar un destino de AWS IoT Core para LoRaWAN desde la página [Destinos](https://console.aws.amazon.com/iot/home#/wireless/destinations) de la consola de AWS IoT.

Para procesar los datos de un dispositivo, especifique los siguientes campos al crear un destino de AWS IoT Core for LoRaWAN y, a continuación, elija **Agregar destino**.
+ 

**Detalles de destino**  
Introduzca un **Nombre de destino** y una descripción opcional para su destino.
+ 

**Nombre de la regla**  
La regla de AWS IoT que se configura para evaluar los mensajes enviados por el dispositivo y procesar los datos del dispositivo. El nombre de la regla se asignará a su destino. El destino requiere que la regla procese los mensajes que recibe. Puede elegir que los mensajes se procesen invocando una regla de AWS IoT o publicándolos en el agente de mensajes de AWS IoT.
  + Si selecciona **Introducir un nombre de regla**, introduzca un nombre y, a continuación, elija **Copiar** para copiar el nombre de la regla que introducirá al crear la regla de AWS IoT. Puede elegir **Crear regla** para crear la regla ahora o ir al [Centro de reglas](https://console.aws.amazon.com/iot/home#/create/rule) de la consola de AWS IoT y crear una regla con ese nombre.

    También puede introducir una regla y usar la configuración **Avanzada** para especificar el nombre de un tema. El nombre del tema se proporciona durante la invocación de la regla y se accede a él mediante la expresión `topic` incluida en la regla. Para obtener más información acerca de las reglas de AWS IoT, consulte [https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html).
  + Si elige **Publicar en el agente de mensajes de AWS IoT**, introduzca el nombre del tema. A continuación, puede copiar el nombre del tema de MQTT y varios suscriptores podrán suscribirse a este tema para recibir los mensajes publicados sobre ese tema. Para obtener más información, consulte [https://docs.aws.amazon.com/iot/latest/developerguide/topics.html](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html).

  Para obtener más información sobre las reglas de AWS IoT, consulte [Crear reglas para procesar los mensajes del dispositivo LoRaWAN](lorawan-destination-rules.md).
+ 

**Nombre de rol**  
El rol de IAM que concede a los datos del dispositivo el permiso para acceder a la regla nombrada **Nombre de regla**. En la consola, elija un rol de servicio existente o cree uno nuevo. Si va a crear un nuevo rol de servicio, puede introducir un nombre de rol (por ejemplo, **IoTWirelessDestinationRole**) o dejarlo en blanco para que AWS IoT Core para LoRaWAN genere un nuevo nombre de rol. AWS IoT Core para LoRaWAN creará automáticamente el rol de IAM con los permisos adecuados en su nombre.

  Para obtener más información sobre los roles de IAM, consulte [Uso de roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html).

## Agregar un destino mediante la API
<a name="lorawan-create-destination-api"></a>

Si, en su lugar, desea agregar un destino mediante la CLI, debe haber creado ya la regla y el rol de IAM para su destino. Para obtener más información acerca de los detalles que un destino requiere en la función, consulte [Crear un rol de IAM para los destinos](#lorawan-create-destinations-roles).

La siguiente lista contiene las acciones de la API que realizan las tareas asociadas a agregar, actualizar o eliminar un destino.

**Acciones de la API de AWS IoT Wireless para destinos**
+ [CreateDestination](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateDestination.html)
+ [GetDestination](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetDestination.html)
+ [ListDestinations](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListDestinations.html)
+ [UpdateDestination](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateDestination.html)
+ [DeleteDestination](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteDestination.html)

Para ver la lista completa de las acciones y los tipos de datos disponibles para crear y administrar recursos de AWS IoT Core para LoRaWAN, consulte la [referencia de la API de AWS IoT Wireless](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/welcome.html).

**Cómo utilizar la AWS CLI para agregar un destino**  
Puede utilizar la AWS CLI para agregar un destino mediante el comando [create-destination](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-destination.html). En el siguiente ejemplo, se muestra cómo crear un destino introduciendo el nombre de una regla de `RuleName` como valor para el parámetro `expression-type`. Si desea especificar un nombre de tema para publicarlo o suscribirse al agente de mensajes, cambie el valor del parámetro `expression-type` a `MqttTopic`.

```
aws iotwireless create-destination \
    --name IoTWirelessDestination \
    --expression-type RuleName \
    --expression IoTWirelessRule \
    --role-arn arn:aws:iam::123456789012:role/IoTWirelessDestinationRole
```

Al ejecutar este comando, se crea un destino con el nombre del destino, el nombre de la regla y el nombre del rol especificados. Para obtener información sobre los nombres de reglas y roles de los destinos, consulte [Crear reglas para procesar los mensajes del dispositivo LoRaWAN](lorawan-destination-rules.md) y [Crear un rol de IAM para los destinos](#lorawan-create-destinations-roles).

Para obtener información sobre las CLI que puede usar, consulte la [referencia de AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/index.html). 

## Crear un rol de IAM para los destinos
<a name="lorawan-create-destinations-roles"></a>

Los destinos de AWS IoT Core para LoRaWAN requieren roles de IAM que otorguen a AWS IoT Core para LoRaWAN los permisos necesarios para enviar datos a la regla de AWS IoT. Si dicho rol aún no está definido, debe definirlo para que aparezca en la lista de roles.

Cuando utiliza la consola para agregar un destino, AWS IoT Core para LoRaWAN crea automáticamente un rol de IAM para sí, tal y como se describió anteriormente en este tema. Cuando agrega un destino mediante la API o la CLI, debe crear el rol de IAM para su destino.

**Para crear una política de IAM para su rol de destino de AWS IoT Core para LoRaWAN**

1. Abra la página [Central de políticas de la consola de IAM](https://console.aws.amazon.com/iam/home#/policies).

1. Elija **Crear política** y, a continuación, elija la pestaña **JSON**.

1. En el editor, elimine cualquier contenido del editor y pegue este documento de política.

   ```
   {
       "Version": "2012-10-17",
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "iot:DescribeEndpoint",
                   "iot:Publish"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

1. En **Revisar política**, en **Nombre**, escriba un nombre para la política. Necesitará este nombre para usarlo en el procedimiento siguiente.

   Si lo desea, también puede describir esta política en **Descripción**.

1. Elija **Crear política**.

**Para crear un rol de IAM para un destino de AWS IoT Core para LoRaWAN**

1. Abra la página [Hub de roles de la consola de IAM](https://console.aws.amazon.com/iam/home#/roles) y elija **Crear rol**.

1. En **Seleccionar el tipo de entidad de confianza**, elija **Otra Cuenta de AWS**.

1. En **ID de cuenta**, introduzca su ID de Cuenta de AWS y, a continuación, seleccione **Siguiente: Permisos**.

1. En el cuadro de búsqueda, escriba el nombre de la política de IAM que creó en el procedimiento anterior.

1. En los resultados de la búsqueda, compruebe la política de IAM creada en el procedimiento anterior.

1. Elija **Siguiente: Etiqueta** y, a continuación, seleccione **Siguiente: Revisar**.

1. En **Nombre del rol**, introduzca el nombre de este rol y, a continuación, elija **Crear rol**.

1. En el mensaje de confirmación, seleccione el nombre del rol que creó para editar el nuevo rol.

1. En la página **Resumen**, elija **Relaciones de confianza** y, a continuación, elija **Editar relación de confianza**.

1. En el **Documento de política**, cambie la propiedad `Principal` para que tenga el aspecto que se muestra en este ejemplo.

   ```
   "Principal": { 
       "Service": "iotwireless.amazonaws.com" 
   },
   ```

   Tras cambiar la propiedad `Principal`, el documento de política completo deberá tener el aspecto que se muestra en este ejemplo.

   ```
   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "iotwireless.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {}
       }
     ]
   }
   ```

1. Para guardar los cambios, elija **Actualizar política de confianza**.

Con este rol definido, puede encontrarlo en la lista de roles al configurar sus destinos de AWS IoT Core para LoRaWAN.

# Crear reglas para procesar los mensajes del dispositivo LoRaWAN
<a name="lorawan-destination-rules"></a>

Las reglas de AWS IoT envían mensajes del dispositivo a otros servicios. Las reglas de AWS IoT también pueden procesar los mensajes binarios recibidos desde un dispositivo LoRaWAN para convertirlos a otros formatos que faciliten su uso para otros servicios.

[Los destinos de AWS IoT Core para LoRaWAN](lorawan-create-destinations.md) asocian un dispositivo inalámbrico a la regla que procesa los datos de los mensajes del dispositivo para enviarlos a otros servicios. La regla actúa sobre los datos del dispositivo en cuanto AWS IoT Core para LoRaWAN los recibe. Los [destinos de AWS IoT Core para LoRaWAN](lorawan-create-destinations.md) pueden ser compartidos por todos los dispositivos cuyos mensajes tengan el mismo formato de datos y que envíen sus datos al mismo servicio.

## Cómo procesa AWS IoT las reglas los mensajes de los dispositivos
<a name="how-rules-process-message"></a>

La forma en que una regla de AWS IoT procesa los datos de los mensajes de un dispositivo depende del servicio que recibirá los datos, del formato de los datos de los mensajes del dispositivo y del formato de datos que requiera el servicio. Normalmente, la regla llama a una función de AWS Lambda para convertir los datos de los mensajes del dispositivo al formato que requiere un servicio y, a continuación, envía el resultado al servicio.

La siguiente ilustración muestra cómo se protegen y procesan los datos de los mensajes a medida que pasan del dispositivo inalámbrico a un servicio de AWS.

![\[Imagen que muestra cómo AWS IoT Core para LoRaWAN transfiere los datos desde un dispositivo inalámbrico hasta AWS IoT y otros servicios.\]](http://docs.aws.amazon.com/es_es/iot-wireless/latest/developerguide/images/iot-lorawan-data-flow.png)


1. El dispositivo inalámbrico LoRaWAN cifra sus mensajes binarios mediante el modo CTR AES128 antes de transmitirlos.

1. AWS IoT Core para LoRaWAN descifra el mensaje binario y codifica la carga del mensaje binario descifrado como una cadena de base64.

1. El mensaje codificado en base64 resultante se envía como una carga de mensajes (sin el formato de un documento JSON) a la regla de AWS IoT descrita en el destino asignado al dispositivo.

1. La regla de AWS IoT dirige los datos del mensaje al servicio descrito en la configuración de la regla.

La carga binaria cifrada recibida desde el dispositivo inalámbrico no es alterada ni interpretada por AWS IoT Core para LoRaWAN. La carga descifrada del mensaje binario se codifica únicamente como una cadena de base 64. Para que los servicios accedan a los elementos de datos de la carga del mensaje binario, los elementos de datos deben ser extraídos de la carga mediante una función llamada por la regla. La carga del mensaje codificada en base64 es una cadena ASCII, por lo que podría almacenarse como tal para analizarla posteriormente.

## Crear reglas para dispositivos LoRaWAN
<a name="create-lorawan-rules"></a>

AWS IoT Core para LoRaWAN utiliza reglas de AWS IoT para enviar de forma segura los mensajes del dispositivo directamente a otros servicios de AWS sin necesidad de utilizar el agente de mensajes. Al eliminar el agente de mensajes de la ruta de ingestión, se reducen los costes y se optimiza el flujo de datos.

Para que una regla de AWS IoT Core para LoRaWAN envíe mensajes de dispositivos a otros servicios de AWS, necesita un destino de AWS IoT Core para LoRaWAN y una regla de AWS IoT asignada a ese destino. La regla de AWS IoT debe contener una instrucción de consulta SQL y al menos una acción de regla. 

Normalmente, la instrucción de consulta de la regla de AWS IoT se compone de:
+ Una cláusula SELECT de SQL que selecciona y formatea los datos de la carga del mensaje
+ Un filtro de tema (el objeto FROM de la instrucción de consulta de la regla) que identifica los mensajes que se van a utilizar
+ Una instrucción condicional opcional (una cláusula WHERE de SQL) que especifica las condiciones sobre las que actuar

A continuación, se muestra un ejemplo de una instrucción de consulta de regla:

```
SELECT temperature FROM iot/topic' WHERE temperature > 50
```

Al crear reglas de AWS IoT para procesar las cargas útiles de los dispositivos LoRaWAN, no es necesario especificar la cláusula FROM como parte de la cosa de consulta de reglas. La instrucción de consulta de la regla debe tener la cláusula SQL SELECT y, de forma opcional, puede tener la cláusula WHERE. Si la instrucción de consulta utiliza la cláusula FROM, se ignora.

A continuación, se muestra un ejemplo de una instrucción de consulta de reglas que puede procesar cargas de dispositivos LoRaWAN:

```
SELECT WirelessDeviceId, WirelessMetadata.LoRaWAN.FPort as FPort,
       WirelessMetadata.LoRaWAN.DevEui as DevEui, 
       PayloadData
```

En este ejemplo, `PayloadData` es una carga binaria codificada en base64 enviada por su dispositivo LoRaWAN.

Este es un ejemplo de instrucción de consulta de reglas que puede realizar una decodificación binaria de la carga entrante y transformarla en un formato diferente, como JSON:

```
SELECT WirelessDeviceId, WirelessMetadata.LoRaWAN.FPort as FPort,
       WirelessMetadata.LoRaWAN.DevEui as DevEui, 
       aws_lambda("arn:aws:lambda:<region>:<account>:function:<name>",                                       
                  {                                      
                   "PayloadData":PayloadData,                                       
                   "Fport": WirelessMetadata.LoRaWAN.FPort   
                  }) as decodingoutput
```

Para obtener más información sobre el uso de las cláusulas SELECT Y WHERE, consulte [https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-reference.html](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-reference.html).

Para obtener información sobre cómo utilizar la las reglas de AWS IoT para crearlas y utilizarlas, consulte [https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html) y [https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules-tutorial.html](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules-tutorial.html). 

Para obtener información sobre cómo crear y utilizar destinos de AWS IoT Core para LoRaWAN, consulte [Agregar destinos a AWS IoT Core para LoRaWAN](lorawan-create-destinations.md).

Para obtener información sobre el uso de cargas de mensajes binarios en una regla, consulte [https://docs.aws.amazon.com/iot/latest/developerguide/binary-payloads.html](https://docs.aws.amazon.com/iot/latest/developerguide/binary-payloads.html).

Para obtener más información sobre la seguridad y el cifrado de los datos utilizados para proteger la carga del mensaje durante su viaje, consulte [Protección de datos en AWS IoT Wireless](data-protection.md).

Para ver una arquitectura de referencia que muestre un ejemplo de decodificación binaria e implementación de reglas de IoT, consulte [Ejemplos de soluciones en GitHub de AWS IoT Core para LoRaWAN](https://github.com/aws-samples/aws-iot-core-lorawan/tree/main/transform_binary_payload).

# Conectar un dispositivo LoRaWAN y verificar el estado de su conexión
<a name="lorawan-device-connection-status"></a>

Para poder comprobar el estado de la conexión del dispositivo, debe haber agregado su dispositivo y haberlo conectado a AWS IoT Core para LoRaWAN. Para obtener información sobre cómo agregar su dispositivo, consulte [Agregue su dispositivo inalámbrico a AWS IoT Core para LoRaWAN](lorawan-end-devices-add.md).

Una vez que haya agregado el dispositivo, consulte el manual del usuario del dispositivo para obtener información sobre cómo iniciar el envío de un mensaje de enlace ascendente desde su dispositivo LoRaWAN.

## Comprobar el estado de la conexión del dispositivo mediante la consola
<a name="lorawan-device-connection-status-console"></a>

Para comprobar el estado de la conexión mediante la consola, vaya a la página [https://console.aws.amazon.com/iot/home#/wireless/devices](https://console.aws.amazon.com/iot/home#/wireless/devices) de la consola de AWS IoT y seleccione el dispositivo que has agregado. En la sección **Detalles** de la página de detalles de los dispositivos inalámbricos, verá la fecha y la hora en que se recibió el último enlace.

## Comprobar el estado de conexión del dispositivo con la API
<a name="lorawan-device-connection-status-api"></a>

Para comprobar el estado de la conexión mediante la API, utilice la API de `GetWirelessDeviceStatistics`. Esta API no tiene un cuerpo de solicitud y solo contiene un cuerpo de respuesta que muestra cuándo se recibió el último enlace ascendente.

```
HTTP/1.1 200
Content-type: application/json

{  
  “LastUplinkReceivedAt”: “2021-03-24T23:13:08.476015749Z”,
  "LoRaWAN": {
        "DataRate": 5,
        "DevEui": "647fda0000006420",
        "Frequency": 868100000
        "Gateways": [ 
         { 
            "GatewayEui": "c0ee40ffff29df10",
            "Rssi": -67,
            "Snr": 9.75
         }
      ],
  “WirelessDeviceId”: “30cbdcf3-86de-4291-bfab-5bfa2b12bad5"
}
```

## Siguientes pasos
<a name="lorawan-device-connection-next-steps"></a>

Ahora que ha conectado el dispositivo y ha comprobado el estado de la conexión, puede observar el formato de los metadatos del enlace ascendente recibidos del dispositivo mediante el [cliente de pruebas MQTT de la página de pruebas](https://console.aws.amazon.com/iot/home#/test) de la **consola de AWS IoT**. Para obtener más información, consulte [Ver el formato de los mensajes de enlace ascendente enviados desde dispositivos LoRaWAN](lorawan-uplink-metadata-format.md).