Utilice su PC o Mac con Windows o Linux como AWS IoT dispositivo - AWS IoT Core

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Utilice su PC o Mac con Windows o Linux como AWS IoT dispositivo

En este tutorial, configurará un ordenador personal para usarlo con AWS IoT. Estas instrucciones son compatibles con Windows, Linux PCs y Mac. Para lograr esto, necesita instalar cierto software en el ordenador. Si no quiere instalar software en su ordenador, puede consultar la sección Crea un dispositivo virtual con Amazon EC2 para saber cómo instalar todo el software en una máquina virtual.

Configurar su ordenador personal

Para completar este tutorial, necesita un PC con Windows o Linux o un Mac con conexión a internet.

Antes de continuar con el siguiente paso, confirme que puede abrir una ventana de la línea de comandos en el ordenador. Utilice cmd.exe en un PC con Windows. En un PC con Linux o un Mac, utilice Terminal.

Instalar Git, Python y el AWS IoT dispositivo SDK para Python

En esta sección, instalará Python y el AWS IoT dispositivo SDK para Python en su ordenador.

Instalar la versión más reciente de Git y Python

Este procedimiento explica cómo instalar la última versión de Git y Python en su ordenador personal.

Para descargar e instalar Git y Python en su ordenador
  1. Compruebe si tiene Git instalado en el equipo. Introduzca este comando en la línea de comandos.

    git --version

    Si el comando muestra la versión de Git, significa que Git está instalado y puede continuar con el paso siguiente.

    Si el comando muestra un error, abra https://git-scm.com/download e instale Git en el ordenador.

  2. Compruebe si Python ya está instalado. Introduzca el comando en la línea de comandos.

    python -V
    nota

    Si este comando produce un error, Python was not found, puede deberse a que el sistema operativo llama al ejecutable de Python v3.x como Python3. En ese caso, sustituya todas las instancias de python por python3 y continúe con el resto de este tutorial.

    Si el comando muestra la versión de Python, significa que Python ya está instalado. Este tutorial requiere Python v3.7 o versiones posteriores.

  3. Si Python está instalado, puede omitir el resto de los pasos de esta sección. Si no es así, continúe.

  4. Abre https://www.python.org/downloads/ y descarga el instalador para tu ordenador.

  5. Si la descarga no se inició automáticamente, ejecute el programa descargado para instalar Python.

  6. Compruebe la instalación de Python.

    python -V

    Confirme que el comando muestra la versión de Python. Si no se muestra la versión de Python, pruebe a descargar e instalar Python de nuevo.

Instalar el AWS IoT dispositivo SDK para Python

Para instalar el AWS IoT Dispositivo SDK para Python en su ordenador
  1. Instale la versión 2 del AWS IoT dispositivo SDK para Python.

    python3 -m pip install awsiotsdk
  2. Clona el repositorio de AWS IoT Device SDK for Python en el directorio aws-iot-device-sdk -python-v2 de tu directorio principal. Este procedimiento hace referencia al directorio base de los archivos que está instalando como home.

    La ubicación real del home el directorio depende del sistema operativo.

    Linux/macOS

    En macOS y Linux, el home el directorio es~.

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

    En Windows, puede encontrar el home ruta del directorio ejecutando este comando en la cmd ventana.

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

    Si está utilizando Windows PowerShell en lugar decmd.exe, utilice el siguiente comando.

    echo $home

Para obtener más información, consulte el GitHub repositorio AWS IoT Device SDK for Python.

Preparación antes de ejecutar las aplicaciones de ejemplo

