Conexión de una Raspberry Pi u otro 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.

Conexión de una Raspberry Pi u otro dispositivo

En esta sección, configuraremos una Raspberry Pi para usarla con AWS IoT. Si tiene otro dispositivo que gustaría conectar, las instrucciones de la Raspberry Pi incluyen referencias que pueden ayudarlo a adaptar estas instrucciones a otros dispositivos.

Normalmente se tarda unos 20 minutos, pero puede tardar más si tiene que instalar muchas actualizaciones del software del sistema.

importante

Adaptar estas instrucciones a otros dispositivos y sistemas operativos puede resultar difícil. Deberás entender el dispositivo lo suficientemente bien como para poder interpretar estas instrucciones y aplicarlas al dispositivo.

Si tienes dificultades al configurar tu dispositivo AWS IoT, puedes probar una de las otras opciones del dispositivo como alternativa, como Crear un dispositivo virtual con Amazon EC2 oUtilice su PC o Mac con Windows o Linux como dispositivo AWS IoT.

Configuración del dispositivo

El objetivo de este paso es recopilar todo lo necesario para configurar su dispositivo de forma que pueda iniciar el sistema operativo (SO), conectarse a internet y permitirle interactuar con ella en una interfaz de línea de comandos.

Necesitará lo siguiente para completar este tutorial:

  • Y Cuenta de AWS. Si no la tiene, complete los pasos que se describen en Configure su Cuenta de AWS antes de continuar.

  • Una Raspberry Pi 3 Modelo B o un modelo más reciente. Esto podría funcionar en versiones anteriores de Raspberry Pi, pero no se han probado.

  • Sistema operativo Raspberry Pi (32 bits) o posterior. Recomendamos utilizar la última versión del sistema operativo Raspberry Pi. Esto podría funcionar en versiones anteriores de Raspberry Pi, pero no se han probado.

    Para ejecutar este ejemplo, no necesita instalar el escritorio con la interfaz gráfica de usuario (GUI); sin embargo, si es la primera vez que utiliza Raspberry Pi y su hardware de Raspberry Pi lo admite, utilizar el escritorio con la GUI puede resultar más fácil.

  • Una WiFi conexión Ethernet o.

  • Teclado, ratón, monitor, cables, fuentes de alimentación y demás hardware que necesite el dispositivo.

importante

Antes de continuar con el siguiente paso, el sistema operativo del dispositivo debe estar instalado, configurado y en funcionamiento. El dispositivo debe estar conectado a internet y deberá poder acceder al dispositivo mediante su interfaz de línea de comandos. El acceso a través de la línea de comandos se puede realizar mediante un teclado, un ratón y un monitor conectados directamente, o mediante una interfaz remota de terminal SSH.

Si utiliza un sistema operativo en la Raspberry Pi que tiene una interfaz gráfica de usuario (GUI), abra una ventana del terminal en el dispositivo y siga estas instrucciones en la ventana. De lo contrario, si se conecta al dispositivo mediante un terminal remoto, como PuTTY, abra un terminal remoto en el dispositivo y úselo.

Instale las herramientas y bibliotecas necesarias para el SDK del AWS IoT dispositivo

Antes de instalar el SDK del AWS IoT dispositivo y el código de muestra, asegúrese de que el sistema esté actualizado y cuente con las herramientas y bibliotecas necesarias para instalar los SDK.

  1. Actualizar el sistema operativo e instalar las bibliotecas necesarias

    Antes de instalar un SDK para AWS IoT dispositivos, ejecuta estos comandos en una ventana de terminal del dispositivo para actualizar el sistema operativo e instalar las bibliotecas necesarias.

    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install cmake
    sudo apt-get install libssl-dev
  2. Instalar Git

    Si el sistema operativo de tu dispositivo no incluye Git instalado, debes instalarlo para instalar el SDK del AWS IoT dispositivo JavaScript.

    1. Ejecute este comando para comprobar si Git ya está instalado.

      git --version
    2. Si el comando anterior devuelve la versión de Git, significa que Git ya está instalado y puede ir directamente al paso 3.

    3. Si aparece un error al ejecutar el comando git, instale Git ejecutando este comando.

      sudo apt-get install git
    4. Ejecute este comando para volver a comprobar si Git está instalado.

      git --version
    5. Si Git está instalado, vaya a la siguiente sección. Si no es así, solucione el problema y corrija el error antes de continuar. Necesitas Git para instalar el SDK del AWS IoT dispositivo JavaScript.

