

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á.

# Introdução aos AWS IoT Core tutoriais
<a name="iot-gs"></a>

Se você é novato na IoT ou tem anos de experiência, esses recursos apresentam os AWS IoT conceitos e os termos que ajudarão você a começar a usar. AWS IoT
+ **Olhe para** dentro AWS IoT e seus componentes para dentro[Como AWS IoT funciona](aws-iot-how-it-works.md).
+ [**Saiba** mais sobre o AWS IoT](aws-iot-learn-more.md) com nossa coleção de materiais e vídeos de treinamento. Este tópico também inclui uma lista de serviços aos quais o AWS IoT pode se conectar, links de mídias sociais e links para especificações de protocolos de comunicação.
+ **[Conecte seu primeiro dispositivo a AWS IoT Core](#aws-iot-get-started)**.
+ **Desenvolva** suas soluções de IoT com [Conecte-se a AWS IoT Core](connect-to-iot.md) e explorando os [AWS IoT tutoriais](iot-tutorials.md).
+ **Teste e valide** seus dispositivos de IoT para uma comunicação segura e confiável com o [Device Advisor](device-advisor.md).
+ **Gerencie** sua solução com serviços de gerenciamento do AWS IoT Core , como [Indexação de frotas](iot-indexing.md), [AWS IoT Empregos](iot-jobs.md) e [AWS IoT Device Defender](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/what-is-device-defender.html).
+ **Analise** os dados de seus dispositivos com os [AWS IoT serviços de dados](aws-iot-how-it-works.md#aws-iot-components-data).

## Conecte seu primeiro dispositivo a AWS IoT Core
<a name="aws-iot-get-started"></a>

AWS IoT Core os serviços conectam dispositivos de IoT a AWS IoT serviços e outros AWS serviços. AWS IoT Core inclui o gateway do dispositivo e o agente de mensagens, que conectam e processam mensagens entre seus dispositivos de IoT e a nuvem.

Veja como você pode começar com AWS IoT Core AWS IoT e.

![\[AWS IoT Core mapa turístico de introdução.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/iot-gs-tour-map.png)


Esta seção apresenta um tour do AWS IoT Core para apresentar seus principais serviços e fornece vários exemplos de como conectar um dispositivo AWS IoT Core e transmitir mensagens entre eles. Passar mensagens entre dispositivos e a nuvem é fundamental para todas as soluções de IoT e é como seus dispositivos podem interagir com outros AWS serviços.
+ 

**[Configurar Conta da AWS](setting-up.md)**  
Antes de poder usar AWS IoT os serviços, você deve configurar um Conta da AWS. Se você já tem um Conta da AWS e um usuário do IAM para si mesmo, você pode usá-los e pular esta etapa.
+ 

**[Experimente o tutorial de conexão rápida](iot-quick-start.md)**  
Este tutorial é melhor se você quiser começar rapidamente AWS IoT e ver como ele funciona em um cenário limitado. Neste tutorial, você precisará de um dispositivo e instalará alguns AWS IoT softwares nele. Para este tutorial, se não tiver um dispositivo de IoT, é possível usar seu computador pessoal Windows, Linux ou macOS como um dispositivo. Se você quiser experimentar AWS IoT, mas não tiver um dispositivo, tente a próxima opção.
+ 

**[Experimente o tutorial interativo](interactive-demo.md)**  
Esta demonstração é melhor se você quiser ver o que uma AWS IoT solução básica pode fazer sem conectar um dispositivo ou baixar nenhum software. O tutorial interativo apresenta uma solução simulada baseada em AWS IoT Core serviços que ilustra como eles interagem.
+ 

**[Explore AWS IoT Core os serviços com um tutorial prático](iot-gs-first-thing.md)**  
Este tutorial é ideal para desenvolvedores que desejam começar AWS IoT a explorar outros AWS IoT Core recursos, como o mecanismo de regras e as sombras. Este tutorial segue um processo semelhante ao tutorial de conexão rápida, mas oferece mais detalhes a respeito de cada etapa para permitir uma transição mais harmoniosa para os tutoriais mais avançados.
+ 

**[Exibir mensagens MQTT com o cliente AWS IoT MQTT](view-mqtt-messages.md)**  
Aprenda a usar o cliente de teste MQTT para ver seu primeiro dispositivo publicar mensagens MQTT no AWS IoT. O cliente de teste MQTT é uma ferramenta útil para monitorar e solucionar problemas de conexão dos dispositivos.

**nota**  
Caso queira concluir mais de um dos tutoriais de introdução ou repetir o mesmo tutorial, será preciso excluir o objeto criado em um tutorial anterior antes de dar início ao outro. Caso não exclua o objeto de um tutorial anterior, será preciso usar um nome de objeto diferente para os tutoriais posteriores. Isso ocorre porque o nome de objeto deve ser único à sua conta e Região da AWS.

Para obter mais informações sobre AWS IoT Core, consulte [O que é AWS IoT Core](what-is-aws-iot.md)?

# Configurar Conta da AWS
<a name="setting-up"></a>

Antes de usar AWS IoT Core pela primeira vez, conclua as seguintes tarefas:

**Topics**
+ [Inscreva-se para um Conta da AWS](#sign-up-for-aws)
+ [Criar um usuário com acesso administrativo](#create-an-admin)
+ [Abra o AWS IoT console](#iot-console-signin)

## Inscreva-se para um Conta da AWS
<a name="sign-up-for-aws"></a>

Se você não tiver um Conta da AWS, conclua as etapas a seguir para criar um.

**Para se inscrever em um Conta da AWS**

1. Abra a [https://portal.aws.amazon.com/billing/inscrição.](https://portal.aws.amazon.com/billing/signup)

1. Siga as instruções online.

   Parte do procedimento de inscrição envolve receber uma chamada telefônica ou uma mensagem de texto e inserir um código de verificação pelo teclado do telefone.

   Quando você se inscreve em um Conta da AWS, um *Usuário raiz da conta da AWS*é criado. O usuário-raiz tem acesso a todos os Serviços da AWS e recursos na conta. Como prática recomendada de segurança, atribua o acesso administrativo a um usuário e use somente o usuário-raiz para executar [tarefas que exigem acesso de usuário-raiz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).

AWS envia um e-mail de confirmação após a conclusão do processo de inscrição. A qualquer momento, você pode visualizar a atividade atual da sua conta e gerenciar sua conta acessando [https://aws.amazon.com/e](https://aws.amazon.com/) escolhendo **Minha conta**.

## Criar um usuário com acesso administrativo
<a name="create-an-admin"></a>

Depois de se inscrever em um Conta da AWS, proteja seu Usuário raiz da conta da AWS Centro de Identidade do AWS IAM, habilite e crie um usuário administrativo para que você não use o usuário root nas tarefas diárias.

**Proteja seu Usuário raiz da conta da AWS**

1.  Faça login [Console de gerenciamento da AWS](https://console.aws.amazon.com/)como proprietário da conta escolhendo **Usuário raiz** e inserindo seu endereço de Conta da AWS e-mail. Na próxima página, insira a senha.

   Para obter ajuda ao fazer login usando o usuário-raiz, consulte [Fazer login como usuário-raiz](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial) no *Guia do usuário do Início de Sessão da AWS *.

1. Habilite a autenticação multifator (MFA) para o usuário-raiz.

   Para obter instruções, consulte [Habilitar um dispositivo de MFA virtual para seu usuário Conta da AWS raiz (console) no Guia](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html) do *usuário do IAM*.

**Criar um usuário com acesso administrativo**

1. Habilita o Centro de Identidade do IAM.

   Para obter instruções, consulte [Habilitar o Centro de Identidade do AWS IAM](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html) no *Guia do usuário do Centro de Identidade do AWS IAM *.

1. No Centro de Identidade do IAM, conceda o acesso administrativo a um usuário.

   Para ver um tutorial sobre como usar o Diretório do Centro de Identidade do IAM como fonte de identidade, consulte [Configurar o acesso do usuário com o padrão Diretório do Centro de Identidade do IAM](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html) no *Guia Centro de Identidade do AWS IAM do usuário*.

**Iniciar sessão como o usuário com acesso administrativo**
+ Para fazer login com o seu usuário do Centro de Identidade do IAM, use o URL de login enviado ao seu endereço de e-mail quando o usuário do Centro de Identidade do IAM foi criado.

  Para obter ajuda para fazer login usando um usuário do IAM Identity Center, consulte Como [fazer login no portal de AWS acesso](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html) no *Guia Início de Sessão da AWS do usuário*.

**Atribuir acesso a usuários adicionais**

1. No Centro de Identidade do IAM, crie um conjunto de permissões que siga as práticas recomendadas de aplicação de permissões com privilégio mínimo.

   Para obter instruções, consulte [Criar um conjunto de permissões](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html) no *Guia do usuário do Centro de Identidade do AWS IAM *.

1. Atribua usuários a um grupo e, em seguida, atribua o acesso de logon único ao grupo.

   Para obter instruções, consulte [Adicionar grupos](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html) no *Guia do usuário do Centro de Identidade do AWS IAM *.
+ [Abra o AWS IoT console](#iot-console-signin)

Se você já tem um usuário Conta da AWS e um usuário para si mesmo, pode usá-los e seguir em frente. [Abra o AWS IoT console](#iot-console-signin)

## Abra o AWS IoT console
<a name="iot-console-signin"></a>

A maioria dos tópicos orientados ao console nesta seção começa no console. AWS IoT Se você ainda não estiver conectado ao seu Conta da AWS, entre, abra o [AWS IoT console](https://console.aws.amazon.com//iot/home) e vá para a próxima seção para continuar começando AWS IoT.

# Tutorial interativo
<a name="interactive-demo"></a>

O tutorial interativo exibe os componentes de uma solução simples de IoT baseada no AWS IoT. O tutorial mostra como os dispositivos de IoT interagem com AWS IoT Core os serviços. Este tópico fornece uma prévia do tutorial AWS IoT Core interativo.

**nota**  
As imagens do console incluem animações que não estão incluídas nas imagens deste tutorial.

Para executar a demonstração, você deve primeiro [Configurar Conta da AWS](setting-up.md). O tutorial, no entanto, não requer nenhum AWS IoT recurso, software adicional ou qualquer codificação.

Espere passar cerca de 5 a 10 minutos para a conclusão desta demonstração. Reservar 10 minutos permitirá mais tempo para compreender todas as etapas.

**Para executar o tutorial AWS IoT Core interativo**

1. Abra a [página AWS IoT inicial](https://console.aws.amazon.com//iot/home#/home) no AWS IoT console.

   Na **página inicial do AWS IoT **, no painel da janela **Recursos de aprendizagem**, selecione **Iniciar tutorial**.  
![\[Esta é a página inicial AWS IoT do console.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/aws-iot-learn-home-demo.png)

1. Na página **Tutorial do console do AWS IoT **, examine as seções do tutorial e selecione a **seção Iniciar** quando estiver pronto para prosseguir.

**As seções a seguir descrevem como o **tutorial do AWS IoT console** apresenta esses AWS IoT Core recursos:**
+ [Conectar dispositivos de IoT](#interactive-demo-part1)
+ [Salvar o estado de um dispositivo offline](#interactive-demo-part2)
+ [Rotear dados do dispositivo para serviços](#interactive-demo-part3)

## Conectar dispositivos de IoT
<a name="interactive-demo-part1"></a>

Saiba como os dispositivos de IoT se comunicam com. AWS IoT Core

![\[Essa é a primeira etapa do tutorial AWS IoT interativo.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/aws-iot-learn-demo-step-1.png)


A animação desta etapa exibe como dois dispositivos, o dispositivo de controle à esquerda e uma lâmpada inteligente na casa à direita, se conectam e se comunicam com o AWS IoT Core na nuvem. A animação mostra os dispositivos se comunicando AWS IoT Core e reagindo às mensagens que recebem.

Para obter mais informações sobre como conectar dispositivos a AWS IoT Core, consulte[Conecte-se a AWS IoT Core](connect-to-iot.md).

## Salvar o estado de um dispositivo offline
<a name="interactive-demo-part2"></a>

Saiba como AWS IoT Core salva o estado do dispositivo enquanto um dispositivo ou aplicativo está off-line.

![\[Essa é a segunda etapa do tutorial AWS IoT interativo.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/aws-iot-learn-demo-step-2.png)


A animação desta etapa mostra como o serviço Device Shadow AWS IoT Core salva as informações de estado do dispositivo para o dispositivo de controle e a lâmpada inteligente. Enquanto a lâmpada inteligente está offline, a sombra do dispositivo salva os comandos do dispositivo de controle.

Quando a lâmpada inteligente se reconecta AWS IoT Core, ela recupera esses comandos. Quando o dispositivo de controle está offline, a sombra do dispositivo salva as informações de estado da lâmpada inteligente. Quando o dispositivo de controle se reconecta, ele resgata o estado atual da lâmpada inteligente para atualizar sua tela.

Para acessar mais informações sobre as sombras de dispositivos, consulte [AWS IoT Serviço Device Shadow](iot-device-shadows.md).

## Rotear dados do dispositivo para serviços
<a name="interactive-demo-part3"></a>

Saiba como AWS IoT Core envia o estado do dispositivo para outros AWS serviços.

![\[Essa é a terceira etapa do tutorial AWS IoT interativo.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/aws-iot-learn-demo-step-3.png)


A animação nesta etapa mostra como AWS IoT Core envia dados dos dispositivos para outros AWS serviços usando AWS IoT regras. AWS IoT as regras assinam mensagens específicas dos dispositivos, interpretam os dados nessas mensagens e encaminham os dados interpretados para outros serviços. Neste exemplo, uma AWS IoT regra interpreta dados de um sensor de movimento e envia comandos para um Device Shadow, que os envia para a lâmpada inteligente. Assim como no exemplo anterior, a sombra do dispositivo armazena as informações de estado do dispositivo para o dispositivo de controle.

Para obter mais informações sobre AWS IoT regras, consulte[Regras para AWS IoT](iot-rules.md).

# Experimente o tutorial de conexão AWS IoT Core rápida
<a name="iot-quick-start"></a>

Neste tutorial, você criará seu primeiro objeto, conectará um dispositivo a ele e observará como ele envia mensagens MQTT.

Você deve levar de 15 a 20 minutos para concluir este tutorial.

Este tutorial é ideal para pessoas que desejam começar rapidamente AWS IoT para ver como ele funciona em um cenário limitado. Caso esteja procurando por um exemplo que o ajude a começar a explorar mais atributos e serviços, consulte [Explore AWS IoT Core em tutoriais práticos](iot-gs-first-thing.md).

Neste tutorial, você baixará e executará um software em um dispositivo que se conecta a um *recurso físico* AWS IoT Core como parte de uma solução de IoT muito pequena. O dispositivo pode ser um dispositivo de IoT, como um Raspberry Pi, como também pode ser um computador que execute Linux, OS e OSX ou Windows. Se você deseja conectar um dispositivo WAN (LoRaWAN) de longo alcance AWS IoT, consulte o tutorial [>Conectando dispositivos e gateways AWS IoT Core à LoRa](https://docs.aws.amazon.com/iot-wireless/latest/developerguide/lorawan-getting-started.html) WAN.

Caso o seu dispositivo seja compatível com um navegador que execute o [console do AWS IoT](https://console.aws.amazon.com//iot/home), recomendamos que você conclua este tutorial nesse dispositivo.

**nota**  
Se o seu dispositivo não tiver um navegador compatível, conclua o tutorial em um computador. Quando o procedimento solicitar que você baixe o arquivo, baixe-o em seu computador e, depois, transfira o arquivo baixado para seu dispositivo através do Secure Copy (SCP) ou de um processo similar.

O tutorial requer que o seu dispositivo de IoT se comunique com a porta 8443 no endpoint de dados de dispositivo da sua Conta da AWS. Para testar se ele consegue acessar essa porta, conclua os procedimentos de [Testar a conectividade com o endpoint de dados de um dispositivo](iot-quick-start-test-connection.md).

## Etapa 1. Inicie o tutorial
<a name="iot-quick-start-connect"></a>

Se possível, realize este procedimento em seu dispositivo; caso contrário, esteja pronto para transferir um arquivo para seu dispositivo mais adiante neste procedimento.

Para iniciar o tutorial, inicie uma sessão no [console do AWS IoT](https://console.aws.amazon.com//iot/home). Na página inicial do AWS IoT console, à esquerda, escolha **Conectar** e, em seguida, escolha **Conectar um dispositivo**.

![\[Esta página inicial do AWS IoT console mostra como conectar um dispositivo.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/aws-iot-quick-connect.PNG)


## Etapa 2. Criar um objeto
<a name="iot-quick-start-configure"></a>

1. Na seção **Preparar seu dispositivo**, siga as instruções na tela para preparar seu dispositivo para conexão com o AWS IoT.  
![\[Como preparar o dispositivo no AWS IoT console.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/aws-iot-learn-prepare-device.png)

1. Na seção **Registrar e proteger seu dispositivo**, selecione **Criar um objeto nova** ou **Selecionar um objeto existente**. No campo **Nome do objeto**, digite o nome do objeto. O nome do objeto usado no exemplo é **TutorialTestThing**
**Importante**  
Verifique o nome de objeto antes de continuar.  
Não é possível alterar o nome de um objeto depois da criação do objeto. Se você quiser alterar o nome de um objeto, será preciso criar um novo objeto com o nome correto e, em seguida, excluir o objeto com o nome incorreto.

   Na seção **Configurações adicionais**, personalize ainda mais seu recurso de objeto com as configurações opcionais listadas.

   Depois de fornecer um nome ao objeto e selecionar as configurações adicionais, selecione **Próximo**.  
![\[Use o AWS IoT console para registrar e proteger seu dispositivo.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/aws-iot-learn-register-and-secure-your-device.png)

1. Na seção **Escolher plataforma e SDK**, escolha a plataforma e o idioma do SDK do AWS IoT dispositivo que você deseja usar. Este exemplo usa a Linux/OSX plataforma e o SDK do Python. Assegure-se de ter o python3 e o pip3 instalados no dispositivo de destino antes de avançar para a próxima etapa.
**nota**  
Não deixe de verificar a lista de pré-requisitos de software exigidos pelo SDK escolhido na parte inferior da página do console.  
É preciso ter o software necessário instalado no computador de destino antes de prosseguir para a próxima etapa.

   Depois de escolher a plataforma e linguagem do SDK do dispositivo, selecione **Próximo**.  
![\[Use o AWS IoT console para escolher a plataforma e o SDK.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/aws-iot-learn-choose-platform-and-SDK.png)

## Etapa 3. Baixe os arquivos no seu dispositivo
<a name="iot-quick-start-name"></a>

Essa página aparece após AWS IoT a criação do kit de conexão, que inclui os seguintes arquivos e recursos necessários para seu dispositivo:
+ Os arquivos de certificado do objeto, para autenticar o dispositivo
+ Um recurso de política, para autorizar seu objeto a interagir com o AWS IoT
+ O script para baixar o AWS Device SDK e executar o programa de amostra em seu dispositivo

1. Quando estiver pronto para continuar, selecione o botão **Baixar kit de conexão** para baixar o kit de conexão para a plataforma selecionada anteriormente.  
![\[Esta é a página do AWS IoT console para baixar o arquivo de certificado.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/aws-iot-learn-download-connection-kit_1.png)

1. Se estiver executando este procedimento no seu dispositivo, salve o arquivo do kit de conexão em um diretório a partir do qual você consiga executar comandos de linha de comando.

   Se não estiver executando este procedimento no seu dispositivo, salve o arquivo do kit de conexão em um diretório local e, em seguida, transfira o arquivo para seu dispositivo.

1. Na seção **Descompactar o kit de conexão no seu dispositivo**, digite **unzip connect\$1device\$1package.zip** no diretório onde estão os arquivos do kit de conexão.

   Se você estiver usando uma janela de PowerShell comando do Windows e o **unzip** comando não funcionar**expand-archive**, **unzip** substitua por e tente usar a linha de comando novamente.

1. Depois de obter o arquivo do kit de conexão em seu dispositivo, prossiga com o tutorial selecionando **Próximo**.  
![\[AWS IoT página de download do arquivo do certificado do console após o download do kit de conexão.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/aws-iot-learn-download-connection-kit_2.png)

## Etapa 4: Execute a amostra
<a name="iot-quick-start-install-run"></a>

Este procedimento deve ser realizado em um terminal ou janela de comando no seu dispositivo enquanto você segue as instruções exibidas no console. Os comandos do console são orientados para o sistema operacional selecionado em [Etapa 2. Criar um objeto](#iot-quick-start-configure). As mostradas aqui são para os sistemas Linux/OSX operacionais.

1. Em um terminal ou janela de comando em seu dispositivo, no diretório com o arquivo do kit de conexão, execute as etapas mostradas no AWS IoT console.  
![\[AWS IoT página de início rápido de instalação e execução do console.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/aws-iot-learn-run-connection-kit.png)

1. Após inserir o comando da **Etapa 2** no console, você deve poder observar uma saída no terminal ou na janela de comando do dispositivo semelhante à seguinte. Essa saída é oriunda das mensagens que o programa está enviando e das quais recebe de volta do AWS IoT Core.  
![\[AWS IoT exemplo de saída de programa de exemplo de início rápido do console.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/aws-iot-learn-connect-console-output-python_updated.png)

   Enquanto o programa de exemplo estiver em execução, a mensagem de teste `Hello World!` também será exibida. A mensagem de teste é exibida no terminal ou na janela de comando do seu dispositivo.
**nota**  
Para acessar mais informações sobre a assinatura e publicação de tópicos, consulte o código de exemplo do seu SDK escolhido.

1. Para executar o programa de exemplo novamente, repita os comandos da **Etapa 2** no console deste procedimento.

1. (Opcional) Se você quiser ver as mensagens do seu cliente de IoT no [AWS IoT console](https://console.aws.amazon.com//iot/home), abra o [cliente de teste MQTT](https://console.aws.amazon.com//iot/home#/test) na página **Teste** do console. AWS IoT Se você selecionou o SDK de Python, no **cliente de teste MQTT**, em **Filtro de tópicos**, insira o tópico, como por exemplo, **sdk/test/*python***, para assinar as mensagens do seu dispositivo. Os filtros de tópicos diferenciam maiúsculas de minúsculas e dependem da linguagem de programação do SDK selecionada na **Etapa 1**. Para acessar mais informações sobre a assinatura e publicação de tópicos, consulte o exemplo de código do seu SDK escolhido.

1. Depois de assinar no tópico de teste, execute **./start.sh** no seu dispositivo. Para obter mais informações, consulte [Exibir mensagens MQTT com o cliente AWS IoT MQTT](view-mqtt-messages.md).

   Depois de executar **./start.sh**, aparecerão mensagens no cliente MQTT, semelhantes à seguinte:

   ```
   {
     "message": "Hello World!" [1]
   }
   ```

   O número de `sequence` incluído entre `[]` aumenta em um cada vez que uma nova mensagem `Hello World!` é recebida e é interrompido quando você encerra o programa.

1. Para concluir o tutorial e ver um resumo, no AWS IoT console, escolha **Continuar**.   
![\[AWS IoT página de conclusão de início rápido do console.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/aws-iot-learn-connect-complete_updated1.png)

1. Um resumo do seu tutorial de conexão AWS IoT rápida aparecerá agora.  
![\[AWS IoT página de resumo de início rápido do console.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/aws-iot-learn-device-is-connected.png)

## Etapa 5. Explore mais
<a name="iot-quick-start-test"></a>

Aqui estão algumas ideias para explorar AWS IoT mais depois de concluir o início rápido.
+ 

**[Visualize mensagens MQTT no cliente de teste MQTT](https://console.aws.amazon.com/iot/home#/test)**  
No [console da AWS IoT](https://console.aws.amazon.com//iot/home), é possível abrir o [cliente do MQTT](https://console.aws.amazon.com//iot/home#/test) na página **Teste** do console da AWS IoT . No **cliente de teste MQTT**, assine **\$1** e, em seguida, execute o programa **./start.sh** no seu dispositivo conforme descrito na etapa anterior. Para obter mais informações, consulte [Exibir mensagens MQTT com o cliente AWS IoT MQTT](view-mqtt-messages.md).
+ 

**Execute testes em seus dispositivos com o [Device Advisor](https://docs.aws.amazon.com//iot/latest/developerguide/device-advisor.html)**  
Use o Device Advisor para testar se seus dispositivos podem se conectar e interagir com, de forma segura e confiável. AWS IoT
+ 

**[Tutorial interativo](interactive-demo.md)**  
Para iniciar o tutorial interativo, na página **Learn** do AWS IoT console, no quadro **Veja como AWS IoT funciona**, escolha **Iniciar o tutorial**.
+ 

**[Prepare-se para explorar mais tutoriais](iot-gs-first-thing.md)**  
Esse início rápido fornece apenas uma amostra de AWS IoT. Se você quiser explorar AWS IoT mais e aprender sobre os recursos que a tornam uma poderosa plataforma de soluções de IoT, comece a preparar sua plataforma de desenvolvimento. [Explore AWS IoT Core em tutoriais práticos](iot-gs-first-thing.md)

# Testar a conectividade com o endpoint de dados de um dispositivo
<a name="iot-quick-start-test-connection"></a>

Este tópico descreve como testar a conexão de um dispositivo com o *endpoint de dados do dispositivo* da sua conta, o endpoint que seus dispositivos de IoT usam para se conectar ao AWS IoT.

Execute estes procedimentos no dispositivo que você deseja testar ou com uma sessão de terminal SSH conectada ao dispositivo que você deseja testar.

**Topics**
+ [Localize o endpoint de dados do seu dispositivo](#iot-quick-start-test-connection-endpoint)
+ [Teste a conexão rapidamente](#iot-quick-start-test-connection-ping)
+ [Obtenha o aplicativo para testar a conexão com o endpoint de dados e a porta do seu dispositivo](#iot-quick-start-test-connection-app)
+ [Teste a conexão com o endpoint de dados e a porta do seu dispositivo](#iot-quick-start-test-connection-test)

## Localize o endpoint de dados do seu dispositivo
<a name="iot-quick-start-test-connection-endpoint"></a>

Este procedimento explica como encontrar o endpoint de dados do dispositivo no [console de AWS IoT](https://console.aws.amazon.com//iot/home) para testar a conexão com seu dispositivo de IoT.

**Para localizar o endpoint de dados do seu dispositivo**

1. No [console da AWS IoT](https://console.aws.amazon.com//iot/home), na seção **Conectar**, acesse **Configurações de domínio**.

1. Na página **Configurações de domínio**, acesse o contêiner **Configurações de domínio** e copie o **nome do domínio**. O valor do seu endpoint é exclusivo para você Conta da AWS e é semelhante a este exemplo:`a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com`.

1. 

   Salve o endpoint de dados do seu dispositivo para usá-lo nos procedimentos seguintes.

## Teste a conexão rapidamente
<a name="iot-quick-start-test-connection-ping"></a>

Este procedimento testa a conectividade geral com o endpoint de dados do seu dispositivo, mas não testa a porta específica a serem usadas pelos seus dispositivos. Este teste usa um programa comum e geralmente é suficiente para descobrir se os dispositivos podem se conectar ao AWS IoT.

Se quiser testar a conectividade com a porta específica que seus dispositivos usarão, pule este procedimento e avance para [Obtenha o aplicativo para testar a conexão com o endpoint de dados e a porta do seu dispositivo](#iot-quick-start-test-connection-app).

**Para testar o endpoint de dados do dispositivo rapidamente**

1. Em uma janela de terminal ou linha de comando no seu dispositivo, substitua o endpoint de dados do dispositivo de exemplo (`a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com`) pelo endpoint de dados do dispositivo da sua conta e, depois, digite este comando.

------
#### [ Linux ]

   ```
   ping -c 5 a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com
   ```

------
#### [ Windows ]

   ```
   ping -n 5 a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com
   ```

------

1. Se `ping` exibir uma saída semelhante à seguinte, ele se conectou ao endpoint de dados do seu dispositivo com êxito. Embora não tenha se comunicado AWS IoT diretamente, ele encontrou o servidor e é provável que ele AWS IoT esteja disponível por meio desse endpoint.

   ```
   PING a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com (xx.xx.xxx.xxx) 56(84) bytes of data.
   64 bytes from ec2-EXAMPLE-218.eu-west-1.compute.amazonaws.com (xx.xx.xxx.xxx): icmp_seq=1 ttl=231 time=127 ms
   64 bytes from ec2-EXAMPLE-218.eu-west-1.compute.amazonaws.com (xx.xx.xxx.xxx): icmp_seq=2 ttl=231 time=127 ms
   64 bytes from ec2-EXAMPLE-218.eu-west-1.compute.amazonaws.com (xx.xx.xxx.xxx): icmp_seq=3 ttl=231 time=127 ms
   64 bytes from ec2-EXAMPLE-218.eu-west-1.compute.amazonaws.com (xx.xx.xxx.xxx): icmp_seq=4 ttl=231 time=127 ms
   64 bytes from ec2-EXAMPLE-218.eu-west-1.compute.amazonaws.com (xx.xx.xxx.xxx): icmp_seq=5 ttl=231 time=127 ms
   ```

   Se você estiver satisfeito com esse resultado, pode interromper o teste neste ponto.

   Se você quiser testar a conectividade com a porta específica usada por AWS IoT, avance para [Obtenha o aplicativo para testar a conexão com o endpoint de dados e a porta do seu dispositivo](#iot-quick-start-test-connection-app).

1. Se `ping` não retornou uma saída bem-sucedida, verifique o valor do endpoint para se assegurar de que você tenha o endpoint correto e verifique a conexão do dispositivo com a Internet.

## Obtenha o aplicativo para testar a conexão com o endpoint de dados e a porta do seu dispositivo
<a name="iot-quick-start-test-connection-app"></a>

Um teste de conectividade mais minucioso pode ser realizado com `nmap`. Este procedimento realiza testes para averiguar se `nmap` está instalado no seu dispositivo.

**Para buscar `nmap` no dispositivo**

1. Em uma janela de terminal ou linha de comando no dispositivo que você quer testar, insira este comando para averiguar se `nmap` está instalado.

   ```
   nmap --version
   ```

1. Se uma saída semelhante à seguinte for exibida, `nmap` está instalado e você pode prosseguir para [Teste a conexão com o endpoint de dados e a porta do seu dispositivo](#iot-quick-start-test-connection-test).

   ```
   Nmap version 6.40 ( http://nmap.org )
   Platform: x86_64-koji-linux-gnu
   Compiled with: nmap-liblua-5.2.2 openssl-1.0.2k libpcre-8.32 libpcap-1.5.3 nmap-libdnet-1.12 ipv6
   Compiled without:
   Available nsock engines: epoll poll select
   ```

1. Caso não veja uma resposta semelhante à mostrada na etapa anterior, será preciso instalar `nmap` no dispositivo. Escolha o procedimento com base no sistema operacional do dispositivo.

------
#### [ Linux ]

Para este procedimento, é preciso que você tenha permissão para instalar softwares no computador.

**Para instalar o nmap em seu computador Linux**

1. Em uma janela de terminal ou linha de comando no dispositivo, insira o comando correspondente à versão do Linux em execução.

   1. Debian ou Ubuntu:

      ```
      sudo apt install nmap
      ```

   1. CentOS ou RHEL:

      ```
      sudo yum install nmap
      ```

1. Teste a instalação com o seguinte comando:

   ```
   nmap --version
   ```

1. Se uma saída semelhante à seguinte for exibida, `nmap` está instalado e você pode prosseguir para [Teste a conexão com o endpoint de dados e a porta do seu dispositivo](#iot-quick-start-test-connection-test).

   ```
   Nmap version 6.40 ( http://nmap.org )
   Platform: x86_64-koji-linux-gnu
   Compiled with: nmap-liblua-5.2.2 openssl-1.0.2k libpcre-8.32 libpcap-1.5.3 nmap-libdnet-1.12 ipv6
   Compiled without:
   Available nsock engines: epoll poll select
   ```

------
#### [ macOS ]

Para este procedimento, é preciso que você tenha permissão para instalar softwares no computador.

**Para instalar o nmap em seu computador macOS**

1. Em um navegador, abra [https://nmap.org/download\$1macosx](https://nmap.org/download#macosx) e baixe o instalador **estável mais recente**.

   Quando solicitado, selecione **Abrir com DiskImageInstaller**.

1. Na janela de instalação, transfira o pacote para a pasta **Aplicações**.

1. No **Localizador**, localize o pacote `nmap-xxxx-mpkg` na pasta **Aplicações**. Pressione **Ctrl-click** no pacote e selecione **Abrir** para abrir o pacote.

1. Examine a caixa de diálogo de segurança. Se estiver pronto para instalar **nmap**, selecione **Abrir** para instalar **nmap**.

1. No **Terminal**, teste a instalação com o seguinte comando:

   ```
   nmap --version
   ```

1. Se uma saída semelhante à seguinte for exibida, `nmap` está instalado e você pode prosseguir para [Teste a conexão com o endpoint de dados e a porta do seu dispositivo](#iot-quick-start-test-connection-test).

   ```
   Nmap version 7.92 ( https://nmap.org )
   Platform: x86_64-apple-darwin17.7.0
   Compiled with: nmap-liblua-5.3.5 openssl-1.1.1k nmap-libssh2-1.9.0 libz-1.2.11 nmap-libpcre-7.6 nmap-libpcap-1.9.1 nmap-libdnet-1.12 ipv6 Compiled without:
   Available nsock engines: kqueue poll select
   ```

------
#### [ Windows ]

Para este procedimento, é preciso que você tenha permissão para instalar softwares no computador.

**Para instalar o nmap em seu computador Windows**

1. Em um navegador, abra [https://nmap.org/download\$1windows](https://nmap.org/download#windows) e baixe a versão **estável mais recente** do programa de instalação.

   Se solicitado, selecione **Salvar arquivo**. Quando o arquivo for baixado, abra-o na pasta de downloads.

1.  Quando o download do arquivo de configuração for concluído, abra o **nmap-xxxx-setup.exe** baixado para instalar o aplicativo. 

1.  Aceite as configurações padrão conforme o programa é instalado.

   O aplicativo Npcap não é necessário para este teste. É possível desmarcar essa opção se não quiser instalá-la.

1. Em **Command**, teste a instalação com o seguinte comando:

   ```
   nmap --version
   ```

1. Se uma saída semelhante à seguinte for exibida, `nmap` está instalado e você pode prosseguir para [Teste a conexão com o endpoint de dados e a porta do seu dispositivo](#iot-quick-start-test-connection-test).

   ```
   Nmap version 7.92 ( https://nmap.org )
   Platform: i686-pc-windows-windows
   Compiled with: nmap-liblua-5.3.5 openssl-1.1.1k nmap-libssh2-1.9.0 nmap-libz-1.2.11 nmap-libpcre-7.6 Npcap-1.50 nmap-libdnet-1.12 ipv6
   Compiled without:
   Available nsock engines: iocp poll select
   ```

------

## Teste a conexão com o endpoint de dados e a porta do seu dispositivo
<a name="iot-quick-start-test-connection-test"></a>

Esse procedimento testa a conexão do seu dispositivo de IoT com o endpoint de dados do dispositivo usando a porta selecionada.

**Para testar o endpoint de dados e a porta do seu dispositivo**

1. Em uma janela de terminal ou linha de comando no seu dispositivo, substitua o endpoint de dados do dispositivo de exemplo (`a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com`) pelo endpoint de dados do dispositivo da sua conta e, depois, digite este comando.

   ```
   nmap -p 8443 a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com
   ```

1. Se `nmap` exibir uma saída semelhante à seguinte, `nmap` obteve êxito em se conectar ao endpoint de dados do seu dispositivo na porta selecionada.

   ```
   Starting Nmap 7.92 ( https://nmap.org ) at 2022-02-18 16:23 Pacific Standard Time
   Nmap scan report for a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com (xx.xxx.147.160)
   Host is up (0.036s latency).
   Other addresses for a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com (not scanned): xx.xxx.134.144 xx.xxx.55.139 xx.xxx.110.235 xx.xxx.174.233 xx.xxx.74.65 xx.xxx.122.179 xx.xxx.127.126
   rDNS record for xx.xxx.147.160: ec2-EXAMPLE-160.eu-west-1.compute.amazonaws.com
   
   PORT     STATE SERVICE
   8443/tcp open  https-alt
   MAC Address: 00:11:22:33:44:55 (Cimsys)
   
   Nmap done: 1 IP address (1 host up) scanned in 0.91 seconds
   ```

1. Se `nmap` não retornou uma saída bem-sucedida, verifique o valor do endpoint para se assegurar de que você tenha o endpoint correto e verifique a conexão do seu dispositivo com a Internet.

É possível testar outras portas no endpoint de dados do dispositivo, como a porta 443, a porta HTTPS primária, substituindo a porta usada na etapa 1, `8443`, pela porta que você quer testar.

# Explore AWS IoT Core em tutoriais práticos
<a name="iot-gs-first-thing"></a>

Neste tutorial, você instalará o software e criará os AWS IoT recursos necessários para conectar um dispositivo para AWS IoT Core que ele possa enviar e receber mensagens MQTT com AWS IoT Core. Você verá as mensagens no cliente MQTT no AWS IoT console.

Você deve levar de 20 a 30 minutos para concluir este tutorial. Caso esteja usando um dispositivo de IoT ou um Raspberry Pi, este tutorial pode levar mais tempo se, por exemplo, for preciso instalar o sistema operacional e configurar o dispositivo.

![\[Começando com a AWS IoT Core página.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/iot-getting-started.png)


Este tutorial é ideal para desenvolvedores que desejam começar AWS IoT Core a explorar recursos mais avançados, como o [mecanismo de regras](https://docs.aws.amazon.com//iot/latest/developerguide/iot-rules.html) e as [sombras](https://docs.aws.amazon.com//iot/latest/developerguide/iot-device-shadows.html). Este tutorial prepara você para continuar aprendendo sobre AWS IoT Core e como ele interage com outros AWS serviços, explicando as etapas com mais detalhes do que [o tutorial de início rápido](iot-quick-start.md). Se estiver procurando apenas uma experiência rápida, aos modos de *Olá, mundo*, teste [Experimente o tutorial de conexão AWS IoT Core rápida](iot-quick-start.md).

Depois de configurar seu Conta da AWS e o AWS IoT console, você seguirá estas etapas para ver como conectar um dispositivo e fazer com que ele envie mensagens para AWS IoT Core.

**Próximas etapas**
+ [Escolha qual opção de dispositivo é a melhor para você](#choosing-a-gs-system)
+ [Crie AWS IoT recursos](create-iot-resources.md) se não for criar um dispositivo virtual com o Amazon EC2
+ [Configurar o dispositivo](configure-device.md)
+ [Exibir mensagens MQTT com o cliente AWS IoT MQTT](view-mqtt-messages.md)

Para obter mais informações sobre AWS IoT Core, consulte [O que é AWS IoT Core](what-is-aws-iot.md)?

## Qual opção de dispositivo é melhor para você?
<a name="choosing-a-gs-system"></a>

Se não estiver certo sobre qual opção escolher, use esta lista de vantagens e desvantagens de cada opção para ajudá-lo a decidir a melhor opção para você.


| Opção | Esta pode ser uma boa opção se: | Esta pode ser uma boa opção se: | 
| --- | --- | --- | 
| [Criar um dispositivo virtual com o Amazon EC2](creating-a-virtual-thing.md) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/iot-gs-first-thing.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/iot-gs-first-thing.html)  | 
| [Use seu PC Windows ou Linux ou Mac como um AWS IoT dispositivo](using-laptop-as-device.md) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/iot-gs-first-thing.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/iot-gs-first-thing.html)  | 
| [Conectar um Raspberry Pi ou outro dispositivo](connecting-to-existing-device.md) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/iot-gs-first-thing.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/iot-gs-first-thing.html)  | 

# Crie AWS IoT recursos
<a name="create-iot-resources"></a>

Neste tutorial, você criará os AWS IoT recursos necessários para um dispositivo se conectar AWS IoT Core e trocar mensagens.

![\[Crie uma página de AWS IoT recursos.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/iot-gs-create-resources.png)


1. Crie um documento AWS IoT de política que autorizará seu dispositivo a interagir com os AWS IoT serviços.

1. Crie um objeto de coisa AWS IoT e seu certificado de dispositivo X.509 e, em seguida, anexe o documento de política. O objeto da coisa é a representação virtual do seu dispositivo no AWS IoT registro. O certificado autentica seu dispositivo em AWS IoT Core, e o documento de política autoriza seu dispositivo a interagir com. AWS IoT
**nota**  
Se estiver planejando [Criar um dispositivo virtual com o Amazon EC2](creating-a-virtual-thing.md), pule esta página e avance para [Configurar o dispositivo](configure-device.md). Você criará estes recursos quando criar suo objeto virtual.

Este tutorial usa o AWS IoT console para criar os AWS IoT recursos. Se o dispositivo for compatível com um navegador da Web, pode ser mais fácil realizar este procedimento no navegador da Web do dispositivo, pois você poderá baixar os arquivos do certificado diretamente para o dispositivo. Se executar esse procedimento em outro computador, será preciso copiar os arquivos do certificado para o dispositivo antes que eles possam ser usados pelo aplicativo de exemplo.

## Crie uma AWS IoT política
<a name="create-iot-policy"></a>

Os dispositivos usam um certificado X.509 para se autenticar. AWS IoT Core O certificado tem AWS IoT políticas anexadas a ele. Essas políticas determinam quais operações do AWS IoT o dispositivo tem permissão para realizar, como assinatura ou publicação de tópicos do MQTT. Seu dispositivo apresenta seu certificado quando se conecta e envia mensagens para AWS IoT Core o.

Siga as etapas para criar uma política que permita que o dispositivo execute as operações do AWS IoT que são necessárias para executar o programa de exemplo. É preciso criar a política do AWS IoT antes que possa anexá-la ao certificado do dispositivo, que você criará depois.

**Para criar uma AWS IoT política**

1. No [console do AWS IoT](https://console.aws.amazon.com//iot/home), no menu esquerdo, selecione **Segurança** e, depois, selecione **Políticas**.

1. Na página **Você ainda não possui uma política**, selecione **Criar uma política**.

   Se a sua conta possuir políticas existentes, selecione **Criar política**.

1. Na página **Criar uma política**:

   1. Na seção **Propriedades da política**, no campo **Nome da política**, digite um nome para a política (como, por exemplo, **My\$1Iot\$1Policy**). Não use informações de identificação pessoal em nomes de políticas.

   1. Na seção **Documento de política**, crie as declarações de política que concedem ou negam o acesso dos recursos às operações do AWS IoT Core . Para criar uma declaração de política que permita que todos os clientes executem ****iot:Connect****, siga as etapas a seguir:
      + No campo **Efeito da política**, selecione **Permitir**. Isso permite que os clientes que tenham essa política anexada ao certificado executem a ação listada no campo **Ação da política**.
      + No campo **Ação da política**, selecione uma ação da política, como ****iot:Connect****. As ações da política são as ações para as quais o seu dispositivo precisa de permissão para realizar ao executar o programa de exemplo a partir do SDK do dispositivo.
      + No campo **Recurso da política**, digite um nome do recurso da Amazon (ARN) ou **\$1**. Um **\$1** para selecionar qualquer cliente (dispositivo).

      Para criar as declarações de política para ****iot:Receive****, ****iot:Publish**** e ****iot:Subscribe****, selecione **Adicionar nova declaração** e repita as etapas.  
![\[Na página para criar uma política.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/gs-create-policy-new.png)
**nota**  
Neste início rápido, o caractere curinga (\$1) é usado para simplificação. Para maior segurança, restrinja quais clientes (dispositivos) podem se conectar e publicar mensagens especificando um ARN de cliente ao invés do caractere curinga como o recurso. O cliente ARNs segue este formato:`arn:aws:iot:your-region:your-aws-account:client/my-client-id`.   
Entretanto, é preciso primeiro criar o recurso (como um dispositivo cliente ou uma sombra) antes de atribuir o ARN a uma política. Para acessar mais informações, consulte [Recursos de ação do AWS IoT Core](https://docs.aws.amazon.com//iot/latest/developerguide/iot-action-resources.html).

1. Depois de inserir as informações da sua política, selecione **Criar**.

Para obter mais informações, consulte [Como AWS IoT funciona com o IAM](security_iam_service-with-iam.md).

## Criar um objeto
<a name="create-aws-thing"></a>

Os dispositivos conectados AWS IoT Core são representados por *objetos de coisas* no AWS IoT registro. Um *objeto* representa um dispositivo específico ou uma entidade lógica. Ele pode ser um dispositivo físico ou um sensor (por exemplo, uma lâmpada ou um interruptor de parede). Também pode ser uma entidade lógica, como uma instância de um aplicativo ou entidade física que não se conecta AWS IoT, mas está relacionada a outros dispositivos que o fazem (por exemplo, um carro com sensores de motor ou um painel de controle).

**Para criar algo no AWS IoT console**

1. No [console do AWS IoT](https://console.aws.amazon.com/iot/home), no menu esquerdo, selecione **Todos os dispositivos** e, depois, selecione **Objetos**.

1. Na página **Objetos**, selecione **Criar objetos**.

1. Na página **Criar objetos**, selecione **Criar uma único objeto** e, depois, selecione **Próximo**.

1. Na página **Especificar propriedades do objeto**, em **Nome do objeto**, digite um nome para o objeto, como **MyIotThing**.

   Tenha cuidado ao escolher os nomes das objetos, pois não é possível alterar o nome de um objeto mais adiante.

   Para alterar o nome de um objeto, é necessário criar um objeto, fornecer o novo nome e, depois, excluir o objeto antiga.
**nota**  
Não use informações de identificação pessoal nos nomes de objetos. O nome do objeto pode surgir em comunicações e relatórios não criptografados.

1. Mantenha e restante dos campos desta página vazios. Escolha **Próximo**.

1. Na página **Configurar certificado de dispositivo - *opcional***, selecione **Gerar um novo certificado automaticamente (recomendado)**. Escolha **Próximo**.

1. Na página **Anexar políticas ao certificado - *opcional***, escolha a política criada na seção anterior. Nessa seção, a política foi nomeada **My\$1Iot\$1Policy**. Selecione **Criar grupo**.

1. Na página **Baixar certificados e chaves**:

   1. Baixe cada um dos arquivos de certificado e chave e salve-os para uso posterior. Será preciso instalar esses arquivos no seu dispositivo.

      Ao salvar os arquivos de certificado, nomeie-os conforme a tabela a seguir. Estes são os nomes dos arquivos usados em exemplos posteriores.  
**Nomes de arquivos de certificado**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/create-iot-resources.html)

   1. Para baixar o arquivo CA raiz dos arquivos, selecione o link **Baixar** do arquivo de certificado CA raiz correspondente ao tipo de endpoint de dados e pacote de criptografia sendo usado. Neste tutorial, selecione **Baixar** à direita da **Chave RSA de 2048 bits: Amazon Root CA 1** e baixe o arquivo de certificado **Chave RSA de 2048 bits: Amazon Root CA 1**.
**Importante**  
É preciso salvar os arquivos de certificado antes de sair da página. Após sair desta página no console, você não terá mais acesso aos arquivos de certificado.  
Caso tenha se esquecido de baixar os arquivos de certificado criados nesta etapa, será preciso sair desta tela do console, acessar a lista de objetos no console, excluir o objeto criado e reiniciar o procedimento do início.

   1.  Escolha **Concluído**.

Após concluir esse procedimento, você deve ser capaz de encontrar o novo objeto na lista de objetos.

# Configurar o dispositivo
<a name="configure-device"></a>

Esta seção descreve como configurar seu dispositivo para se conectar ao AWS IoT Core. Se quiser começar, AWS IoT Core mas ainda não tiver um dispositivo, você pode criar um dispositivo virtual usando o Amazon EC2 ou usar seu PC Windows ou Mac como um dispositivo de IoT.

Selecione a melhor opção de dispositivo para você experimentar AWS IoT Core. Evidente, é possível testar todos eles, mas o faça com apenas um de cada vez. Se não tiver certeza sobre qual a melhor opção de dispositivo para você, leia sobre como decidir [qual opção de dispositivo é a melhor](iot-gs-first-thing.md#choosing-a-gs-system) e volte para esta página.

**Opções do dispositivo**
+ [Criar um dispositivo virtual com o Amazon EC2](creating-a-virtual-thing.md)
+ [Use seu PC Windows ou Linux ou Mac como um AWS IoT dispositivo](using-laptop-as-device.md)
+ [Conectar um Raspberry Pi ou outro dispositivo](connecting-to-existing-device.md)

# Criar um dispositivo virtual com o Amazon EC2
<a name="creating-a-virtual-thing"></a>

Neste tutorial, você criará uma instância do Amazon EC2 para atuar como seu dispositivo virtual na nuvem.

Para concluir este tutorial, você precisa de um Conta da AWS. Se você não possuir uma, conclua as etapas descritas em [Configurar Conta da AWS](setting-up.md) antes de continuar.

**Topics**
+ [Configurar uma instância do Amazon EC2](#set-up-ec2)
+ [Instale o Git, Node.js e configure o AWS CLI](#install-git-node)
+ [Crie AWS IoT recursos para seu dispositivo virtual](#ec2-create-certificate)
+ [Instale o AWS IoT Device SDK para JavaScript](#ec2-sdk)
+ [Executar os aplicativos de exemplo](#ec2-run-app)
+ [Exibir mensagens do aplicativo de amostra no AWS IoT console](#ec2-view-msg)

## Configurar uma instância do Amazon EC2
<a name="set-up-ec2"></a>

As etapas a seguir demonstram como criar uma instância do Amazon EC2 que atuará como seu dispositivo virtual no lugar de um dispositivo físico.

Se esta é a primeira vez que você cria uma instância do Amazon EC2, você pode achar que as instruções em [Comece a usar as instâncias do Amazon EC2 Linux](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/EC2_GetStarted.html) são mais úteis.

**Como iniciar uma instância**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. A partir do menu do console à esquerda, expanda a seção **Instâncias** e selecione **Instâncias**. A partir do painel **Instâncias**, selecione **Iniciar instâncias** à direita para exibir uma lista de configurações básicas. 

1. Na seção **Nome e tags**, digite um nome para a instância e, opcionalmente, adicione tags.

1. Na seção **Imagens de aplicações e sistemas operacionais (imagem de máquina da Amazon)**, selecione um modelo de AMI para a sua instância, como *AMI do Amazon Linux 2 (HVM)*. Observe que essas AMIs estão marcadas como “Qualificáveis para nível gratuito”.

1. Na página **Selecione um tipo de instância**, você pode selecionar a configuração de hardware da instância. Selecione o tipo `t2.micro`, que é selecionado por padrão. Observe que este tipo de instância está qualificado para o nível gratuito.

1. Na seção **Par de chaves (login)**, selecione um nome de par de chaves na lista suspensa ou selecione **Criar um novo par de chaves** para criar um novo. Quando criar um novo par de chaves, certifique-se de baixar o arquivo de chave privada e salvá-lo em um local seguro, pois essa é sua única oportunidade de baixá-lo e salvá-lo. Você precisará fornecer o nome do par de chaves ao iniciar uma instância e a chave privada correspondente sempre que se conectar à instância.
**Atenção**  
Não selecione a opção **Prosseguir sem um par de chaves**. Se você executar sua instância sem um par de chaves, você não poderá conectá-la.

1. Você pode manter as configurações padrão da seção **Configurações de rede** e da seção **Configurar armazenamento**. Quando tudo estiver pronto, selecione **Iniciar instância**.

1. Uma página de confirmação informa que sua instância está sendo executada. Selecione **Visualizar instâncias** para fechar a página de confirmação e voltar ao console.

1. Na tela **Instances**, é possível visualizar o status da execução. Demora um pouco para executar uma instância. Ao executar uma instância, seu estado inicial é `pending`. Após a inicialização da instância, seu estado muda para `running` e ela recebe um nome DNS público. (Se a coluna **DNS público (IPv4)** estiver oculta, escolha **Mostrar/ocultar colunas** (o ícone em forma de engrenagem) no canto superior direito da página e selecione DNS **público** ().) IPv4

1. Pode levar alguns minutos até que a instância esteja pronta para que você possa se conectar a ela. Certifique-se de que sua instância tenha sido aprovada nas verificações de status. É possível visualizar essas informações na coluna **Status Checks**.

   Quando a nova instância passar pelas verificações de status, prossiga para o próximo procedimento e conecte-se a ela.

**Para se conectar à sua instância**

Você pode se conectar a uma instância usando o cliente baseado em navegador selecionando a instância no console do Amazon EC2 e optando por se conectar usando o Amazon EC2 Instance Connect. O Instance Connect lida com as permissões e fornece uma conexão bem-sucedida.

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No menu esquerdo, selecione **Instâncias**.

1. Selecione a instância e escolha **Conectar**.

1. Selecione **Amazon EC2 Instance Connect**, **Connect**.

Agora você deve poder ver uma janela do **Amazon EC2 Instance Connect** conectada à nova instância do Amazon EC2.

## Instale o Git, Node.js e configure o AWS CLI
<a name="install-git-node"></a>

Nesta seção, você instalará o Git e o Node.js em sua instância do Linux.

**Para instalar o Git**

1. Na janela do **Amazon EC2 Instance Connect**, atualize sua instância com o seguinte comando.

   ```
   sudo yum update -y
   ```

1. Na janela do **Amazon EC2 Instance Connect**, instale o Git com o seguinte comando.

   ```
   sudo yum install git -y
   ```

1. Para verificar se o Git foi instalado e a versão atual do Git, execute o comando a seguir:

   ```
   git --version
   ```

**Para instalar o Node.js**

1. Na janela do **Amazon EC2 Instance Connect**, instale o gerenciador de versão do node (nvm) com o seguinte comando.

   ```
   curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
   ```

   Usaremos o nvm para instalar o Node.js, pois o nvm pode instalar várias versões do Node.js e permitir que você alterne entre elas. 

1. Na janela do **Amazon EC2 Instance Connect**, ative o nvm com o seguinte comando.

   ```
   . ~/.nvm/nvm.sh
   ```

1. Na janela do **Amazon EC2 Instance Connect**, use o nvm para instalar a versão mais recente do Node.js com o seguinte comando.

   ```
   nvm install 16
   ```
**nota**  
Isso instalará a versão LTS mais recente do Node.js.

   Instalar Node.js também instala o gerenciador de pacotes do nó (npm, do inglês "node package manager") para que você possa instalar módulos adicionais, conforme necessário.

1. Na janela do **Amazon EC2 Instance Connect**, teste se o Node.js está instalado e funcionando corretamente com o seguinte comando.

   ```
   node -e "console.log('Running Node.js ' + process.version)"
   ```

    Este tutorial requer o Node v10.0 ou uma versão posterior. Para acessar mais informações, consulte [Tutorial: configuração do Node.js em uma instância do Amazon EC2](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html).

**Para configurar AWS CLI**

Sua instância do Amazon EC2 vem pré-carregada com a AWS CLI. No entanto, você deve preencher seu AWS CLI perfil. Para acessar mais informações sobre como configurar a CLI, consulte [Configurar a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).

1. O exemplo a seguir mostra valores de exemplo. Substitua os valores pelos seus próprios valores. É possível encontrar esses valores no [AWS console nas informações da sua conta em **Credenciais de segurança**](https://console.aws.amazon.com//iam/home#/security_credentials).

   Na janela do **Amazon EC2 Instance Connect**, insira este comando:

   ```
   aws configure
   ```

   Depois, insira os valores da sua conta nas solicitações exibidas.

   ```
   AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
   AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   Default region name [None]: us-west-2
   Default output format [None]: json
   ```

1. Você pode testar sua AWS CLI configuração com este comando:

   ```
   aws iot describe-endpoint --endpoint-type iot:Data-ATS
   ```

   Se o seu AWS CLI estiver configurado corretamente, o comando deverá retornar um endereço de endpoint do seu Conta da AWS.

## Crie AWS IoT recursos para seu dispositivo virtual
<a name="ec2-create-certificate"></a>

Esta seção descreve como usar o AWS CLI para criar o objeto objeto e seus arquivos de certificado diretamente no dispositivo virtual. Isso é realizado diretamente no dispositivo para evitar possíveis complicações que possam surgir ao copiá-los para o dispositivo de outro computador. Nesta seção, você criará os recursos a seguir para o dispositivo virtual:
+ Um objeto em que representar seu dispositivo virtual AWS IoT.
+ Um certificado para autenticar um dispositivo virtual.
+ Um documento de política autorizando seu dispositivo virtual a se conectar ao AWS IoT e publicar, receber e assinar mensagens.

**Para criar um objeto de AWS IoT coisa na sua instância Linux**

Os dispositivos conectados AWS IoT são representados por *objetos de coisas* no AWS IoT registro. Um *objeto* representa um dispositivo específico ou uma entidade lógica. Neste caso, seu *objeto* representará seu dispositivo virtual, esta instância do Amazon EC2.

1. Na janela do **Amazon EC2 Instance Connect**, execute o seguinte comando para criar seu objeto.

   ```
   aws iot create-thing --thing-name "MyIotThing"
   ```

1. O resultado do JSON deve ser semelhante a esta:

   ```
   {
       "thingArn": "arn:aws:iot:your-region:your-aws-account:thing/MyIotThing", 
       "thingName": "MyIotThing",
       "thingId": "6cf922a8-d8ea-4136-f3401EXAMPLE"
   }
   ```

**Para criar e anexar AWS IoT chaves e certificados em sua instância Linux**

O comando **[create-keys-and-certificate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/create-keys-and-certificate.html)** cria certificados de cliente assinados pela autoridade de certificação raiz da Amazon. Esse certificado é usado para autenticar a identidade do dispositivo virtual.

1. Na janela do **Amazon EC2 Instance Connect**, crie um diretório para armazenar os arquivos de certificado e chave.

   ```
   mkdir ~/certs
   ```

1. Na janela do **Amazon EC2 Instance Connect**, baixe uma cópia do certificado da autoridade de certificação (CA) da Amazon com o comando a seguir.

   ```
   curl -o ~/certs/Amazon-root-CA-1.pem \
       https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

1. Na janela do **Amazon EC2 Instance Connect**, execute o seguinte comando para criar sua chave privada, chave pública e arquivos de certificado X.509. Esse comando também registra e ativa o certificado com. AWS IoT

   ```
   aws iot create-keys-and-certificate \
       --set-as-active \
       --certificate-pem-outfile "~/certs/device.pem.crt" \
       --public-key-outfile "~/certs/public.pem.key" \
       --private-key-outfile "~/certs/private.pem.key"
   ```

   A resposta é semelhante à seguinte. Salve o `certificateArn` para usá-lo em comandos subsequentes. Você precisará dele para anexar seu certificado à suo objeto e anexar a política ao certificado em etapas futuras.

   ```
   {
       "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/9894ba17925e663f1d29c23af4582b8e3b7619c31f3fbd93adcb51ae54b83dc2",
       "certificateId": "9894ba17925e663f1d29c23af4582b8e3b7619c31f3fbd93adcb51ae54b83dc2",
       "certificatePem": "
   -----BEGIN CERTIFICATE-----
   MIICiTCCEXAMPLE6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC
   VVMxCzAJBgNVBAgEXAMPLEAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6
   b24xFDASBgNVBAsTC0lBTSEXAMPLE2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd
   BgkqhkiG9w0BCQEWEG5vb25lQGFtYEXAMPLEb20wHhcNMTEwNDI1MjA0NTIxWhcN
   MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCEXAMPLEJBgNVBAgTAldBMRAwDgYD
   VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDAEXAMPLEsTC0lBTSBDb25z
   b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEXAMPLE25lQGFt
   YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+aEXAMPLE
   EXAMPLEfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T
   rDHudUZEXAMPLELG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE
   Ibb3OhjZnzcvQAEXAMPLEWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4
   nUhVVxYUntneD9+h8Mg9qEXAMPLEyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb
   FFBjvSfpJIlJ00zbhNYS5f6GuoEDEXAMPLEBHjJnyp378OD8uTs7fLvjx79LjSTb
   NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=
   -----END CERTIFICATE-----\n",
       "keyPair": {
           "PublicKey": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkEXAMPLEQEFAAOCAQ8AMIIBCgKCAQEAEXAMPLE1nnyJwKSMHw4h\nMMEXAMPLEuuN/dMAS3fyce8DW/4+EXAMPLEyjmoF/YVF/gHr99VEEXAMPLE5VF13\n59VK7cEXAMPLE67GK+y+jikqXOgHh/xJTwo+sGpWEXAMPLEDz18xOd2ka4tCzuWEXAMPLEahJbYkCPUBSU8opVkR7qkEXAMPLE1DR6sx2HocliOOLtu6Fkw91swQWEXAMPLE\GB3ZPrNh0PzQYvjUStZeccyNCx2EXAMPLEvp9mQOUXP6plfgxwKRX2fEXAMPLEDa\nhJLXkX3rHU2xbxJSq7D+XEXAMPLEcw+LyFhI5mgFRl88eGdsAEXAMPLElnI9EesG\nFQIDAQAB\n-----END PUBLIC KEY-----\n",
           "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\nkey omitted for security reasons\n-----END RSA PRIVATE KEY-----\n"
       }
   }
   ```

1. Na janela do **Amazon EC2 Instance Connect**, anexe seu objeto ao certificado que você acabou de criar usando o comando a seguir e a *certificateArn* resposta do comando anterior.

   ```
   aws iot attach-thing-principal \
       --thing-name "MyIotThing" \
       --principal "certificateArn"
   ```

   Se obtiver êxito, esse comando não retornará nenhuma saída.

**Para criar e anexar uma política**

1. Na janela do **Amazon EC2 Instance Connect**, crie o arquivo de política copiando e colando este documento de política em um arquivo nomeado **\$1/policy.json**.

   Se você não tiver um editor do Linux de preferência, pode abrir **nano** usando o seguinte comando.

   ```
   nano ~/policy.json
   ```

   Cole o documento de política para `policy.json` nele. Pressione ctrl\$1x para sair do editor **nano** e salve o arquivo.

   Conteúdo do documento de política para `policy.json`.  
****  

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

1. Na janela do **Amazon EC2 Instance Connect**, crie sua política com o comando a seguir.

   ```
   aws iot create-policy \
       --policy-name "MyIotThingPolicy" \
       --policy-document "file://~/policy.json"
   ```

   Saída:  
****  

   ```
   {
       "policyName": "MyIotThingPolicy",
       "policyArn": "arn:aws:iot:us-east-1:your-aws-account:policy/MyIotThingPolicy",
       "policyDocument": "{
           \"Version\": \"2012-10-17\",
           \"Statement\": [
               {
                   \"Effect\": \"Allow\",
                   \"Action\": [
                       \"iot:Publish\",
                       \"iot:Receive\",
                       \"iot:Subscribe\",
                       \"iot:Connect\"
                   ],
                   \"Resource\": [
                       \"*\"
                   ]
           }
           ]
       }",
       "policyVersionId": "1"
   }
   ```

1. Na janela do **Amazon EC2 Instance Connect**, anexe a política ao certificado do dispositivo virtual com o comando a seguir.

   ```
   aws iot attach-policy \
       --policy-name "MyIotThingPolicy" \
       --target "certificateArn"
   ```

   Se obtiver êxito, esse comando não retornará nenhuma saída.

## Instale o AWS IoT Device SDK para JavaScript
<a name="ec2-sdk"></a>

Nesta seção, você instalará o AWS IoT Device SDK for JavaScript, que contém o código que os aplicativos podem usar para se comunicar AWS IoT e os programas de amostra. Para obter mais informações, consulte o [AWS IoT Device SDK para JavaScript GitHub repositório](https://github.com/aws/aws-iot-device-sdk-js-v2).

**Para instalar o AWS IoT Device SDK JavaScript em sua instância Linux**

1. Na janela do **Amazon EC2 Instance Connect**, clone o AWS IoT Device SDK para JavaScript repositório no `aws-iot-device-sdk-js-v2` diretório do seu diretório inicial usando este comando.

   ```
   cd ~
   git clone https://github.com/aws/aws-iot-device-sdk-js-v2.git
   ```

1. Navegue até o diretório `aws-iot-device-sdk-js-v2` criado na etapa anterior.

   ```
   cd aws-iot-device-sdk-js-v2
   ```

1. Use npm para instalar o SDK.

   ```
   npm install
   ```

## Executar os aplicativos de exemplo
<a name="ec2-run-app"></a>

 Os comandos das próximas seções pressupõem que seus arquivos de chave e certificado estão armazenados em seu dispositivo virtual, conforme mostrado na seguinte tabela.


**Nomes de arquivos de certificado**  

|  Arquivo  |  Caminho do arquivo  | 
| --- | --- | 
|  Chave privada  |  `~/certs/private.pem.key`  | 
|  Certificado de dispositivo  |  `~/certs/device.pem.crt`  | 
|  Certificado CA raiz  |  `~/certs/Amazon-root-CA-1.pem`  | 

Nesta seção, você instalará e executará o aplicativo de `pub-sub.js` amostra encontrado no `aws-iot-device-sdk-js-v2/samples/node` diretório do AWS IoT Device SDK for JavaScript. Este aplicativo mostra a maneira como um dispositivo, sua instância do Amazon EC2, usa a biblioteca MQTT para publicar e assinar mensagens MQTT. O aplicativo de exemplo `pub-sub.js` assina um tópico, `topic_1`, publica 10 mensagens no tópico e exibe as mensagens à medida que elas são recebidas do agente de mensagens.

**Para instalar e executar o aplicativo de exemplo**

1. Na janela do **Amazon EC2 Instance Connect**, navegue até o diretório `aws-iot-device-sdk-js-v2/samples/node/pub_sub` criado pelo SDK e instale o aplicativo de exemplo com os seguintes comandos.

   ```
   cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub
   npm install
   ```

1. Em sua janela do **Amazon EC2 Instance Connect**, obtenha *your-iot-endpoint* AWS IoT usando este comando.

   ```
   aws iot describe-endpoint --endpoint-type iot:Data-ATS
   ```

1. Na janela do **Amazon EC2 Instance Connect**, insira *your-iot-endpoint* conforme indicado e execute esse comando.

   ```
   node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

O aplicativo de exemplo:

1. Conecta-se AWS IoT Core à sua conta.

1. Assina o tópico de mensagens **topic\$11** e exibe as mensagens recebidas sobre esse tópico.

1. Publica 10 mensagens no tópico **topic\$11**.

1. Exibe uma saída semelhante à seguinte:

   ```
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":1}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":2}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":3}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":4}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":5}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":6}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":7}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":8}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":9}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":10}
   ```

Se você estiver com problemas para executar a aplicação de exemplo, examine [Solucionar problemas com a aplicação de amostra](gs-device-troubleshoot.md).

Também é possível adicionar o parâmetro `--verbosity debug` à linha de comando para que o aplicativo de exemplo exiba mensagens detalhadas sobre sua operação. Essas informações podem fornecer a ajuda necessária para você corrigir o problema.

## Exibir mensagens do aplicativo de amostra no AWS IoT console
<a name="ec2-view-msg"></a>

É possível ver as mensagens do aplicativo de exemplo à medida que elas passam pelo agente de mensagens usando o **cliente de teste MQTT** no **console do AWS IoT **.

**Para visualizar as mensagens MQTT publicadas pelo aplicativo de exemplo**

1. Consulte [Exibir mensagens MQTT com o cliente AWS IoT MQTT](view-mqtt-messages.md). Isso ajudará você a aprender a usar o **cliente de teste MQTT** no **console do AWS IoT ** para visualizar as mensagens MQTT à medida que elas passam pelo agente de mensagens.

1. Abra o **cliente de teste MQTT** no **console do AWS IoT **.

1. Em **Assinar um tópico**, assine o tópico **topic\$11**.

1. Na janela do **Amazon EC2 Instance Connect**, execute o aplicativo de exemplo novamente e observe as mensagens no **cliente de teste MQTT** no **console do AWS IoT **.

   ```
   cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub
   node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

Para obter mais informações sobre o MQTT e como é AWS IoT Core compatível com o protocolo, consulte [MQTT](https://docs.aws.amazon.com//iot/latest/developerguide/mqtt.html).

# Use seu PC Windows ou Linux ou Mac como um AWS IoT dispositivo
<a name="using-laptop-as-device"></a>

Neste tutorial, você configurará um computador pessoal para uso com AWS IoT. Essas instruções são compatíveis com Windows, Linux PCs e Macs. Para concluir este tutorial, você precisará instalar alguns softwares no seu computador. Se não quiser instalar software no seu computador, você pode tentar [Criar um dispositivo virtual com o Amazon EC2](creating-a-virtual-thing.md) e instalar todos os softwares em uma máquina virtual.

**Topics**
+ [Configurar seu computador pessoal](#gs-pc-prereqs)
+ [Instale o Git, o Python e o Device SDK para Python AWS IoT](#gs-pc-sdk-node)
+ [Configurar a política e executar o aplicativo de exemplo](#gs-pc-python-app-run)
+ [Exibir mensagens do aplicativo de amostra no AWS IoT console](#gs-pc-view-msg)
+ [Execute o exemplo de assinatura compartilhada em Python](#gs-pc-shared-subscription-example)

## Configurar seu computador pessoal
<a name="gs-pc-prereqs"></a>

Para concluir este tutorial, será preciso um PC com Windows ou Linux ou de um Mac com conexão à Internet.

Antes de avançar para a próxima etapa, verifique se você pode abrir uma janela de linha de comando no computador. Em um PC com Windows, use **cmd.exe**. Em um PC com Linux ou em um Mac, use **Terminal**.

## Instale o Git, o Python e o Device SDK para Python AWS IoT
<a name="gs-pc-sdk-node"></a>

Nesta seção, você instalará o Python e o AWS IoT Device SDK for Python em seu computador. 

### Instalar a versão mais recente do Git e do Python
<a name="gs-pc-node-runtime"></a>

Este procedimento explica como instalar a versão mais recente do Git e do Python em seu computador pessoal.

**Para baixar e instalar o Git e o Python em seu computador**

1. Verifique se você possui o Git já instalado no computador. Insira este comando na linha de comando.

   ```
   git --version
   ```

   Se o comando exibir a versão do Git, o Git está instalado e você pode avançar para a próxima etapa.

   Caso o comando exiba um erro, abra [https://git-scm.com/download](https://git-scm.com/download) e instale o Git em seu computador.

1. Verifique se você já possui o Python instalado. Insira o seguinte comando na linha de comando.

   ```
   python -V
   ```
**nota**  
Se esse comando exibir um erro: `Python was not found`, pode ser que seu sistema operacional chame o executável Python v3.x como `Python3`. Nesse caso, substitua todas as instâncias de `python` com `python3` e siga com o resto deste tutorial.

   Se o comando exibir a versão do Python, então o Python já está instalado. Este tutorial requer o Python v3.7 ou uma versão posterior.

1. Se o Python já estiver instalado, você pode ignorar o restante das etapas desta seção. Se não estiver, então continue.

1. Abra [https://www.python.org/downloads/](https://www.python.org/downloads/) e baixe o instalador para o seu computador.

1. Se o download não começar a instalação automaticamente, execute o programa baixado para instalar o Python.

1. Verifique a instalação do Python.

   ```
   python -V
   ```

   Confirme se o comando exibe a versão do Python. Se a versão do Python não for exibida, tente baixar e instalar novamente.

### Instale o AWS IoT Device SDK para Python
<a name="gs-pc-python-intall-sdk"></a>

**Para instalar o AWS IoT Device SDK para Python em seu computador**

1. Instale a v2 do AWS IoT Device SDK para Python.

   ```
   python3 -m pip install awsiotsdk
   ```

1. Clone o repositório AWS IoT Device SDK for Python no diretório aws-iot-device-sdk -python-v2 do seu diretório inicial. Esse procedimento se refere ao diretório base dos arquivos como os quais você está instalando*home*.

   A localização real do *home* diretório depende do seu sistema operacional.

------
#### [ Linux/macOS ]

   No macOS e no Linux, o *home* diretório é. `~`

   ```
   cd ~ 
   git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
   ```

------
#### [ Windows ]

   No Windows, você pode encontrar o caminho do *home* diretório executando esse comando na `cmd` janela.

   ```
   echo %USERPROFILE%
   cd %USERPROFILE%
   git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
   ```

------
**nota**  
Se você estiver usando PowerShell o Windows em vez de**cmd.exe**, use o comando a seguir.  

   ```
   echo $home
   ```

Para obter mais informações, consulte o repositório [AWS IoT Device SDK for GitHub Python](https://github.com/aws/aws-iot-device-sdk-python-v2).

### Preparar-se para executar os aplicativos de exemplo
<a name="gs-pc-python-config-app"></a>

**Para preparar seu sistema para executar o aplicativo de exemplo**
+ Crie o diretório `certs`. No diretório `certs`, copie a chave privada, o certificado do dispositivo e os arquivos do certificado CA raiz salvos ao criar e registrar o objeto em [Crie AWS IoT recursos](create-iot-resources.md). Os nomes de cada arquivo no diretório de destino devem corresponder àqueles na tabela.

   Os comandos na próxima seção pressupõem que seus arquivos de chave e certificado estão armazenados em seu dispositivo, conforme mostrado nesta tabela.

------
#### [ Linux/macOS ]

  Execute o seguinte comando para criar o subdiretório `certs` que você usará ao executar os aplicativos de exemplo.

  ```
  mkdir ~/certs
  ```

  No novo subdiretório, copie os arquivos para os caminhos de arquivo de destino exibidos na seguinte tabela.  
**Nomes de arquivos de certificado**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/using-laptop-as-device.html)

  Execute o seguinte comando para listar os arquivos no diretório `certs` e compare-os com aqueles listados na tabela.

  ```
  ls -l ~/certs
  ```

------
#### [ Windows ]

  Execute o seguinte comando para criar o subdiretório `certs` que você usará ao executar os aplicativos de exemplo.

  ```
  mkdir %USERPROFILE%\certs
  ```

  No novo subdiretório, copie os arquivos para os caminhos de arquivo de destino exibidos na seguinte tabela.  
**Nomes de arquivos de certificado**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/using-laptop-as-device.html)

  Execute o seguinte comando para listar os arquivos no diretório `certs` e compare-os com aqueles listados na tabela.

  ```
  dir %USERPROFILE%\certs
  ```

------

## Configurar a política e executar o aplicativo de exemplo
<a name="gs-pc-python-app-run"></a>

Nesta seção, você configurará sua política e executará o script de exemplo `pubsub.py` encontrado no diretório `aws-iot-device-sdk-python-v2/samples` do AWS IoT Device SDK for Python. Este script mostra a maneira como seu dispositivo usa a biblioteca MQTT para publicar e assinar mensagens MQTT.

O aplicativo de exemplo `pubsub.py` assina um tópico, `test/topic`, publica 10 mensagens no tópico e exibe as mensagens à medida que elas são recebidas do agente de mensagens.

Para executar o script de exemplo `pubsub.py`, você precisa das seguintes informações:


**Valores de parâmetros de aplicação**  

|  Parâmetro  |  Onde encontrar o valor  | 
| --- | --- | 
| your-iot-endpoint |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/using-laptop-as-device.html)  | 

O *your-iot-endpoint* valor tem um formato de:`endpoint_id-ats.iot.region.amazonaws.com`, por exemplo,`a3qj468EXAMPLE-ats.iot.us-west-2.amazonaws.com`.

Antes de executar o script, certifique-se de que a política da suo objeto forneça permissões para o script de exemplo se conectar, assinar, publicar e receber. 

**Para encontrar e examinar o documento de política de um recurso de objeto**

1. No [console do AWS IoT](https://console.aws.amazon.com//iot/home#/thinghub), na lista **Objetos**, localize o recurso de objeto que representa o seu dispositivo.

1. Escolha o link **Nome** do recurso de objeto que representa o seu dispositivo para abrir a página de **Detalhes do objeto**.

1. Na página **Detalhes do objeto**, na guia **Certificados**, selecione o certificado anexado ao recurso de objeto. Deve haver apenas um certificado na lista. Se houver mais de um, selecione o certificado cujos arquivos estão instalados no seu dispositivo e que serão usados para se conectar ao AWS IoT Core.

   Na página de detalhes do **Certificado**, na guia **Políticas**, selecione a política anexada ao certificado. Deve haver apenas uma. Caso haja mais de uma, repita a próxima etapa para cada uma delas para garantir que ao menos uma política conceda o acesso necessário.

1. Na página de visão geral da **Política**, localize o editor JSON e selecione **Editar documento de política** para revisar e editar o documento de política conforme necessário.

1. O JSON da política é exibido no exemplo a seguir. No `"Resource"` elemento, `region:account` substitua por seu Região da AWS e Conta da AWS em cada um dos `Resource` valores.  
****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "iot:Publish",
                   "iot:Receive"
               ],
               "Resource": [
               "arn:aws:iot:us-east-1:123456789012:topic/test/topic"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "iot:Subscribe"
               ],
               "Resource": [
               "arn:aws:iot:us-east-1:123456789012:topicfilter/test/topic"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "iot:Connect"
               ],
               "Resource": [
               "arn:aws:iot:us-east-1:123456789012:client/test-*"
               ]
           }
       ]
   }
   ```

------
#### [ Linux/macOS ]

**Para executar o script de exemplo no Linux/macOS**

1. Na janela de linha de comando, navegue até o diretório `~/aws-iot-device-sdk-python-v2/samples/node/pub_sub` criado pelo SDK usando os seguintes comandos.

   ```
   cd ~/aws-iot-device-sdk-python-v2/samples
   ```

1. Na janela da linha de comando, substitua *your-iot-endpoint* conforme indicado e execute esse comando.

   ```
   python3 pubsub.py --endpoint your-iot-endpoint --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key
   ```

------
#### [ Windows ]

**Para executar o aplicativo de exemplo em um PC com Windows**

1. Na janela de linha de comando, navegue até o diretório `%USERPROFILE%\aws-iot-device-sdk-python-v2\samples` criado pelo SDK e instale o aplicativo de exemplo usando os seguintes comandos.

   ```
   cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples
   ```

1. Na janela da linha de comando, substitua *your-iot-endpoint* conforme indicado e execute esse comando.

   ```
   python3 pubsub.py --endpoint your-iot-endpoint --ca_file %USERPROFILE%\certs\Amazon-root-CA-1.pem --cert %USERPROFILE%\certs\device.pem.crt --key %USERPROFILE%\certs\private.pem.key
   ```

------

O script de exemplo:

1. Conecta-se ao AWS IoT Core para sua conta.

1. Assina o tópico de mensagens **test/topic** e exibe as mensagens recebidas sobre esse tópico.

1. Publica 10 mensagens no tópico **test/topic**.

1. Exibe uma saída semelhante à seguinte:

```
Connected!
Subscribing to topic 'test/topic'...
Subscribed with QoS.AT_LEAST_ONCE
Sending 10 message(s)
Publishing message to topic 'test/topic': Hello World! [1]
Received message from topic 'test/topic': b'"Hello World! [1]"'
Publishing message to topic 'test/topic': Hello World! [2]
Received message from topic 'test/topic': b'"Hello World! [2]"'
Publishing message to topic 'test/topic': Hello World! [3]
Received message from topic 'test/topic': b'"Hello World! [3]"'
Publishing message to topic 'test/topic': Hello World! [4]
Received message from topic 'test/topic': b'"Hello World! [4]"'
Publishing message to topic 'test/topic': Hello World! [5]
Received message from topic 'test/topic': b'"Hello World! [5]"'
Publishing message to topic 'test/topic': Hello World! [6]
Received message from topic 'test/topic': b'"Hello World! [6]"'
Publishing message to topic 'test/topic': Hello World! [7]
Received message from topic 'test/topic': b'"Hello World! [7]"'
Publishing message to topic 'test/topic': Hello World! [8]
Received message from topic 'test/topic': b'"Hello World! [8]"'
Publishing message to topic 'test/topic': Hello World! [9]
Received message from topic 'test/topic': b'"Hello World! [9]"'
Publishing message to topic 'test/topic': Hello World! [10]
Received message from topic 'test/topic': b'"Hello World! [10]"'
10 message(s) received.
Disconnecting...
Disconnected!
```

Se você estiver com problemas para executar a aplicação de exemplo, examine [Solucionar problemas com a aplicação de amostra](gs-device-troubleshoot.md).

Também é possível adicionar o parâmetro `--verbosity Debug` à linha de comando para que o aplicativo de exemplo exiba mensagens detalhadas sobre sua operação. Essas informações podem ajudar você a corrigir o problema.

## Exibir mensagens do aplicativo de amostra no AWS IoT console
<a name="gs-pc-view-msg"></a>

É possível ver as mensagens do aplicativo de exemplo à medida que elas passam pelo agente de mensagens usando o **cliente de teste MQTT** no **console do AWS IoT **.

**Para visualizar as mensagens MQTT publicadas pelo aplicativo de exemplo**

1. Consulte [Exibir mensagens MQTT com o cliente AWS IoT MQTT](view-mqtt-messages.md). Isso ajudará você a aprender a usar o **cliente de teste MQTT** no **console do AWS IoT ** para visualizar as mensagens MQTT à medida que elas passam pelo agente de mensagens.

1. Abra o **cliente de teste MQTT** no **console do AWS IoT **.

1. Em **Assinar um tópico**, assine o tópico **test/topic**.

1. Na janela de linha de comando, execute o aplicativo de exemplo novamente e observe as mensagens no **cliente MQTT** no **console do AWS IoT **.

------
#### [ Linux/macOS ]

   ```
   cd ~/aws-iot-device-sdk-python-v2/samples
   python3 pubsub.py --topic test/topic --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

------
#### [ Windows ]

   ```
   cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples
   python3 pubsub.py --topic test/topic --ca_file %USERPROFILE%\certs\Amazon-root-CA-1.pem --cert %USERPROFILE%\certs\device.pem.crt --key %USERPROFILE%\certs\private.pem.key --endpoint your-iot-endpoint
   ```

------

Para obter mais informações sobre o MQTT e como é AWS IoT Core compatível com o protocolo, consulte [MQTT](https://docs.aws.amazon.com//iot/latest/developerguide/mqtt.html).

## Execute o exemplo de assinatura compartilhada em Python
<a name="gs-pc-shared-subscription-example"></a>

AWS IoT Core suporta [assinaturas compartilhadas](mqtt.md#mqtt5-shared-subscription) para MQTT 3 e MQTT 5. As assinaturas compartilhadas permitem que vários clientes compartilhem uma assinatura de um tópico e somente um cliente receberá mensagens publicadas nesse tópico usando uma distribuição randomizada. Para usar assinaturas compartilhadas, os clientes assinam o [filtro de tópicos](https://docs.aws.amazon.com//iot/latest/developerguide/topics.html#topicfilters) de uma assinatura compartilhada: `$share/{ShareName}/{TopicFilter}`. 

**Para configurar a política e executar o exemplo de assinatura compartilhada**

1. Para executar o exemplo de assinatura compartilhada, é preciso configurar a política da suo objeto conforme documentado em [Assinatura compartilhada do MQTT 5](https://github.com/aws/aws-iot-device-sdk-python-v2/blob/main/samples/mqtt5_shared_subscription.md#mqtt5-shared-subscription). 

1. Para executar o exemplo de assinatura compartilhada, execute os comandos a seguir.

------
#### [ Linux/macOS ]

**Para executar o script de exemplo no Linux/macOS**

   1. Na janela de linha de comando, navegue até o diretório `~/aws-iot-device-sdk-python-v2/samples` criado pelo SDK usando os seguintes comandos.

      ```
      cd ~/aws-iot-device-sdk-python-v2/samples
      ```

   1. Na janela da linha de comando, substitua *your-iot-endpoint* conforme indicado e execute esse comando.

      ```
      python3 mqtt5_shared_subscription.py --endpoint your-iot-endpoint --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --group_identifier consumer
      ```

------
#### [ Windows ]

**Para executar o aplicativo de exemplo em um PC com Windows**

   1. Na janela de linha de comando, navegue até o diretório `%USERPROFILE%\aws-iot-device-sdk-python-v2\samples` criado pelo SDK e instale o aplicativo de exemplo usando os seguintes comandos.

      ```
      cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples
      ```

   1. Na janela da linha de comando, substitua *your-iot-endpoint* conforme indicado e execute esse comando.

      ```
      python3 mqtt5_shared_subscription.py --endpoint your-iot-endpoint --ca_file %USERPROFILE%\certs\Amazon-root-CA-1.pem --cert %USERPROFILE%\certs\device.pem.crt --key %USERPROFILE%\certs\private.pem.key --group_identifier consumer
      ```

------
**nota**  
Você pode, opcionalmente, especificar um identificador de grupo com base nas suas necessidades ao executar o exemplo (por exemplo, `--group_identifier consumer`). `python-sample` será o identificador de grupo padrão se você não especificar nenhum.

1. A saída na linha de comando pode se assemelhar ao seguinte:

   ```
   Publisher]: Lifecycle Connection Success
   [Publisher]: Connected
   Subscriber One]: Lifecycle Connection Success
   [Subscriber One]: Connected
   Subscriber Two]: Lifecycle Connection Success
   [Subscriber Two]: Connected
   [Subscriber One]: Subscribed to topic 'test/topic' in shared subscription group 'consumer'.
   [Subscriber One]: Full subscribed topic is: '$share/consumer/test/topic' with SubAck code: [<SubackReasonCode.GRANTED_QOS_1: 1>]
   [Subscriber Two]: Subscribed to topic 'test/topic' in shared subscription group 'consumer'.
   [Subscriber Two]: Full subscribed topic is: '$share/consumer/test/topic' with SubAck code: [<SubackReasonCode.GRANTED_QOS_1: 1>]
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber Two] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [1]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber One] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [2]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber Two] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [3]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber One] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [4]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber Two] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [5]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber One] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [6]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber Two] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [7]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber One] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [8]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber Two] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [9]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber One] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [10]"'
   [Subscriber One]: Unsubscribed to topic 'test/topic' in shared subscription group 'consumer'.
   [Subscriber One]: Full unsubscribed topic is: '$share/consumer/test/topic' with UnsubAck code: [<UnsubackReasonCode.SUCCESS: 0>]
   [Subscriber Two]: Unsubscribed to topic 'test/topic' in shared subscription group 'consumer'.
   [Subscriber Two]: Full unsubscribed topic is: '$share/consumer/test/topic' with UnsubAck code [<UnsubackReasonCode.SUCCESS: 0>]
   Publisher]: Lifecycle Disconnected
   [Publisher]: Lifecycle Stopped
   [Publisher]: Fully stopped
   Subscriber One]: Lifecycle Disconnected
   [Subscriber One]: Lifecycle Stopped
   [Subscriber One]: Fully stopped
   Subscriber Two]: Lifecycle Disconnected
   [Subscriber Two]: Lifecycle Stopped
   [Subscriber Two]: Fully stopped
   Complete!
   ```

1. Abra o **cliente de teste MQTT** no **console do AWS IoT **. Em **Assinar um tópico**, assine o tópico da assinatura compartilhada, como: `$share/consumer/test/topic`. Você pode especificar um identificador de grupo com base nas suas necessidades ao executar o exemplo (por exemplo, `--group_identifier consumer`). Se você não especificar um identificador de grupo, o valor padrão será `python-sample`. Para obter mais informações, consulte o [exemplo em Assinatura compartilhada do MQTT 5 em Python](https://github.com/aws/aws-iot-device-sdk-python-v2/blob/main/samples/mqtt5_shared_subscription.md#mqtt5-shared-subscription) e [Assinaturas compartilhadas](mqtt.md#mqtt5-shared-subscription) do *Guia do desenvolvedor do AWS IoT Core *.

   Na janela de linha de comando, execute o aplicativo de exemplo novamente e observe a distribuição de mensagens no **cliente de teste MQTT** do **console do AWS IoT ** e na linha de comando.  
![\[A página de saída de assinaturas compartilhadas.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/shared-subscription-output.png)

# Conectar um Raspberry Pi ou outro dispositivo
<a name="connecting-to-existing-device"></a>

Nesta seção, configuraremos um Raspberry Pi para uso com AWS IoT. Caso tenha outro dispositivo que gostaria de conectar, as instruções do Raspberry Pi incluem referências para ajudá-lo a adaptar essas instruções ao seu dispositivo.

Em geral, isso leva cerca de 20 minutos, mas pode levar mais tempo se você tiver muitas atualizações de software do sistema a serem instaladas.

**Topics**
+ [Configure seu dispositivo](#gs-device-prereqs)
+ [Instale as ferramentas e bibliotecas necessárias para o AWS IoT Device SDK](#gs-device-sdk-tools)
+ [Instale o AWS IoT Device SDK](#gs-device-install-sdk)
+ [Instalar e executar o aplicativo de exemplo](#gs-device-node-app-run)
+ [Exibir mensagens do aplicativo de amostra no AWS IoT console](#gs-device-view-msg)

**Importante**  
Adaptar estas instruções a outros dispositivos e sistemas operacionais pode ser um desafio. Você precisará conhecer seu dispositivo o bastante para interpretar estas instruções e aplicá-las ao seu dispositivo.  
Se você encontrar dificuldades ao configurar seu dispositivo para AWS IoT, tente uma das outras opções do dispositivo como alternativa, como [Criar um dispositivo virtual com o Amazon EC2](creating-a-virtual-thing.md) ou[Use seu PC Windows ou Linux ou Mac como um AWS IoT dispositivo](using-laptop-as-device.md).

## Configure seu dispositivo
<a name="gs-device-prereqs"></a>

O objetivo desta etapa é coletar o que é preciso para configurar seu dispositivo para que ele possa iniciar o sistema operacional (SO), conectar-se à Internet e permitir que você interaja com ele em uma interface de linha de comando.

Para concluir este tutorial, você precisará do seguinte:
+ Um Conta da AWS. Se você não possuir uma, conclua as etapas descritas em [Configurar Conta da AWS](setting-up.md) antes de continuar.
+ Um [Modelo B do Raspberry Pi 3](https://www.raspberrypi.com/products/) ou modelo mais recente. Pode ser que isso funcione em versões anteriores do Raspberry Pi, mas elas não foram testadas.
+ [Raspberry Pi OS (32 bits)](https://www.raspberrypi.com/software/operating-systems/) ou uma versão posterior. Recomendamos usar a versão mais recente do SO do Raspberry Pi. Versões anteriores do SO podem funcionar, mas não foram testadas.

  Para executar este exemplo, não é preciso instalar a área de trabalho com a interface gráfica do usuário (GUI); entretanto, se você é novo ao Raspberry Pi e seu hardware do Raspberry Pi for compatível, usar a área de trabalho com a GUI pode ser mais fácil.
+ Uma Ethernet ou WiFi conexão.
+ Teclado, mouse, monitor, cabos, fontes de alimentação e outros itens de hardware necessários ao seu dispositivo.

**Importante**  
Antes de avançar para a próxima etapa, seu dispositivo deve ter o sistema operacional instalado, configurado e em execução. O dispositivo deve estar conectado à Internet e você precisa ser capaz de acessá-lo usando sua interface de linha de comando. O acesso à linha de comando pode ser realizado através de um teclado, mouse e monitor conectados diretamente ou usando uma interface remota do terminal SSH.

 Se estiver executando um sistema operacional em seu Raspberry Pi que possua uma interface gráfica de usuário (GUI), abra uma janela de terminal no dispositivo e conclua as instruções a seguir nessa janela. Caso contrário, se estiver se conectando ao seu dispositivo usando um terminal remoto, como o PuTTY, abra um terminal remoto no seu dispositivo e use-o.

## Instale as ferramentas e bibliotecas necessárias para o AWS IoT Device SDK
<a name="gs-device-sdk-tools"></a>

Antes de instalar o AWS IoT Device SDK e o código de amostra, verifique se o sistema está atualizado e tem as ferramentas e bibliotecas necessárias para instalar o. SDKs

1. 

**Atualize o sistema operacional e instale as bibliotecas necessárias**  
Antes de instalar um AWS IoT Device SDK, execute esses comandos em uma janela de terminal em seu dispositivo para atualizar o sistema operacional e instalar as bibliotecas necessárias.

   ```
   sudo apt-get update
   ```

   ```
   sudo apt-get upgrade
   ```

   ```
   sudo apt-get install cmake
   ```

   ```
   sudo apt-get install libssl-dev
   ```

1. 

**Instale o Git**  
Se o sistema operacional do seu dispositivo não vem com o Git instalado, você deve instalá-lo para instalar o AWS IoT Device SDK for. JavaScript 

   1. Teste para verificar se o Git já está instalado executando o seguinte comando.

      ```
      git --version
      ```

   1. Se o comando anterior retornar a versão do Git, então o Git já está instalado e você pode avançar para a Etapa 3.

   1. Se for exibido um erro ao executar o comando **git**, instale o Git executando o seguinte comando.

      ```
      sudo apt-get install git
      ```

   1. Teste novamente para verificar se o Git está instalado executando o seguinte comando.

      ```
      git --version
      ```

   1. Se o Git estiver instalado, avance para a próxima seção. Caso contrário, solucione o problema e corrija o erro antes de prosseguir. Você precisa do Git para instalar o AWS IoT Device SDK para. JavaScript

## Instale o AWS IoT Device SDK
<a name="gs-device-install-sdk"></a>

Instale o AWS IoT Device SDK.

------
#### [ Python ]

Nesta seção, você instalará o Python, suas ferramentas de desenvolvimento e o AWS IoT Device SDK for Python em seu dispositivo. Estas instruções são para um Raspberry Pi executando o sistema operacional mais recente do Raspberry Pi. Caso tenha outro dispositivo ou esteja usando outro sistema operacional, pode ser preciso adaptar estas instruções para o dispositivo.

1. 

**Instale o Python e suas ferramentas de desenvolvimento**  
O AWS IoT Device SDK para Python exige que o Python v3.5 ou posterior esteja instalado no seu Raspberry Pi.

   Em uma janela de terminal do seu dispositivo, execute os comandos a seguir.

   1. Execute o seguinte comando para determinar a versão do Python que está instalada no dispositivo.

      ```
      python3 --version
      ```

      Se o Python estiver instalado, ele exibirá a versão.

   1. Se a versão exibida for `Python 3.5` ou superior, você pode avançar para a Etapa 2.

   1. Se a versão exibida for inferior a `Python 3.5`, você pode instalar a versão correta executando o comando a seguir.

      ```
      sudo apt install python3
      ```

   1. Execute o seguinte comando para confirmar que a versão correta do Python foi instalada.

      ```
      python3 --version
      ```

1. 

**Teste para pip3**  
Em uma janela de terminal do seu dispositivo, execute os comandos a seguir.

   1. Execute o seguinte comando para verificar se **pip3** está instalado.

      ```
      pip3 --version
      ```

   1. Se o comando retornar um número de versão, então o **pip3** está instalado e você pode avançar para a Etapa 3.

   1. Se o comando anterior retornar um erro, execute o seguinte comando para instalar o **pip3**.

      ```
      sudo apt install python3-pip
      ```

   1. Execute o seguinte comando para verificar se **pip3** está instalado.

      ```
      pip3 --version
      ```

1. 

**Instale o AWS IoT Device SDK atual para Python**  
Instale o AWS IoT Device SDK para Python e baixe os aplicativos de amostra em seu dispositivo.

   No seu dispositivo, execute os comandos a seguir.

   ```
   cd ~
   python3 -m pip install awsiotsdk
   ```

   ```
   git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
   ```

------
#### [ JavaScript ]

Nesta seção, você instalará o Node.js, o gerenciador de pacotes npm e o AWS IoT Device SDK for JavaScript em seu dispositivo. Estas instruções são para um Raspberry Pi executando o sistema operacional do Raspberry Pi. Caso tenha outro dispositivo ou esteja usando outro sistema operacional, pode ser preciso adaptar estas instruções para o dispositivo.

1. 

**Instalar a versão mais recente do Node.js**  
O AWS IoT Device SDK for JavaScript requer que o Node.js e o gerenciador de pacotes npm estejam instalados no seu Raspberry Pi.

   1. Baixe a versão mais recente do repositório do Node digitando o seguinte comando.

      ```
      cd ~
      curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
      ```

   1. Instale o Node e o npm.

      ```
      sudo apt-get install -y nodejs
      ```

   1. Verifique a instalação do Node.

      ```
      node -v
      ```

      Confirme se o comando exibe a versão do Node. Este tutorial requer o Node v10.0 ou uma versão posterior. Se a versão do Node não for exibida, tente baixar o repositório do Node mais uma vez.

   1. Verifique a instalação do npm.

      ```
      npm -v
      ```

      Confirme se o comando exibe a versão do npm. Se a versão do npm não for exibida, tente instalar o Node e o npm mais uma vez.

   1. Reinicie o dispositivo.

      ```
      sudo shutdown -r 0
      ```

      Continue depois que o dispositivo for reiniciado.

1. 

**Instale o AWS IoT Device SDK para JavaScript**  
Instale o AWS IoT Device SDK para JavaScript em seu Raspberry Pi.

   1. Clone o AWS IoT Device SDK for JavaScript repository no `aws-iot-device-sdk-js-v2` diretório do seu diretório. *home* No Raspberry Pi, o *home* diretório é`~/`, que é usado como *home* diretório nos comandos a seguir. Se o seu dispositivo usa um caminho diferente para o *home* diretório, você deve `~/` substituir pelo caminho correto para o seu dispositivo nos comandos a seguir.

      Estes comandos criam o diretório `~/aws-iot-device-sdk-js-v2` e copiam o código do SDK para ele.

      ```
      cd ~
      git clone https://github.com/aws/aws-iot-device-sdk-js-v2.git
      ```

   1. Vá para o diretório `aws-iot-device-sdk-js-v2` criado na etapa anterior e execute `npm install` para instalar o SDK. O comando `npm install` invocará a criação da biblioteca `aws-crt`, que pode levar alguns minutos para ser concluída.

      ```
      cd ~/aws-iot-device-sdk-js-v2
      npm install
      ```

------

## Instalar e executar o aplicativo de exemplo
<a name="gs-device-node-app-run"></a>

Nesta seção, você instalará e executará o aplicativo de `pubsub` amostra encontrado no AWS IoT Device SDK. Este aplicativo mostra a maneira como seu dispositivo usa a biblioteca MQTT para publicar e assinar mensagens MQTT. O aplicativo de exemplo assina um tópico, `topic_1`, publica 10 mensagens no tópico e exibe as mensagens à medida que elas são recebidas do agente de mensagens.

**Instale os arquivos de certificado**  
O aplicativo de exemplo exige que os arquivos de certificado que autenticam o dispositivo estejam instalados no dispositivo.

**Para instalar os arquivos de certificado do dispositivo para o aplicativo de exemplo**

1. Crie um `certs` subdiretório em seu *home* diretório executando esses comandos.

   ```
   cd ~
   mkdir certs
   ```

1. No diretório `~/certs`, copie a chave privada, certificado do dispositivo e certificado CA raiz criados anteriormente em [Crie AWS IoT recursos](create-iot-resources.md).

   A forma de copiar os arquivos do certificado para o dispositivo depende do dispositivo e do sistema operacional e não está descrita aqui. Entretanto, se o dispositivo for compatível com uma interface gráfica de usuário (GUI) e tiver um navegador da Web, será possível executar o procedimento descrito em [Crie AWS IoT recursos](create-iot-resources.md) a partir do navegador da Web do dispositivo para baixar os arquivos resultantes diretamente no dispositivo.

   Os comandos na próxima seção pressupõem que seus arquivos de chave e certificado estão armazenados no dispositivo, conforme mostrado nesta tabela.  
**Nomes de arquivos de certificado**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/connecting-to-existing-device.html)

Para executar o aplicativo de exemplo, você precisa das seguintes informações:


**Valores de parâmetros de aplicação**  

|  Parâmetro  |  Onde encontrar o valor  | 
| --- | --- | 
| your-iot-endpoint |  No [console do AWS IoT](https://console.aws.amazon.com/iot/home), selecione **Todos os dispositivos** e, depois, selecione **Objetos**. Na página **Configurações** no menu AWS IoT . Seu endpoint é exibido na seção **Endpoint de dados do dispositivo**.  | 

O *your-iot-endpoint* valor tem um formato de:`endpoint_id-ats.iot.region.amazonaws.com`, por exemplo,`a3qj468EXAMPLE-ats.iot.us-west-2.amazonaws.com`.

------
#### [ Python ]

**Para instalar e executar o aplicativo de exemplo**

1. Navegue até o diretório do aplicativo de exemplo.

   ```
   cd ~/aws-iot-device-sdk-python-v2/samples
   ```

1. Na janela da linha de comando, substitua *your-iot-endpoint* conforme indicado e execute esse comando.

   ```
   python3 pubsub.py --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

1. Observe que o aplicativo de exemplo:

   1. Conecta-se ao AWS IoT serviço da sua conta.

   1. Assina o tópico de mensagens **topic\$11** e exibe as mensagens recebidas sobre esse tópico.

   1. Publica 10 mensagens no tópico **topic\$11**.

   1. Exibe uma saída semelhante à seguinte:

   ```
   Connecting to a3qEXAMPLEffp-ats.iot.us-west-2.amazonaws.com with client ID 'test-0c8ae2ff-cc87-49d2-a82a-ae7ba1d0ca5a'...
   Connected!
   Subscribing to topic 'topic_1'...
   Subscribed with QoS.AT_LEAST_ONCE
   Sending 10 message(s)
   Publishing message to topic 'topic_1': Hello World! [1]
   Received message from topic 'topic_1': b'Hello World! [1]'
   Publishing message to topic 'topic_1': Hello World! [2]
   Received message from topic 'topic_1': b'Hello World! [2]'
   Publishing message to topic 'topic_1': Hello World! [3]
   Received message from topic 'topic_1': b'Hello World! [3]'
   Publishing message to topic 'topic_1': Hello World! [4]
   Received message from topic 'topic_1': b'Hello World! [4]'
   Publishing message to topic 'topic_1': Hello World! [5]
   Received message from topic 'topic_1': b'Hello World! [5]'
   Publishing message to topic 'topic_1': Hello World! [6]
   Received message from topic 'topic_1': b'Hello World! [6]'
   Publishing message to topic 'topic_1': Hello World! [7]
   Received message from topic 'topic_1': b'Hello World! [7]'
   Publishing message to topic 'topic_1': Hello World! [8]
   Received message from topic 'topic_1': b'Hello World! [8]'
   Publishing message to topic 'topic_1': Hello World! [9]
   Received message from topic 'topic_1': b'Hello World! [9]'
   Publishing message to topic 'topic_1': Hello World! [10]
   Received message from topic 'topic_1': b'Hello World! [10]'
   10 message(s) received.
   Disconnecting...
   Disconnected!
   ```

   Se você estiver com problemas para executar a aplicação de exemplo, examine [Solucionar problemas com a aplicação de amostra](gs-device-troubleshoot.md).

   Também é possível adicionar o parâmetro `--verbosity Debug` à linha de comando para que o aplicativo de exemplo exiba mensagens detalhadas sobre sua operação. Essas informações podem fornecer a ajuda necessária para você corrigir o problema.

------
#### [ JavaScript ]

**Para instalar e executar o aplicativo de exemplo**

1. Na janela de linha de comando, navegue até o diretório `~/aws-iot-device-sdk-js-v2/samples/node/pub_sub` criado pelo SDK e instale o aplicativo de exemplo usando os seguintes comandos. O comando `npm install` invocará a criação da biblioteca `aws-crt`, que pode levar alguns minutos para ser concluída.

   ```
   cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub
   npm install
   ```

1. Na janela da linha de comando, substitua *your-iot-endpoint* conforme indicado e execute esse comando.

   ```
   node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

1. Observe que o aplicativo de exemplo:

   1. Conecta-se ao AWS IoT serviço da sua conta.

   1. Assina o tópico de mensagens **topic\$11** e exibe as mensagens recebidas sobre esse tópico.

   1. Publica 10 mensagens no tópico **topic\$11**.

   1. Exibe uma saída semelhante à seguinte:

   ```
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":1}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":2}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":3}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":4}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":5}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":6}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":7}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":8}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":9}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":10}
   ```

   Se você estiver com problemas para executar a aplicação de exemplo, examine [Solucionar problemas com a aplicação de amostra](gs-device-troubleshoot.md).

   Também é possível adicionar o parâmetro `--verbosity Debug` à linha de comando para que o aplicativo de exemplo exiba mensagens detalhadas sobre sua operação. Essas informações podem fornecer a ajuda necessária para você corrigir o problema.

------

## Exibir mensagens do aplicativo de amostra no AWS IoT console
<a name="gs-device-view-msg"></a>

É possível ver as mensagens do aplicativo de exemplo à medida que elas passam pelo agente de mensagens usando o **cliente de teste MQTT** no **console do AWS IoT **.

**Para visualizar as mensagens MQTT publicadas pelo aplicativo de exemplo**

1. Consulte [Exibir mensagens MQTT com o cliente AWS IoT MQTT](view-mqtt-messages.md). Isso ajudará você a aprender a usar o **cliente de teste MQTT** no **console do AWS IoT ** para visualizar as mensagens MQTT à medida que elas passam pelo agente de mensagens.

1. Abra o **cliente de teste MQTT** no **console do AWS IoT **.

1. Assine o tópico **topic\$11**.

1. Na janela de linha de comando, execute o aplicativo de exemplo novamente e observe as mensagens no **cliente MQTT** no **console do AWS IoT **.

------
#### [ Python ]

   ```
   cd ~/aws-iot-device-sdk-python-v2/samples
   python3 pubsub.py --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

------
#### [ JavaScript ]

   ```
   cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub
   node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

------

# Solucionar problemas com a aplicação de amostra
<a name="gs-device-troubleshoot"></a>

Se encontrar um erro ao tentar executar o aplicativo de exemplo, veja a seguir algumas objetos a serem verificadas.

## Verifique o certificado
<a name="gs-device-ts-step-1"></a>

Se o certificado não estiver ativo, não AWS IoT aceitará nenhuma tentativa de conexão que o use para autorização. Na criação do certificado, é fácil ignorar o botão **Ativar**. Felizmente, você pode ativar seu certificado no [console do AWS IoT](https://console.aws.amazon.com/iot/home).

**Para verificar a ativação do certificado**

1. No [console do AWS IoT](https://console.aws.amazon.com/iot/home), no menu esquerdo, selecione **Segurança** e, depois, selecione **Certificados**.

1. Na lista de certificados, localize o certificado criado para o exercício e verifique seu status na coluna **Status**.

   Caso você não se lembre do nome do certificado, verifique se há algum que esteja **Inativo** para ver se pode ser o que você está usando.

   Selecione o certificado na lista para abrir sua página de detalhes. Na página de detalhes, é possível ver a **Data de criação** para ajudá-lo a identificar o certificado.

1. **Para ativar um certificado inativo**, na página de detalhes do certificado, selecione **Ações** e, depois, selecione **Ativar**. 

Se você encontrou o certificado correto e ele está ativo, mas continua com problemas para executar o aplicativo de exemplo, verifique sua política conforme descrito pela próxima etapa.

Também é possível tentar criar um objeto nova e um novo certificado seguindo as etapas de [Criar um objeto](create-iot-resources.md#create-aws-thing). Se criar um objeto nova, será preciso criar um novo nome para ela e baixar os novos arquivos de certificado em seu dispositivo.

## Verifique a política anexada ao certificado
<a name="gs-device-ts-step-2"></a>

As políticas autorizam ações em AWS IoT. Se o certificado usado para se conectar ao AWS IoT não tiver uma política, ou se não tiver uma política que permita a conexão, a conexão será recusada mesmo se o certificado estiver ativo.

**Para verificar as políticas que estão anexadas a um certificado**

1. Localize o certificado conforme descrito no item anterior e abra sua página de detalhes.

1. No menu esquerdo da página de detalhes do certificado, selecione **Políticas** para visualizar as políticas que estão anexadas ao certificado.

1. Caso não haja políticas anexadas ao certificado, adicione uma selecionando o menu **Ações** e, depois, selecionando **Anexar política**. 

   Selecione a política criada anteriormente em [Crie AWS IoT recursos](create-iot-resources.md).

1. Se houver uma política anexada, selecione o bloco da política para abrir sua página de detalhes.

   Na página de detalhes, examine o **Documento da política** para se certificar de que ele contém as mesmas informações criadas em [Crie uma AWS IoT política](create-iot-resources.md#create-iot-policy).

## Verifique a linha de comando
<a name="gs-device-ts-step-3"></a>

Certifique-se de ter usado a linha de comando correta para o seu sistema. Os comandos usados em sistemas Linux e macOS são, em geral, diferentes dos usados em sistemas Windows.

## Verifique o endereço do endpoint
<a name="gs-device-ts-step-4"></a>

Revise o comando inserido e verifique novamente se o endereço do endpoint em seu comando coincide com aquele do [console do AWS IoT](https://console.aws.amazon.com/iot/home).

## Verifique os nomes dos arquivos de certificado
<a name="gs-device-ts-step-5"></a>

Compare os nomes dos arquivos no comando digitado com os nomes dos arquivos de certificado no diretório `certs`.

Alguns sistemas podem exigir que nomes de arquivos estejam entre aspas para funcionar corretamente.

## Verifique a instalação do SDK
<a name="gs-device-ts-step-6"></a>

Verifique de a instalação do SDK está completa e correta.

Em caso de dúvida, instale o SDK novamente no dispositivo. Na maioria dos casos, basta encontrar a seção do tutorial intitulada **Instalar o SDK do AWS IoT dispositivo **SDK language**** e seguir o procedimento novamente.

Se você estiver usando o **AWS IoT Device SDK para JavaScript**, lembre-se de instalar os aplicativos de amostra antes de tentar executá-los. A instalação do SDK não instala os aplicativos de exemplo de forma automática. Os aplicativos de exemplo devem ser instalados manualmente depois da instalação do SDK.

# Exibir mensagens MQTT com o cliente AWS IoT MQTT
<a name="view-mqtt-messages"></a>

Esta seção descreve como usar o cliente de teste AWS IoT MQTT no [AWS IoT console](https://console.aws.amazon.com/iot/home) para observar as mensagens MQTT enviadas e recebidas pelo. AWS IoT O exemplo usado nesta seção está relacionado aos exemplos usados em[Introdução aos AWS IoT Core tutoriais](iot-gs.md); no entanto, você pode substituir o *topicName* usado nos exemplos por qualquer [nome de tópico ou filtro de tópico](topics.md) usado pela sua solução de IoT.

Os dispositivos publicam mensagens MQTT que são identificadas por [tópicos](topics.md) para comunicar seu estado e AWS IoT publicam mensagens MQTT para informar os dispositivos e aplicativos sobre mudanças e eventos. AWS IoTÉ possível usar o cliente MQTT para se inscrever nesses tópicos e observar as mensagens à medida que elas ocorrem. Você também pode usar o cliente de teste MQTT para publicar mensagens MQTT em dispositivos e serviços assinados em seu. Conta da AWS

**Topics**
+ [Visualizar mensagens MQTT no cliente MQTT](#view-mqtt-subscribe)
+ [Publicar mensagens MQTT do cliente MQTT](#view-mqtt-publish)
+ [Testar assinaturas compartilhadas no cliente MQTT](#view-mqtt-shared-subscriptions)

## Visualizar mensagens MQTT no cliente MQTT
<a name="view-mqtt-subscribe"></a>

O procedimento a seguir explica como se inscrever em um tópico específico do MQTT no qual seu dispositivo publica mensagens e visualizá-las no [console de AWS IoT](https://console.aws.amazon.com/iot/home).

**Para visualizar mensagens MQTT no cliente de teste MQTT**

1. No [console do AWS IoT](https://console.aws.amazon.com/iot/home), no menu esquerdo, selecione **Testar** e, depois, selecione **Cliente de teste MQTT**.  
![\[Escolha o cliente de teste MQTT no menu do console na navegação esquerda.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/choose-test.png)

1. Na guia **Inscrever-se em um tópico**, insira *topicName* para assinar o tópico no qual seu dispositivo publica. Para começar a usar o aplicativo de exemplo, assine **\$1**, que assina todos os tópicos de mensagens.

   Continuando com o exemplo de introdução, na guia **Assinar um tópico**, no campo **Filtro de tópicos**, insira **\$1** e selecione **Assinar**.  
![\[A guia Inscrever-se em um tópico.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/subscribe-button-topic.png)

   A página de log de mensagens do tópico, **\$1**, abrirá e **\$1** aparecerá na lista **Assinaturas.** Se o dispositivo que você configurou [Configurar o dispositivo](configure-device.md) estiver executando o programa de exemplo, você deverá ver as mensagens para as quais ele envia AWS IoT no registro de mensagens **\$1**. As entradas do registro de mensagens aparecerão abaixo da seção **Publicar** quando as mensagens com o tópico inscrito forem recebidas por AWS IoT.  
![\[A seção para mostrar o tópico foi assinado com sucesso.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/subscribed-button-topic.png)

1. Na página de log de mensagens **\$1**, também é possível publicar mensagens em um tópico, mas você precisará especificar o nome do tópico. Não é possível publicar no tópico **\$1**.

   As mensagens publicadas nos tópicos assinados aparecem no log de mensagens à medida que são recebidas, com a mensagem mais recente em primeiro lugar.

### Solução de problemas com mensagens MQTT
<a name="view-mqtt-trouble"></a>

**Usar o filtro de tópicos curinga**  
Se suas mensagens não forem exibidas no log de mensagens conforme esperado, tente assinar um filtro de tópicos curinga, conforme descrito em [Filtros de nomes de tópicos](topics.md#topicfilters). O filtro de tópico curinga de vários níveis MQTT é o sinal de jogo da velha ou hashtag ( `#` ) e ele pode ser usado como filtro de tópicos no campo **Tópico de assinatura**.

Ao assinar o filtro de tópicos `#`, você assina todos os tópicos recebidos pelo agente de mensagens. Você pode restringir o filtro substituindo elementos do caminho do filtro de tópicos por um caractere curinga de vários níveis `#` ou pelo caractere curinga de nível único '\$1'.

**Ao usar curingas em um filtro de tópicos**
+ O caractere curinga de vários níveis deve ser o último caractere no filtro de tópicos.
+ O caminho do filtro de tópicos pode ter apenas um caractere curinga de nível único por nível de tópico.

Por exemplo:


|  Filtro de tópicos  |  Exibe mensagens com  | 
| --- | --- | 
|   `#`   |   Qualquer nome de tópico   | 
|   `topic_1/#`   |   Um nome de tópico que inicia com `topic_1/`  | 
|   `topic_1/level_2/#`   |   Um nome de tópico que inicia com `topic_1/level_2/`  | 
|   `topic_1/+/level_3`   |   Um nome de tópico que inicia com `topic_1/`, termina com `/level_3` e tem um elemento de qualquer valor intermediário.  | 

Para acessar mais informações sobre filtros de tópicos, consulte [Filtros de nomes de tópicos](topics.md#topicfilters).

**Verificar se há erros no nome do tópico**  
Os nomes de tópicos MQTT e os filtros de tópicos diferenciam letras maiúsculas de minúsculas. Se, por exemplo, seu dispositivo estiver publicando mensagens em `Topic_1` (com *T* maiúsculo) em vez de `topic_1`, que você assinou, suas mensagens não serão exibidas no cliente de teste MQTT. Assinar o filtro de tópicos curinga, entretanto, mostraria que o dispositivo está publicando mensagens e você poderia ver que ele estava usando um nome de tópico diferente do esperado.

## Publicar mensagens MQTT do cliente MQTT
<a name="view-mqtt-publish"></a>

**Como publicar uma mensagem em um tópico MQTT**

1. Na página do cliente de teste do MQTT, na guia **Publicar em um tópico**, no campo **Nome do tópico**, insira a *topicName* mensagem. Neste exemplo, use **my/topic**. 
**nota**  
Não use informações de identificação pessoal em nomes de tópicos, seja no cliente de teste MQTT ou na implementação do seu sistema. Os nomes de tópicos pode surgir em comunicações e relatórios não criptografados.

1. Na janela de carga da mensagem, insira o JSON a seguir:

   ```
   {
       "message": "Hello, world",
       "clientType": "MQTT test client"
   }
   ```

1. Selecione **Publicar** para publicar sua mensagem no AWS IoT.
**nota**  
Certifique-se de ser assinante do tópico **my/topic** antes de publicar a mensagem.  
![\[A guia Publicar no tópico.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/publish-to-topic.png)

1. Na lista **Assinaturas**, selecione **my/topic** para ver a mensagem. Você deve poder ver a mensagem aparecer no cliente de teste MQTT abaixo da janela de carga da mensagem de publicação.  
![\[A tela que mostra o tópico publicado foi recebida.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/publish-to-topic-received.png)

Você pode publicar mensagens MQTT *topicName* em outros tópicos alterando o campo **Nome do tópico** e escolhendo o botão **Publicar**.

**Importante**  
Quando você cria várias assinaturas com tópicos sobrepostos (por exemplo, sonda1/temperatura e sonda1/\$1), uma única mensagem publicada em um tópico correspondente às duas assinaturas pode ser entregue várias vezes, uma para cada assinatura sobreposta. 

## Testar assinaturas compartilhadas no cliente MQTT
<a name="view-mqtt-shared-subscriptions"></a>

Esta seção descreve como usar o cliente AWS IoT MQTT no [AWS IoT console](https://console.aws.amazon.com/iot/home) para observar as mensagens MQTT enviadas e recebidas AWS IoT usando assinaturas compartilhadas. [Assinaturas compartilhadas](mqtt.md#mqtt5-shared-subscription)permitem que vários clientes compartilhem uma assinatura de um tópico com apenas um cliente recebendo mensagens publicadas nesse tópico usando uma distribuição aleatória. Para simular vários clientes MQTT (neste exemplo, dois clientes MQTT) compartilhando a mesma assinatura, você abre o cliente AWS IoT MQTT no [AWS IoT console](https://console.aws.amazon.com/iot/home) a partir de vários navegadores da web. O exemplo usado nesta seção não está relacionado aos exemplos contidos em [Introdução aos AWS IoT Core tutoriais](iot-gs.md). Para acessar mais informações, consulte [Assinaturas compartilhadas](mqtt.md#mqtt5-shared-subscription).

**Para compartilhar uma assinatura de um tópico MQTT**

1. No [console do AWS IoT](https://console.aws.amazon.com/iot/home), no painel de navegação, selecione **Testar** e, em seguida, selecione **cliente de teste MQTT**.

1. Na guia **Inscrever-se em um tópico**, insira *topicName* para assinar o tópico no qual seu dispositivo publica. Para usar assinaturas compartilhadas, assine um filtro de tópicos de uma assinatura compartilhada da seguinte maneira:

   ```
   $share/{ShareName}/{TopicFilter}
   ```

   Um exemplo de filtro de tópicos pode ser **\$1share/group1/topic1**, que assina o tópico de mensagens **topic1**.  
![\[A guia que mostra como especificar um filtro de tópicos para assinaturas compartilhadas.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/shared-subscription-topicfilter.png)

1. Abra outro navegador da Web e repita as etapas 1 e 2. Assim, você estará simulando dois clientes MQTT diferentes que compartilham a mesma assinatura **\$1share/group1/topic1**.

1. Escolha um cliente MQTT, na guia **Publicar em um tópico**, no campo **Nome do tópico**, insira o *topicName* da sua mensagem. Neste exemplo, use **topic1**. Experimente publicar a mensagem algumas vezes. Na lista **Assinaturas** de ambos os clientes MQTT, você deve poder ver que os clientes recebem a mensagem usando uma distribuição randômica. No exemplo a seguir, publicamos a mensagem "Hello from AWS IoT console" três vezes. O cliente MQTT da esquerda recebeu a mensagem duas vezes e o cliente MQTT da direita recebeu a mensagem uma única vez.  
![\[O fluxo de assinaturas compartilhadas com dois clientes para compartilhar uma assinatura de um tópico e apenas um cliente receberá mensagens publicadas naquele tópico usando uma distribuição aleatória.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/shared_subscriptions_test.gif)