

# Integrar os dispositivos ao AWS IoT Core for LoRaWAN
<a name="lorawan-onboard-end-devices"></a>

Depois de integrar o gateway ao AWS IoT Core for LoRaWAN e verificar o status da conexão, você pode integrar os dispositivos sem fio. Para obter informações sobre como integrar os gateways, consulte [Integre os gateways ao AWS IoT Core for LoRaWAN](lorawan-onboard-gateways.md).

Os dispositivos LoRaWAN usam um protocolo LoRaWAN para trocar dados com aplicativos hospedados na nuvem. O AWS IoT Core for LoRaWAN é compatível com dispositivos que estão em conformidade com as especificações LoRaWAN 1.0.x ou 1.1 padronizadas pela LoRa Alliance.

Um dispositivo LoRaWAN normalmente contém um ou mais sensores e agentes. Os dispositivos enviam dados de telemetria de uplink por meio de gateways LoRaWAN para AWS IoT Core for LoRaWAN. Os aplicativos hospedados na nuvem podem controlar os sensores enviando comandos de downlink para dispositivos LoRaWAN por meio de gateways LoRaWAN.

**Antes de integrar o dispositivo sem fio**  
Antes de integrar o dispositivo sem fio ao AWS IoT Core for LoRaWAN, você precisa ter as seguintes informações prontas com antecedência:
+ 

**Especificação LoRaWAN e configuração do dispositivo sem fio**  
Tenha os parâmetros de configuração exclusivos de cada dispositivo prontos para serem inseridos com antecedência, o que facilita a inserção dos dados no console. Os parâmetros específicos que você precisa inserir dependem da especificação LoRaWAN que o dispositivo usa. Para obter a lista completa das especificações e dos parâmetros de configuração, consulte a documentação de cada dispositivo.
+ 

**Nome e descrição do dispositivo (opcional)**  
As informações nesses campos opcionais vêm de como você organiza e descreve os elementos no sistema sem fio. Para obter mais informações sobre nomenclatura e descrição dos recursos, consulte [Descrever os recursos do AWS IoT Wireless](iotwireless-describe-resources.md).
+ 

**Perfis de dispositivos e serviços**  
Tenha alguns parâmetros de configuração de dispositivos sem fio prontos que sejam compartilhados por vários dispositivos e possam ser armazenados no AWS IoT Core for LoRaWAN como perfis de dispositivos e serviços. Os parâmetros de configuração são encontrados na documentação do dispositivo ou no próprio dispositivo. Você deve identificar um perfil de dispositivo que corresponda aos parâmetros de configuração do dispositivo, ou criar um se necessário, antes de adicionar o dispositivo. Para ter mais informações, consulte [Adicionar perfis ao AWS IoT Core for LoRaWAN](lorawan-define-profiles.md).
+ 

**Destino do AWS IoT Core for LoRaWAN**  
Cada dispositivo deve ser atribuído a um destino que processará as mensagens para enviar para AWS IoT e outros serviços. As regras de AWS IoT que processam e enviam as mensagens do dispositivo são específicas do formato da mensagem do dispositivo. Para processar as mensagens do dispositivo e enviá-las para o serviço correto, identifique o destino que você criará para usar com as mensagens do dispositivo e atribua-o ao dispositivo.

**Topics**
+ [Adicione o dispositivo sem fio ao AWS IoT Core for LoRaWAN](lorawan-end-devices-add.md)
+ [Adicionar perfis ao AWS IoT Core for LoRaWAN](lorawan-define-profiles.md)
+ [Adicionar destinos ao AWS IoT Core for LoRaWAN](lorawan-create-destinations.md)
+ [Criar regras para processar mensagens de dispositivo LoRaWAN](lorawan-destination-rules.md)
+ [Conecte o dispositivo LoRaWAN e verifique o status da conexão](lorawan-device-connection-status.md)