Para prepararse antes de ejecutar las aplicaciones de ejemplo
  • Cree el directorio certs. En el directorio certs, copie los archivos de clave privada, certificado de dispositivo y certificado de entidad de certificación raíz que guardó al crear y registrar el objeto en Crea AWS IoT recursos. Los nombres de cada archivo del directorio de destino deben coincidir con los de la tabla.

    Los comandos de la siguiente sección suponen que los archivos de clave y certificado se almacenan en el dispositivo como se muestra en esta tabla.

    Linux/macOS

    Ejecute este comando para crear el subdirectorio certs que utilizará al ejecutar las aplicaciones de ejemplo.

    mkdir ~/certs

    En el nuevo subdirectorio, copie los archivos a las rutas de archivo de destino que se muestran en la siguiente tabla.

    Nombres de archivo de certificado

    Archivos

    Ruta de archivo

    Clave privada

    ~/certs/private.pem.key

    Certificado de dispositivo

    ~/certs/device.pem.crt

    Certificado de entidad de certificación raíz

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

    Ejecute este comando para enumerar los archivos del directorio certs y compararlos con los que aparecen en la tabla.

    ls -l ~/certs
    Windows

    Ejecute este comando para crear el subdirectorio certs que utilizará al ejecutar las aplicaciones de ejemplo.

    mkdir %USERPROFILE%\certs

    En el nuevo subdirectorio, copie los archivos a las rutas de archivo de destino que se muestran en la siguiente tabla.

    Nombres de archivo de certificado

    Archivos

    Ruta de archivo

    Clave privada

    %USERPROFILE%\certs\private.pem.key

    Certificado de dispositivo

    %USERPROFILE%\certs\device.pem.crt

    Certificado de entidad de certificación raíz

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

    Ejecute este comando para enumerar los archivos del directorio certs y compararlos con los que aparecen en la tabla.

    dir %USERPROFILE%\certs

Configurar la política y ejecutar la aplicación de ejemplo

En esta sección, configurará su política y ejecutará el script de ejemplo de pubsub.py que se encuentra en el directorio aws-iot-device-sdk-python-v2/samples del AWS IoT Device SDK para Python. Este script muestra cómo su dispositivo utiliza la MQTT biblioteca para publicar MQTT mensajes y suscribirse a ellos.

La aplicación de pubsub.py de ejemplo se suscribe a un tema,test/topic, publica 10 mensajes sobre ese tema y muestra los mensajes tal como los recibe del agente de mensajes.

Para ejecutar el script de ejemplo de pubsub.py, necesita la siguiente información:

Valores de los parámetros de la aplicación

Parámetro

Dónde encontrar el valor

your-iot-endpoint
  1. En la consola de AWS IoT, en el menú de la izquierda, seleccione Configuración.

  2. En la página Configuración, su punto de conexión aparece en la sección Punto de enlace de datos de dispositivo.

La your-iot-endpoint el valor tiene el formato:endpoint_id-ats.iot.region.amazonaws.com, por ejemplo,a3qj468EXAMPLE-ats.iot.us-west-2.amazonaws.com.

Antes de ejecutar el script, asegúrese de que la política del objeto proporciona permisos para que el script de ejemplo pueda conectarse, suscribirse, publicar y recibir.

Para buscar y revisar el documento de política de un recurso de objeto
  1. En la consola de AWS IoT, en la lista Objetos, busque el recurso de objeto que represente a su dispositivo.

  2. Seleccione el enlace Nombre del recurso de objeto que representa a su dispositivo para abrir la página Detalles del objeto.

  3. En la página Detalles del objeto, en la pestaña Certificados, elija el certificado asociado al recurso de objeto. Solo debe haber un certificado en la lista. Si hay más de uno, elija el certificado cuyos archivos estén instalados en el dispositivo y con el que se vaya a conectar a AWS IoT Core.

    En la página Detalles del certificado, en la pestaña Políticas, elija la política asociada al certificado. Solo debe haber una. Si hay más de una, repita el paso siguiente para cada una de ellas con el fin de garantizar que al menos una política conceda el acceso requerido.

  4. En la página de descripción general de la política, busque al JSON editor y elija Editar documento de política para revisar y editar el documento de política según sea necesario.

  5. La política JSON se muestra en el siguiente ejemplo. En el "Resource" elemento, region:account sustitúyalo por Cuenta de AWS el suyo Región de AWS y por cada uno de los 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 ejecutar el script de ejemplo en Linux/macOS
  1. En la ventana de la línea de comandos, navegue hasta el ~/aws-iot-device-sdk-python-v2/samples/node/pub_sub directorio que SDK creó con estos comandos.

    cd ~/aws-iot-device-sdk-python-v2/samples
  2. En la ventana de la línea de comandos, sustituya your-iot-endpoint como se indica y ejecute 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 ejecutar la aplicación de ejemplo en un PC con Windows
  1. En la ventana de la línea de comandos, navegue hasta el %USERPROFILE%\aws-iot-device-sdk-python-v2\samples directorio que SDK creó e instale la aplicación de muestra mediante estos comandos.

    cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples
  2. En la ventana de la línea de comandos, sustituya your-iot-endpoint como se indica y ejecute 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

