Conectar um Raspberry Pi ou outro dispositivo - AWS IoT Core

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

Conectar um Raspberry Pi ou outro dispositivo

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.

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 ouUse seu PC Windows ou Linux ou Mac como um AWS IoT dispositivo.

Configure seu dispositivo

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 Configure seu Conta da AWS antes de continuar.

  • Um Modelo B do Raspberry Pi 3 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) 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

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 os 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
  2. 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
    2. 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.

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

      sudo apt-get install git
    4. Teste novamente para verificar se o Git está instalado executando o seguinte comando.

      git --version
    5. 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

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.

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

    3. 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
    4. Execute o seguinte comando para confirmar que a versão correta do Python foi instalada.

      python3 --version
  2. 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
    2. 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.

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

      sudo apt install python3-pip
    4. Execute o seguinte comando para verificar se pip3 está instalado.

      pip3 --version
  3. 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 -
    2. Instale o Node e o npm.

      sudo apt-get install -y nodejs
    3. 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.

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

    5. Reinicie o dispositivo.

      sudo shutdown -r 0

      Continue depois que o dispositivo for reiniciado.

  2. 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 inicial. No Raspberry Pi, o diretório home é ~/, que é usado como diretório home nos seguintes comandos. Se o seu dispositivo usa um caminho diferente para o diretório home, é preciso substituir ~/ pelo caminho correto do seu dispositivo nos seguintes comandos.

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

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 subdiretório certs em seu diretório home executando os seguintes comandos.

    cd ~ mkdir certs
  2. No diretório ~/certs, copie a chave privada, certificado do dispositivo e certificado CA raiz criados anteriormente em Crie AWS IoT recursos.

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

    Arquivo

    Caminho do arquivo

    Certificado CA raiz

    ~/certs/Amazon-root-CA-1.pem

    Certificado de dispositivo

    ~/certs/device.pem.crt

    Chave privada

    ~/certs/private.pem.key

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, selecione Todos os dispositivos e, depois, selecione Objetos.

Na página Configurações no AWS IoT menu. Seu endpoint é exibido na seção Endpoint de dados do dispositivo.

O your-iot-endpointvalor 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
  2. Na janela da linha de comando, substitua your-iot-endpointconforme 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
  3. Observe que o aplicativo de exemplo:

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

    2. Assina o tópico de mensagens topic_1 e exibe as mensagens recebidas sobre esse tópico.

    3. Publica 10 mensagens no tópico topic_1.

    4. 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 o aplicativo de exemplo.

    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
  2. Na janela da linha de comando, substitua your-iot-endpointconforme 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
  3. Observe que o aplicativo de exemplo:

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

    2. Assina o tópico de mensagens topic_1 e exibe as mensagens recebidas sobre esse tópico.

    3. Publica 10 mensagens no tópico topic_1.

    4. 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 o aplicativo de exemplo.

    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

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

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

  3. Assine o tópico topic_1.

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