# Adicione o dispositivo sem fio ao AWS IoT Core for LoRaWAN
<a name="lorawan-end-devices-add"></a>

Se você estiver adicionando o dispositivo sem fio pela primeira vez, recomendamos usar o console. Navegue até a página **Introdução** ao [AWS IoT Core for LoRaWAN](https://console.aws.amazon.com/iot/home#/wireless/landing) do console de AWS IoT, escolha **Iniciar** e, em seguida, escolha **Adicionar dispositivo**. Se você já adicionou um dispositivo, escolha **Exibir dispositivo** para ver o gateway que foi adicionado. Se você quiser adicionar mais dispositivos, escolha **Adicionar dispositivo**.

Como alternativa, você também pode adicionar dispositivos sem fio da página [Dispositivos](https://console.aws.amazon.com/iot/home#/wireless/devices) do console de AWS IoT.

## Adicione a especificação do dispositivo sem fio ao AWS IoT Core for LoRaWAN usando o console
<a name="lorawan-end-device-spec-console"></a>

Escolha uma **Especificação de dispositivo sem fio** com base no método de ativação e na versão LoRaWAN. Depois de selecionados, os dados são criptografados com uma chave que a AWS possui e gerencia para você. 

**Modos de ativação OTAA e ABP**  
Antes que o dispositivo LoRaWAN possa enviar dados de uplink, é preciso concluir um processo chamado *ativação* ou *adesão*. Para ativar o dispositivo, você pode usar o OTAA (ativação sem fio) ou o ABP (ativação por personalização).

O ABP não exige adesão e usa chaves estáticas. Quando você usa o OTAA, o dispositivo LoRaWAN envia uma adesão e o servidor de rede pode permitir a solicitação. Recomendamos que você use o OTAA para ativar o dispositivo porque novas chaves de sessão são geradas para cada ativação, o que o torna mais seguro.

**Versão LoRaWAN**  
Quando você usa o OTAA, o dispositivo LoRaWAN e os aplicativos hospedados em nuvem compartilham as chaves raiz. Essas chaves raiz dependem de você estar ou não usando a versão v1.0.x ou v1.1. A v1.0.x tem apenas uma chave raiz, **AppKey** (chave de aplicativo), enquanto a v1.1 tem duas chaves raiz, **AppKey** (chave de aplicativo) e **NwkKey** (chave de rede). As chaves de sessão são derivadas com base nas chaves raiz de cada ativação. Tanto **NwkKey** quanto **AppKey** são valores hexadecimais de 32 dígitos dados pelo fornecedor sem fio.

**EUIs de dispositivos sem fio**  
Depois de selecionar a **Especificação do dispositivo sem fio**, você verá os parâmetros EUI (Extended Unique Identifier) do dispositivo sem fio exibidos no console. Você pode encontrar essas informações na documentação do dispositivo ou do fornecedor sem fio.
+ **DevEUI**: valor hexadecimal de 16 dígitos exclusivo do dispositivo e encontrado no rótulo do dispositivo ou na documentação dele.
+ **AppEUI**: valor hexadecimal de 16 dígitos exclusivo do servidor de junção e encontrado na documentação do dispositivo. No LoRaWAN versão v1.1, o **AppEUI** é chamado de **JoinEUI**.

Para obter mais informações sobre identificadores exclusivos, chaves de sessão e chaves raiz, consulte a documentação da [LoRa Alliance](https://lora-alliance.org/about-lorawan).

## Adicione a especificação do dispositivo sem fio ao AWS IoT Core for LoRaWAN usando a API
<a name="lorawan-end-device-spec-api"></a>

Se estiver adicionando um dispositivo sem fio usando a API, você deverá criar o perfil de dispositivo e o perfil de serviço antes de criar o dispositivo sem fio. Você usará o perfil do dispositivo e a ID do perfil de serviço ao criar o dispositivo sem fio. Para obter informações sobre como criar esses perfis usando a API, consulte [Adicionar um perfil de dispositivo usando a API](lorawan-define-profiles.md#lorawan-device-profile-api).

As listas a seguir descrevem as ações de API que realizam as tarefas associadas à adição, atualização ou exclusão de um perfil de serviço.

**Ações da API AWS IoT Wireless para perfis de serviço**
+ [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 a lista completa das ações e dos tipos de dados disponíveis para criar e gerenciar recursos do AWS IoT Core for LoRaWAN, consulte a [Referência da API AWS IoT Wireless](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/welcome.html).

**Como usar a AWS CLI para criar um dispositivo sem fio**  
Você pode usar a AWS CLI para criar um dispositivo sem fio usando o comando [create-wireless-device](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-device-profile.html). O exemplo a seguir cria um dispositivo sem fio usando um arquivo input.json para inserir os parâmetros.

**nota**  
Também é possível executar esse procedimento com a API usando os métodos na API da AWS que correspondam aos comandos da CLI mostrados aqui. 

**Conteúdo 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
}
```

É possível fornecer este arquivo como entrada para o comando `create-wireless-device`.

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

Para obter informações sobre as CLIs que você pode usar, consulte [Referência da AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/index.html) 

# Adicionar perfis ao AWS IoT Core for LoRaWAN
<a name="lorawan-define-profiles"></a>

Perfis de dispositivos e serviços podem ser definidos para descrever configurações comuns de dispositivos. Esses perfis descrevem os parâmetros de configuração que são compartilhados pelos dispositivos para facilitar a adição desses dispositivos. O AWS IoT Core for LoRaWAN é compatível com perfis de dispositivos e perfis de serviços.

 Os parâmetros de configuração e os valores a serem inseridos nesses perfis são apresentados pelo fabricante do dispositivo.

## Adicionar perfis de dispositivos
<a name="lorawan-device-profiles"></a>

Os perfis de dispositivos definem os recursos do dispositivo e os parâmetros de inicialização que o servidor de rede usa para definir o serviço de acesso por rádio LoRaWAN. Ele inclui a seleção de parâmetros como faixa de frequência LoRa, versão de parâmetros regionais LoRa e versão MAC do dispositivo. Para conhecer as diferentes faixas de frequência, consulte [Considere a seleção de faixas de frequência LoRa para os gateways e conexão de dispositivos](lorawan-rfregion-permissions.md#lorawan-frequency-bands).

### Adicionar um perfil de dispositivo usando o console
<a name="lorawan-device-profile-console"></a>

Se você estiver adicionando um dispositivo sem fio usando o console conforme descrito em [Adicione a especificação do dispositivo sem fio ao AWS IoT Core for LoRaWAN usando o console](lorawan-end-devices-add.md#lorawan-end-device-spec-console), depois de adicionar a especificação do dispositivo sem fio, você poderá adicionar o perfil do dispositivo. Se quiser, você também pode adicionar dispositivos sem fio da página [Perfis](https://console.aws.amazon.com/iot/home#/wireless/profiles) do console de AWS IoT na guia **LoRaWAN**.

Você pode escolher entre os perfis de dispositivo padrão ou criar um novo perfil de dispositivo. Recomendamos que você use os perfis de dispositivo padrão. Se o aplicativo exigir que você crie um perfil de dispositivo, dê um **Nome de perfil de dispositivo**, selecione a **Faixa de frequência (RfRegion)** que você está usando para o dispositivo e o gateway e mantenha as outras configurações nos valores padrão, a menos que especificado de outra forma na documentação do dispositivo.

### Adicionar um perfil de dispositivo usando a API
<a name="lorawan-device-profile-api"></a>

Se estiver adicionando um dispositivo sem fio usando a API, você deverá criar o perfil de dispositivo antes de criar o dispositivo sem fio.

As listas a seguir descrevem as ações de API que realizam as tarefas associadas à adição, atualização ou exclusão de um perfil de serviço.

**Ações da API AWS IoT Wireless para perfis de serviço**
+ [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 a lista completa das ações e dos tipos de dados disponíveis para criar e gerenciar recursos do AWS IoT Core for LoRaWAN, consulte a [Referência da API AWS IoT Wireless](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/welcome.html).

**Como usar a AWS CLI para criar um perfil de dispositivo**  
Você pode usar a AWS CLI para criar um perfil de dispositivo usando o comando [create-device-profile](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-device-profile.html). O exemplo a seguir cria um perfil de dispositivo.

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

A execução desse comando cria automaticamente um perfil de dispositivo com uma ID que você pode usar ao criar o dispositivo sem fio. Agora você pode criar o perfil de serviço usando a seguinte API e, em seguida, criar o dispositivo sem fio usando os perfis de dispositivo e de serviço.

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

Para obter informações sobre as CLIs que você pode usar, consulte [Referência da AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/index.html) 

## Adicionar perfis de serviço
<a name="lorawan-service-profiles"></a>

Os perfis de serviço descrevem os parâmetros de comunicação de que o dispositivo precisa para se comunicar com o servidor de aplicativos.

### Adicionar um perfil de serviço usando o console
<a name="lorawan-service-profile-console"></a>

Se estiver adicionando um dispositivo sem fio usando o console conforme descrito em [Adicione a especificação do dispositivo sem fio ao AWS IoT Core for LoRaWAN usando o console](lorawan-end-devices-add.md#lorawan-end-device-spec-console), depois de adicionar o perfil do dispositivo, você poderá adicionar o perfil de serviço. Se quiser, você também pode adicionar dispositivos sem fio da página [Perfis](https://console.aws.amazon.com/iot/home#/wireless/profiles) do console de AWS IoT na guia **LoRaWAN**.

Recomendamos que você deixe a configuração **AddGWMetaData** ativada para receber metadados de gateway adicionais para cada carga útil, como RSSI e SNR para a transmissão de dados.

### Adicionar um perfil de serviço usando a API
<a name="lorawan-service-profile-api"></a>

Se você estiver adicionando um dispositivo sem fio usando a API, primeiro crie o perfil de serviço antes de criar o dispositivo sem fio.

As listas a seguir descrevem as ações de API que realizam as tarefas associadas à adição, atualização ou exclusão de um perfil de serviço.

**Ações da API AWS IoT Wireless para perfis de serviço**
+ [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 a lista completa das ações e dos tipos de dados disponíveis para criar e gerenciar recursos do AWS IoT Core for LoRaWAN, consulte a [Referência da API AWS IoT Wireless](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/welcome.html).

**Como usar a AWS CLI para criar um perfil de serviço**  
Você pode usar a AWS CLI para criar um serviço usando o comando [create-service-profile](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-service-profile.html). O exemplo a seguir cria um perfil de serviço.

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

A execução desse comando cria automaticamente um perfil de serviço com uma ID que você pode usar ao criar o dispositivo sem fio. Agora você pode criar o dispositivo sem fio usando os perfis de dispositivo e de serviço.

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

# Adicionar destinos ao AWS IoT Core for LoRaWAN
<a name="lorawan-create-destinations"></a>

Os destinos do AWS IoT Core para LoRaWAN descrevem a regra de AWS IoT que processa os dados de um dispositivo para uso por serviços da AWS.

Como a maioria dos dispositivos LoRaWAN não envia dados para o AWS IoT Core para LoRaWAN em um formato que possa ser usado por serviços da AWS, uma regra de AWS IoT deve processá-los primeiro. A regra de AWS IoT contém a instrução SQL que interpreta os dados do dispositivo e as ações da regra de tópico que enviam o resultado da instrução SQL aos serviços que a usarão.

Se você estiver adicionando o destino pela primeira vez, recomendamos usar o console. 

## Adicionar um destino usando o console
<a name="lorawan-create-destination-console"></a>

Se você estiver adicionando um dispositivo sem fio usando o console conforme descrito em [Adicione a especificação do dispositivo sem fio ao AWS IoT Core for LoRaWAN usando o console](lorawan-end-devices-add.md#lorawan-end-device-spec-console), depois de já ter adicionado a especificação do dispositivo sem fio e perfis ao AWS IoT Core for LoRaWAN conforme descrito antes, você poderá ir em frente e adicionar um destino.

Se quiser, você também pode adicionar um destino de AWS IoT Core for LoRaWAN a partir da página [Destinos](https://console.aws.amazon.com/iot/home#/wireless/destinations) do console de AWS IoT.

Para processar os dados de um dispositivo, especifique os campos a seguir ao criar um destino do AWS IoT Core para LoRaWAN e escolha **Adicionar destino**.
+ 

**Detalhes do destino**  
Insira um **Nome de destino** e uma descrição opcional para o destino.
+ 

**Nome da regra**  
A regra de AWS IoT configurada para avaliar as mensagens enviadas pelo seu dispositivo e processar os dados do dispositivo. O nome da regra será mapeado para o seu destino. O destino exige que a regra processe as mensagens recebidas. Você pode escolher que as mensagens sejam processadas invocando uma regra de AWS IoT ou publicando no agente de mensagens de AWS IoT.
  + Se você escolher **Inserir um nome de regra**, digite um nome e escolha **Copiar** para copiar o nome da regra que você inserirá ao criar a regra de AWS IoT. Você pode escolher **Criar regra** para criar a regra agora ou navegar até o Hub de [regras](https://console.aws.amazon.com/iot/home#/create/rule) do console de AWS IoT e criar uma regra com esse nome.

    Você também pode inserir uma regra e usar a configuração **Avançada** para especificar um nome de tópico. O nome do tópico é passado durante a invocação da regra e é acessado usando a expressão `topic` dentro da regra. Para obter mais informações sobre regras 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).
  + Se você escolher **Publicar no agente de mensagens de AWS IoT**, insira o nome de um tópico. Em seguida, você pode copiar o nome do tópico de MQTT e vários assinantes podem se inscrever nesse tópico para receber mensagens publicadas nele. Para ter mais informações, consulte [https://docs.aws.amazon.com/iot/latest/developerguide/topics.html](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html).

  Para obter mais informações sobre as regras de AWS IoT para destinos, consulte [Criar regras para processar mensagens de dispositivo LoRaWAN](lorawan-destination-rules.md).
+ 

**Nome do perfil**  
O perfil do IAM que concede permissões de dados do dispositivo para o acesso à regra, nomeada em **Nome da regra**. No console, é possível criar um novo perfil de serviço ou selecionar um já existente. Se você estiver criando um novo perfil de serviço, poderá inserir um nome de perfil (por exemplo, **IoTWirelessDestinationRole**) ou deixá-lo em branco para AWS IoT Core for LoRaWAN para gerar um novo nome de perfil. O AWS IoT Core for LoRaWAN, então, criará automaticamente o perfil do IAM com as devidas permissões em seu nome.

  Para obter mais informações sobre os perfis do IAM, consulte [Usar perfis do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html).

## Adicionar um destino usando a API
<a name="lorawan-create-destination-api"></a>

Se quiser adicionar um destino usando a CLI em vez disso, você já deverá ter criado a regra e o perfil do IAM para o destino. Para obter mais informações sobre os detalhes que um destino exige no perfil, consulte [Criar um perfil do IAM para os destinos](#lorawan-create-destinations-roles).

A lista a seguir contém as ações da API que realizam as tarefas associadas à adição, atualização ou exclusão de um destino.

**Ações de API 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 a lista completa das ações e dos tipos de dados disponíveis para criar e gerenciar recursos do AWS IoT Core for LoRaWAN, consulte a [Referência da API AWS IoT Wireless](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/welcome.html).

**Como usar a AWS CLI para adicionar um destino**  
Você pode usar a AWS CLI para adicionar um destino usando o comando [create-destination](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-destination.html). O exemplo a seguir mostra como criar um destino inserindo um nome de regra usando `RuleName` como o valor para o parâmetro `expression-type`. Se você quiser especificar um nome de tópico para publicar ou assinar o agente de mensagens, altere o valor do parâmetro `expression-type` para `MqttTopic`d.

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

A execução desse comando cria um destino com o nome de destino, nome da regra e nome do perfil especificados. Para obter informações sobre os nomes de regras e de perfis para destinos, consulte [Criar regras para processar mensagens de dispositivo LoRaWAN](lorawan-destination-rules.md) e [Criar um perfil do IAM para os destinos](#lorawan-create-destinations-roles).

Para obter informações sobre as CLIs que você pode usar, consulte [Referência da AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/index.html). 

## Criar um perfil do IAM para os destinos
<a name="lorawan-create-destinations-roles"></a>

Os destinos do AWS IoT Core for LoRaWAN exigem perfis do IAM que dão ao AWS IoT Core for LoRaWAN as permissões necessárias para enviar dados para a regra de AWS IoT. Se esse perfil ainda não estiver definido, você deverá defini-lo para que ele apareça na lista de perfis.

Quando você usa o console para adicionar um destino, o AWS IoT Core for LoRaWAN cria automaticamente um perfil do IAM para você, conforme descrito antes neste tópico. Ao adicionar um destino usando a API ou a CLI, você deve criar o perfil do IAM para o destino.

**Para criar uma política do IAM para o perfil de destino do AWS IoT Core for LoRaWAN**

1. Abra o [Hub de políticas do console do IAM](https://console.aws.amazon.com/iam/home#/policies).

1. Escolha **Criar política** e escolha a guia **JSON**.

1. No editor, exclua qualquer conteúdo do editor e cole este documento de política.

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

1. Escolha **Revisar política** e, em **Nome**, insira um nome para essa política. Você precisará desse nome para usar no próximo procedimento.

   Você também pode descrever essa política em **Descrição**, se quiser.

1. Escolha **Criar política**.

**Para criar um perfil do IAM para um destino do AWS IoT Core for LoRaWAN**

1. Abra o [Hub de perfis do console do IAM](https://console.aws.amazon.com/iam/home#/roles) e escolha **Criar perfil**.

1. Em **Selecionar tipo de entidade confiável**, escolha **Outra Conta da AWS**.

1. Em **ID da conta**, insira a ID da Conta da AWS e escolha **Próximo: permissões**.

1. Na caixa de pesquisa, insira o nome da política do IAM que você criou no procedimento anterior.

1. Nos resultados da pesquisa, verifique a política do IAM que você criou no procedimento anterior.

1. Escolha **Próximo: tags** e **Próximo: revisar**.

1. Em **Nome do perfil**, insira o nome desse perfil e escolha **Criar perfil**.

1. Na mensagem de confirmação, escolha o nome da função que você criou para editar o novo perfil.

1. Em **Resumo**, escolha a guia **Relações de confiança** e escolha **Editar relações de confiança**.

1. Em **Documento de política**, altere a propriedade `Principal` para ficar parecida com o exemplo a seguir.

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

   Depois de alterar a propriedade `Principal`, o documento de política completo deve ser semelhante a este exemplo.

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

1. Para salvar as alterações e sair, escolha **Atualizar política de confiança**.

Com esse perfil definido, você pode encontrá-lo na lista de perfis ao configurar os destinos do AWS IoT Core for LoRaWAN.

# Criar regras para processar mensagens de dispositivo LoRaWAN
<a name="lorawan-destination-rules"></a>

As regras de AWS IoT enviam mensagens de dispositivos a outros serviços. As regras de AWS IoT também podem processar as mensagens binárias recebidas de um dispositivo LoRaWAN para converter as mensagens em outros formatos que podem fazer com que elas sejam mais fáceis de serem usadas por outros serviços.

Os [destinos do AWS IoT Core for LoRaWAN](lorawan-create-destinations.md) associam um dispositivo sem fio à regra que processa os dados de mensagens do dispositivo para enviar a outros serviços. A regra atua sobre os dados do dispositivo assim que AWS IoT Core for LoRaWAN a recebe. Os [destinos de AWS IoT Core for LoRaWAN](lorawan-create-destinations.md) podem ser compartilhados por todos os dispositivos cujas mensagens têm o mesmo formato de dados e que enviam esses dados para o mesmo serviço.

## Como as regras de AWS IoT processam as mensagens do dispositivo
<a name="how-rules-process-message"></a>

A forma como uma regra de AWS IoT processa os dados da mensagem de um dispositivo depende do serviço que receberá os dados, do formato dos dados de mensagens do dispositivo e do formato de dados exigido pelo serviço. Normalmente, a regra chama uma função AWS Lambda para converter os dados de mensagens do dispositivo no formato exigido pelo serviço e, em seguida, envia o resultado para o serviço.

A ilustração a seguir mostra como os dados de mensagens são protegidos e processados à medida que são movidos do dispositivo sem fio para um serviço da AWS.

![\[Imagem mostrando como os dados do AWS IoT Core for LoRaWAN são transmitidos de um dispositivo sem fio para o AWS IoT e outros serviços.\]](http://docs.aws.amazon.com/pt_br/iot-wireless/latest/developerguide/images/iot-lorawan-data-flow.png)


1. O dispositivo sem fio LoRaWAN criptografa as mensagens binárias usando o modo AES128 CTR antes de transmiti-las.

1. O AWS IoT Core for LoRaWAN descriptografa a mensagem binária e codifica a carga útil da mensagem binária descriptografada como uma string base64.

1. A mensagem resultante codificada em base64 é enviada como uma carga útil de mensagem (não é formatada como um documento JSON) à regra do AWS IoT descrita no destino atribuído ao dispositivo.

1. A regra de AWS IoT direciona os dados da mensagem para o serviço descrito na configuração da regra.

A carga útil binária criptografada recebida do dispositivo sem fio não é alterada nem interpretada por AWS IoT Core for LoRaWAN. A carga útil da mensagem binária descriptografada é codificada somente como uma string base64. Para que os serviços acessem os elementos de dados na carga útil da mensagem binária, os elementos de dados devem ser analisados quanto à carga útil por uma função chamada pela regra. A carga útil da mensagem codificada em base64 é uma string ASCII, portanto, ela pode ser armazenada como tal para ser analisada mais tarde.

## Criar regras para dispositivos LoRaWAN
<a name="create-lorawan-rules"></a>

O AWS IoT Core for LoRaWAN usa regras de AWS IoT para enviar com segurança mensagens do dispositivo diretamente para outros serviços da AWS sem a necessidade de usar o agente de mensagens. Ao remover o agente de mensagens do caminho de ingestão, ele reduz os custos e otimiza o fluxo de dados.

Para que uma regra do AWS IoT Core for LoRaWAN envie mensagens do dispositivo para outros serviços da AWS, ela requer um destino do AWS IoT Core for LoRaWAN e uma regra de AWS IoT atribuída a esse destino. A regra de AWS IoT deve conter uma instrução de consulta SQL e pelo menos uma ação de regra. 

Normalmente, a instrução de consulta de regra de AWS IoT consiste em:
+ Uma cláusula SQL SELECT que seleciona e formata os dados da carga útil da mensagem
+ Um filtro de tópico (o objeto FROM na instrução de consulta de regra) que identifica as mensagens a serem usadas
+ Uma declaração condicional opcional (uma cláusula SQL WHERE) que especifica condições sobre as quais agir

Confira a seguir um exemplo de declaração de consulta de regra:

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

Ao criar regras de AWS IoT para processar cargas úteis de dispositivos LoRaWAN, você não precisa especificar a cláusula FROM como parte do objeto de consulta da regra. A instrução de consulta de regra deve ter a cláusula SQL SELECT e, como opção, pode ter a cláusula WHERE. Se a instrução de consulta usar a cláusula FROM, ela será ignorada.

Confira aqui um exemplo de uma instrução de consulta de regra que pode processar cargas úteis de dispositivos LoRaWAN:

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

Neste exemplo, `PayloadData` é uma carga útil binária codificada em base64 enviada pelo dispositivo LoRaWAN.

Confira aqui um exemplo de instrução de consulta de regra que pode realizar uma decodificação binária da carga útil recebida e transformá-la em um 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 obter mais informações sobre como utilizar as cláusulas SELECT e 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 obter informações sobre as regras de AWS IoT e como criá-las e usá-las, consulte [https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html) e [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 obter informações sobre como criar e usar destinos do AWS IoT Core for LoRaWAN, consulte [Adicionar destinos ao AWS IoT Core for LoRaWAN](lorawan-create-destinations.md).

Para obter informações sobre o uso de cargas úteis de mensagens binárias em uma regra, consulte [https://docs.aws.amazon.com/iot/latest/developerguide/binary-payloads.html](https://docs.aws.amazon.com/iot/latest/developerguide/binary-payloads.html).

Para obter mais informações sobre a segurança e a criptografia de dados usadas para proteger a carga útil da mensagem na jornada, consulte [Proteção de dados no AWS IoT Wireless](data-protection.md).

Para ver uma arquitetura de referência que mostra um exemplo de decodificação e implementação binária para regras de IoT, consulte [Exemplos de soluções do AWS IoT Core for LoRaWAN no GitHub](https://github.com/aws-samples/aws-iot-core-lorawan/tree/main/transform_binary_payload).

# Conecte o dispositivo LoRaWAN e verifique o status da conexão
<a name="lorawan-device-connection-status"></a>

Antes de verificar o status da conexão do dispositivo, você já deve ter adicionado o dispositivo e o conectado ao AWS IoT Core for LoRaWAN. Para obter informações sobre como adicionar um dispositivo, consulte [Adicione o dispositivo sem fio ao AWS IoT Core for LoRaWAN](lorawan-end-devices-add.md).

Depois de adicionar o dispositivo, consulte o manual do usuário do dispositivo para saber como iniciar o envio de uma mensagem de uplink do dispositivo LoRaWAN.

## Verificar o status da conexão do dispositivo usando o console
<a name="lorawan-device-connection-status-console"></a>

Para verificar o status da conexão usando o console, navegue até a página [https://console.aws.amazon.com/iot/home#/wireless/devices](https://console.aws.amazon.com/iot/home#/wireless/devices) do console de AWS IoT e escolha o dispositivo adicionado. Na seção **Detalhes** da página Detalhes dos dispositivos sem fio, você verá a data e a hora em que o último uplink foi recebido.

## Verificar o status da conexão do dispositivo usando a API
<a name="lorawan-device-connection-status-api"></a>

Para verificar o status da conexão usando a API, use a API `GetWirelessDeviceStatistics`. Essa API não tem um corpo de solicitação e contém apenas um corpo de resposta que mostra quando o último uplink foi recebido.

```
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"
}
```

## Próximas etapas
<a name="lorawan-device-connection-next-steps"></a>

Agora que você conectou o dispositivo e verificou o status da conexão, é possível observar o formato dos metadados de uplink recebidos do dispositivo usando o [Cliente de teste MQTT](https://console.aws.amazon.com/iot/home#/test) na página **Testar** do console de AWS IoT. Para ter mais informações, consulte [Visualizar o formato das mensagens de uplink enviadas a partir de dispositivos LoRaWAN](lorawan-uplink-metadata-format.md).