El script de ejemplo:

  1. Se conecta a la AWS IoT Core de su cuenta.

  2. Se suscribe al tema de mensaje, test/topic, y muestra los mensajes que recibe sobre ese tema.

  3. Publica 10 mensajes sobre el tema test/topic.

  4. Muestra una salida similar a la siguiente:

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!

Si tiene problemas para ejecutar la aplicación de ejemplo, revise Solucione problemas con la aplicación de ejemplo.

También puede agregar el parámetro --verbosity Debug a la línea de comandos para que la aplicación de ejemplo muestre mensajes detallados sobre lo que está haciendo. Esa información puede ayudarle a corregir el problema.

Consultar los mensajes de la aplicación de ejemplo en la consola de AWS IoT

Puedes ver los mensajes de la aplicación de muestra a medida que pasan por el intermediario de mensajes mediante el cliente de MQTT prueba de la AWS IoT consola.

Para ver los MQTT mensajes publicados por la aplicación de muestra
  1. Consulte Vea MQTT los mensajes con el AWS IoT MQTT cliente. Esto le ayudará a aprender a usar el cliente de MQTT prueba de la AWS IoT consola para ver MQTT los mensajes a medida que pasan por el intermediario de mensajes.

  2. Abre el cliente MQTT de prueba en la AWS IoT consola.

  3. En Suscribirse a un tema, suscríbase al tema test/topic.

  4. En la ventana de la línea de comandos, vuelve a ejecutar la aplicación de muestra y mira los mensajes del MQTTcliente en la AWS IoT consola.

    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 obtener más información sobre el protocolo MQTT y cómo lo AWS IoT Core admite, consulte MQTT.

Ejecutar el ejemplo de suscripción compartida en Python

AWS IoT Core admite suscripciones compartidas tanto para MQTT 3 como para MQTT 5. Las suscripciones compartidas permiten que varios clientes compartan una suscripción a un tema y solo un cliente recibirá los mensajes publicados sobre ese tema mediante una distribución aleatoria. Para usar las suscripciones compartidas, los clientes se suscriben al filtro de temas de una suscripción compartida: $share/{ShareName}/{TopicFilter}.

Para configurar la política y ejecutar el ejemplo de suscripción compartida
  1. Para ejecutar el ejemplo de la suscripción compartida, debes configurar la política de tu empresa tal y como se describe en MQTT5 Shared Subscription.

  2. Para ejecutar el ejemplo de suscripción compartida, ejecute los siguientes comandos.

    Linux/macOS
    Para ejecutar el script de ejemplo en Linux/macOS
    1. En la ventana de la línea de comandos, navegue hasta el ~/aws-iot-device-sdk-python-v2/samples directorio que SDK creó con estos comandos.

      cd ~/aws-iot-device-sdk-python-v2/samples
    2. En la ventana de la línea de comandos, sustituya your-iot-endpoint como se indica y ejecute 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 ejecutar la aplicación de ejemplo en un PC con Windows
    1. En la ventana de la línea de comandos, navegue hasta el %USERPROFILE%\aws-iot-device-sdk-python-v2\samples directorio que SDK creó e instale la aplicación de muestra mediante estos comandos.

      cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples
    2. En la ventana de la línea de comandos, sustituya your-iot-endpoint como se indica y ejecute 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

    Si lo desea, puede especificar un identificador de grupo en función de sus necesidades al ejecutar la muestra (por ejemplo, --group_identifier consumer). Si no especifica uno, python-sample es el identificador de grupo predeterminado.

  3. El resultado de la línea de comandos puede ser similar al siguiente:

    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 el cliente de MQTT prueba en la AWS IoT consola. En Suscribirse a un tema, suscríbase al tema de la suscripción compartida: $share/consumer/test/topic. Puede especificar un identificador de grupo en función de sus necesidades al ejecutar la muestra (por ejemplo, --group_identifier consumer). Si no especifica uno, el valor predeterminado es python-sample. Para obtener más información, consulte el ejemplo de MQTT 5 suscripciones compartidas en Python y la Guía de suscripciones compartidas del AWS IoT Core desarrollador.

    En la ventana de la línea de comandos, vuelve a ejecutar la aplicación de ejemplo y observa la distribución de los mensajes en el cliente de MQTT prueba de la AWS IoT consola y en la línea de comandos.

    La página de salida de las suscripciones compartidas.