Instala AWS IoT el SDK del dispositivo

Instale el SDK AWS IoT del dispositivo.

Python

En esta sección, instalará Python, sus herramientas de desarrollo y el SDK de AWS IoT dispositivos para Python en su dispositivo. Estas instrucciones son para una Raspberry Pi que ejecute la versión más reciente del sistema operativo Raspberry Pi. Si tiene otro dispositivo o utiliza otro sistema operativo, es posible que tenga que adaptar estas instrucciones a su dispositivo.

  1. Instalar Python y sus herramientas de desarrollo

    El SDK de AWS IoT dispositivo para Python requiere que Python v3.5 o posterior esté instalado en tu Raspberry Pi.

    En una ventana del terminal de su dispositivo, ejecute estos comandos.

    1. Ejecute este comando para determinar la versión de Python instalada en el dispositivo.

      python3 --version

      Si Python está instalado, mostrará su versión.

    2. Si la versión que se muestra es Python 3.5 o superior, puede ir directamente al paso 2.

    3. Si la versión que se muestra es inferior a Python 3.5, puede instalar la versión correcta ejecutando este comando.

      sudo apt install python3
    4. Ejecute este comando para confirmar que ahora está instalada la versión correcta de Python.

      python3 --version
  2. Prueba de pip3

    En una ventana del terminal de su dispositivo, ejecute estos comandos.

    1. Ejecute este comando para comprobar si pip3 está instalado.

      pip3 --version
    2. Si el comando devuelve un número de versión, significa que pip3 está instalado y puede ir al paso 3.

    3. Si el comando anterior devuelve un error, ejecute este comando para instalar pip3.

      sudo apt install python3-pip
    4. Ejecute este comando para comprobar si pip3 está instalado.

      pip3 --version
  3. Instalar el SDK de AWS IoT dispositivo actual para Python

    Instala el SDK de AWS IoT dispositivos para Python y descarga las aplicaciones de muestra en tu dispositivo.

    En el dispositivo, ejecute estos comandos.

    cd ~ python3 -m pip install awsiotsdk
    git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
JavaScript

En esta sección, instalarás Node.js, el administrador de paquetes npm y el SDK para AWS IoT dispositivos JavaScript en tu dispositivo. Estas instrucciones son para una Raspberry Pi que ejecute el sistema operativo Raspberry Pi. Si tiene otro dispositivo o utiliza otro sistema operativo, es posible que tenga que adaptar estas instrucciones a su dispositivo.

  1. Instale la versión más reciente de Node.js.

    El SDK del AWS IoT dispositivo JavaScript requiere que Node.js y el administrador de paquetes npm estén instalados en tu Raspberry Pi.

    1. Descargue la última versión del repositorio de Node mediante el siguiente comando.

      cd ~ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
    2. Instale Node y npm.

      sudo apt-get install -y nodejs
    3. Verifique la instalación de Node.

      node -v

      Confirme que el comando muestra la versión de Node. Este tutorial requiere la versión Node v10.0 o posterior. Si no se muestra la versión de Node, pruebe a descargar de nuevo el repositorio de Node.

    4. Verifique la instalación de npm.

      npm -v

      Confirme que el comando muestra la versión de npm. Si no se muestra la versión de npm, pruebe a instalar Node y npm de nuevo.

    5. Reinicie el dispositivo.

      sudo shutdown -r 0

      Continúe después de que se reinicie el dispositivo.

  2. Instale el SDK del AWS IoT dispositivo para JavaScript

    Instala el SDK del AWS IoT dispositivo JavaScript en tu Raspberry Pi.

    1. Clona el SDK del AWS IoT dispositivo para el JavaScript repositorio en el aws-iot-device-sdk-js-v2 directorio de tu directorio principal. En la Raspberry Pi, el directorio principal es ~/, que se utiliza como directorio principal en los siguientes comandos. Si su dispositivo usa una ruta diferente para el directorio principal, debe reemplazar ~/ por la ruta correcta para su dispositivo en los siguientes comandos.

      Estos comandos crean el directorio ~/aws-iot-device-sdk-js-v2 y copian el código del SDK en él.

      cd ~ git clone https://github.com/aws/aws-iot-device-sdk-js-v2.git
    2. Cambie al directorio aws-iot-device-sdk-js-v2 que creó en el paso anterior y ejecute npm install para instalar el SDK. El comando npm install invocará la creación de la biblioteca aws-crt, que puede tardar algunos minutos en completarse.

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

