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

Use seu PC Windows ou Linux ou Mac como um AWS IoT Dispositivo

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 Crie um dispositivo virtual com a Amazon EC2 e instalar todos os softwares em uma máquina virtual.

Configurar seu computador pessoal

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 AWS IoT Dispositivo SDK para Python

Nesta seção, você instalará o Python e o AWS IoT Dispositivo SDK para Python no seu computador.

Instalar a versão mais recente do Git e do Python

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 e instale o Git em seu computador.

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

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

  4. Abra https://www.python.org/downloads/ e baixe o instalador para o seu computador.

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

  6. 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 Dispositivo SDK para Python

Para instalar o   AWS IoT Dispositivo SDK para Python no seu computador
  1. Instale a v2 do AWS IoT Dispositivo SDK para Python.

    python3 -m pip install awsiotsdk
  2. Clonar o AWS IoT Dispositivo SDK para repositório 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 que você está instalando como home.

    A localização real do home o 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 home caminho do 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 decmd.exe, use o comando a seguir.

    echo $home

Para obter mais informações, consulte o .AWS IoT Dispositivo SDK para repositório Python GitHub .

Preparar-se para executar os aplicativos de exemplo

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 Criar AWS IoT recursos. 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

    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

    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

    Arquivo

    Caminho do arquivo

    Chave privada

    %USERPROFILE%\certs\private.pem.key

    Certificado de dispositivo

    %USERPROFILE%\certs\device.pem.crt

    Certificado CA raiz

    %USERPROFILE%\certs\Amazon-root-CA-1.pem

    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

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

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
  1. No AWS IoT console, no menu à esquerda, escolha Configurações.

  2. Na página Configurações, seu endpoint estará exibido na seção Endpoint de dados do dispositivo.

A ferramenta your-iot-endpoint o 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 AWS IoT console, na lista Coisas, encontre o recurso que representa seu dispositivo.

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

  3. 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, escolha 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.

  4. Na página de visão geral da política, encontre o JSON editor e escolha Editar documento de política para revisar e editar o documento de política conforme necessário.

  5. A política JSON é exibida no exemplo a seguir. No "Resource" elemento, substitua region:account 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:region:account:topic/test/topic" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account:topicfilter/test/topic" ] }, { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:region:account:client/test-*" ] } ] }
Linux/macOS
Para executar o script de exemplo no Linux/macOS
  1. Na janela da linha de comando, navegue até o ~/aws-iot-device-sdk-python-v2/samples/node/pub_sub diretório SDK criado usando esses comandos.

    cd ~/aws-iot-device-sdk-python-v2/samples
  2. Na janela da linha de comando, substitua your-iot-endpoint conforme indicado e execute este 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 da linha de comando, navegue até o %USERPROFILE%\aws-iot-device-sdk-python-v2\samples diretório que SDK criou e instale o aplicativo de amostra usando esses comandos.

    cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples
  2. Na janela da linha de comando, substitua your-iot-endpoint conforme indicado e execute este 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.

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

  3. Publica 10 mensagens no tópico test/topic.

  4. 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 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 ajudar você a corrigir o problema.

Veja as mensagens do aplicativo de amostra no AWS IoT console

Você pode ver as mensagens do aplicativo de amostra à medida que elas passam pelo agente de mensagens usando o cliente de MQTT teste no AWS IoT console.

Para ver as MQTT mensagens publicadas pelo aplicativo de amostra
  1. Consulte Exibir MQTT mensagens com o AWS IoT MQTTcliente. Isso ajuda você a aprender como usar o cliente de MQTT teste no AWS IoT console para visualizar MQTT as mensagens à medida que elas passam pelo agente de mensagens.

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

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

  4. Na janela da linha de comando, execute o aplicativo de amostra novamente e veja as mensagens no MQTTcliente no AWS IoT console.

    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 MQTT e como AWS IoT Core suporta o protocolo, consulte MQTT.

Execute o exemplo de assinatura compartilhada em Python

AWS IoT Core suporta assinaturas compartilhadas 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 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, você deve configurar sua política conforme documentado em MQTT5 Assinatura compartilhada.

  2. 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 da linha de comando, navegue até o ~/aws-iot-device-sdk-python-v2/samples diretório SDK criado usando esses comandos.

      cd ~/aws-iot-device-sdk-python-v2/samples
    2. Na janela da linha de comando, substitua your-iot-endpoint conforme indicado e execute este 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 da linha de comando, navegue até o %USERPROFILE%\aws-iot-device-sdk-python-v2\samples diretório que SDK criou e instale o aplicativo de amostra usando esses comandos.

      cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples
    2. Na janela da linha de comando, substitua your-iot-endpoint conforme indicado e execute este 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.

  3. 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!
  4. Abra o cliente de MQTT teste no AWS IoT console. 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 MQTT5 exemplos de assinatura compartilhada em Python e assinaturas compartilhadas de AWS IoT Core Guia do desenvolvedor.

    Em sua janela de linha de comando, execute o aplicativo de amostra novamente e observe a distribuição de mensagens em seu cliente de MQTT teste do AWS IoT console e linha de comando.

    A página de saída de assinaturas compartilhadas.