

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Rastrear usando AWS IoT e MQTT com o Amazon Location Service
<a name="tracking-using-mqtt"></a>

O [MQTT](http://mqtt.org/) é um protocolo de mensagens leve e amplamente adotado, projetado para dispositivos restritos. O AWS IoT Core suporta conexões de dispositivos que usam o protocolo MQTT e o protocolo MQTT over WebSocket Secure (WSS). 

O [AWS IoT Core](https://aws.amazon.com/iot-core/) conecta dispositivos à AWS e permite que você envie e receba mensagens entre eles. O mecanismo de regras do AWS IoT Core armazena consultas sobre os tópicos de mensagens de seus dispositivos e permite que você defina ações para enviar mensagens para outros serviços da AWS, como o Amazon Location Service. Dispositivos que estão cientes de sua localização como coordenadas podem ter suas localizações encaminhadas para a Amazon Location por meio do mecanismo de regras.

**nota**  
Os dispositivos podem saber sua própria posição, por exemplo, via GPS integrado. O AWS IoT também tem suporte para rastreamento de localização de dispositivos de terceiros. Para obter mais informações, consulte [Local do dispositivo AWS IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/device-location.html) no *Guia do desenvolvedor do AWS IoT Core*.

O passo a passo a seguir descreve o rastreamento usando regras AWS IoT Core. Você também pode enviar as informações do dispositivo para sua própria função AWS Lambda, se precisar processá-las antes de enviar para o Amazon Location. Para obter mais detalhes sobre o uso do Lambda para processar as localizações de seus dispositivos, consulte [Use AWS Lambda com o MQTT](tracking-using-mqtt-with-lambda.md).

**Topics**
+ [Pré-requisito](#mqtt-prerequisite)
+ [Criar uma regra de AWS IoT Core](#mqtt-create-iot-rule)
+ [Teste sua regra de AWS IoT Core no console](#mqtt-test-iot-rule)
+ [Use AWS Lambda com o MQTT](tracking-using-mqtt-with-lambda.md)

## Pré-requisito
<a name="mqtt-prerequisite"></a>

Antes de começar a rastrear, conclua os seguintes pré-requisitos:
+ [Crie um recurso rastreador](start-create-tracker.md) para o qual você enviará os dados de localização do dispositivo.
+ [Crie um perfil do IAM](https://docs.aws.amazon.com/iot/latest/developerguide/iot-create-role.html) para conceder acesso AWS IoT Core ao seu rastreador.

  Ao seguir essas etapas, use a política a seguir para dar acesso ao seu rastreador:

  ```
  {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
      {
        "Sid": "WriteDevicePosition",
        "Effect": "Allow",
        "Action": "geo:BatchUpdateDevicePosition",
        "Resource": "arn:aws:geo:*:*:tracker/*"
      }
    ]
  }
  ```

## Criar uma regra de AWS IoT Core
<a name="mqtt-create-iot-rule"></a>

Em seguida, crie uma regra de AWS IoT Core para encaminhar a telemetria posicional de seus dispositivos para o Amazon Location Service. Para obter mais informações sobre como criar regras, consulte os seguintes tópicos no *Guia do desenvolvedor do AWS IoT Core*:
+ [Criar uma regra do AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-create-rule.html) para obter informações sobre a criação de uma nova regra.
+ [Ação de localização](https://docs.aws.amazon.com/iot/latest/developerguide/location-rule-action.html) para obter informações específicas sobre a criação de uma regra para publicação no Amazon Location 

## Teste sua regra de AWS IoT Core no console
<a name="mqtt-test-iot-rule"></a>

Se nenhum dispositivo estiver publicando telemetria que inclua localização no momento, você poderá testar sua regra usando o console do AWS IoT Core. O console tem um cliente de teste no qual você pode publicar uma mensagem de amostra para verificar os resultados da solução.

1. Faça login no console do AWS IoT Core em [https://console.aws.amazon.com/iot/](https://console.aws.amazon.com/iot/home).

1. No painel de navegação à esquerda, expanda **Teste** e escolha **Cliente de teste MQTT**.

1. Em **Publicar em um tópico**, defina o **Nome do tópico** como *iot/tópico* (ou o nome do tópico que você configurou na sua regra AWS IoT Core, se for diferente) e forneça o seguinte para a **Carga útil da mensagem**. Substitua o carimbo de data/hora *1604940328* por um carimbo de data/hora válido nos últimos 30 dias (qualquer carimbo de data/hora anterior a 30 dias é ignorado pelos rastreadores do Amazon Location Service).

   ```
   {
     "payload": {
       "deviceid": "thing123",
       "timestamp": 1604940328,
       "location": { "lat": 49.2819, "long": -123.1187 },
       "accuracy": { "Horizontal": 20.5 },
       "positionProperties": { "field1": "value1", "field2": "value2" }
     }
   }
   ```

1. Escolha **Publicar** no tópico para enviar a mensagem de teste.

1. Para validar se a mensagem foi recebida pelo Amazon Location Service, use o comando AWS CLI a seguir. Se você o modificou durante a configuração, substitua o nome do rastreador pelo que você usou.

   ```
   aws location batch-get-device-position --tracker-name MyTracker --device-ids thing123
   ```