Instalar y ejecutar la aplicación de ejemplo

En esta sección, instalará y ejecutará la aplicación de pubsub muestra que se encuentra en el SDK del AWS IoT dispositivo. Esta aplicación muestra cómo su dispositivo utiliza la biblioteca de MQTT para publicar y suscribirse a mensajes MQTT. La aplicación de ejemplo se suscribe a un tema, topic_1, publica 10 mensajes sobre ese tema y muestra los mensajes tal como los recibe del agente de mensajes.

Instalar los archivos de certificado

La aplicación de ejemplo requiere que los archivos de certificado que autentican el dispositivo estén instalados en el dispositivo.

Para instalar los archivos de certificado del dispositivo para la aplicación de ejemplo
  1. Cree un subdirectorio certs en su directorio principal ejecutando estos comandos.

    cd ~ mkdir certs
  2. En el directorio ~/certs, copie la clave privada, el certificado de entidad de certificación del dispositivo y el certificado de entidad de certificación raíz que creó anteriormente en Crea AWS IoT recursos.

    La forma de copiar los archivos de certificado en el dispositivo depende del dispositivo y del sistema operativo, y no se describe aquí. Sin embargo, si el dispositivo admite una interfaz gráfica de usuario (GUI) y tiene un navegador web, puede realizar el procedimiento descrito en Crea AWS IoT recursos en el navegador web del dispositivo para descargar los archivos resultantes directamente al dispositivo.

    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.

    Nombres de archivo de certificado

    Archivos

    Ruta de archivo

    Certificado de entidad de certificación raíz

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

    Certificado de dispositivo

    ~/certs/device.pem.crt

    Clave privada

    ~/certs/private.pem.key

Para ejecutar la aplicación de ejemplo, necesita la siguiente información:

Valores de los parámetros de la aplicación

Parámetro

Dónde encontrar el valor

your-iot-endpoint

En la consola de AWS IoT, seleccione Todos los dispositivos y, a continuación, Objetos.

En la página de configuración del AWS IoT menú. Su punto de conexión aparece en la sección Punto de enlace de datos de dispositivo.

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

Python
Para instalar y ejecutar la aplicación de ejemplo
  1. Navegue hasta el directorio de la aplicación de ejemplo.

    cd ~/aws-iot-device-sdk-python-v2/samples
  2. En la ventana de la línea de comandos, your-iot-endpointsustituya como se indica y ejecute este 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 la aplicación de ejemplo:

    1. Se conecta al AWS IoT servicio de su cuenta.

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

    3. Publica 10 mensajes sobre el tema, topic_1.

    4. Muestra una salida similar a la siguiente:

    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!

    Si tiene problemas para ejecutar la aplicación de ejemplo, revise Solucionar 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 podría proporcionarle la ayuda que necesita para corregir el problema.

JavaScript
Para instalar y ejecutar la aplicación de ejemplo
  1. En la ventana de la línea de comandos, navegue hasta el directorio ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub que el SDK creó e instale la aplicación de ejemplo con estos comandos. El comando npm install invocará la creación de la biblioteca aws-crt, que puede tardar algunos minutos en completarse.

    cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub npm install
  2. En la ventana de la línea de comandos, reemplace your-iot-endpointcomo se indica y ejecute este 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 la aplicación de ejemplo:

    1. Se conecta al AWS IoT servicio de su cuenta.

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

    3. Publica 10 mensajes sobre el tema, topic_1.

    4. Muestra una salida similar a la siguiente:

    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}

    Si tiene problemas para ejecutar la aplicación de ejemplo, revise Solucionar 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 podría proporcionarle la ayuda que necesita para corregir el problema.

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

Puede ver los mensajes de la aplicación de ejemplo a medida que pasan por el agente de mensajes mediante el cliente de prueba de MQTT de la consola de AWS IoT .

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

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

  3. Para suscribirse al tema topic_1.

  4. En su ventana de línea de comandos, ejecute de nuevo la aplicación de ejemplo y observe los mensajes del cliente MQTT en la consola de 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