Conexión de Raspberry Pi 3 a la solución de supervisión remota y envío de telemetría simulada mediante C

Este tutorial muestra cómo utilizar Raspberry Pi 3 para simular los datos de temperatura y humedad para enviar a la nube. En el tutorial se usa:

  • El SO Raspbian, el lenguaje de programación C y el SDK de IoT de Microsoft Azure para C para implementar un dispositivo de ejemplo.
  • La solución preconfigurada de supervisión remota del Conjunto de aplicaciones de IoT como el back-end basado en la nube.

Información general

En este tutorial, va a completar los siguientes pasos:

  • Implemente una instancia de la solución preconfigurada de supervisión remota en su suscripción de Azure. Este paso implementa y configura varios servicios de Azure automáticamente.
  • Configure el dispositivo para que se comunique con el equipo y la solución de supervisión remota.
  • Actualice el código del dispositivo de ejemplo para que se conecte a la solución de supervisión remota y envíe telemetría simulada que aparezca en el panel de soluciones.

Requisitos previos

Para completar este tutorial, deberá tener una suscripción activa de Azure.

Nota

En caso de no tener ninguna, puede crear una cuenta de evaluación gratuita en tan solo unos minutos. Para obtener más información, consulte Evaluación gratuita de Azure.

Requisitos de software

Necesita el cliente SSH en su máquina de escritorio para poder acceder de forma remota a la línea de comandos en su Raspberry Pi.

  • Windows no incluye ningún cliente SSH. Se recomienda usar PuTTY.
  • La mayoría de las distribuciones de Linux y Mac OS incluyen la utilidad de línea de comandos de SSH. Para más información, consulte SSH Using Linux or Mac OS (SSH cuando se usa Linux o Mac OS).

Requisitos de hardware

Un equipo de escritorio que permita conectarse remotamente a la línea de comandos en Raspberry Pi.

Kit de inicio de Microsoft IoT para Raspberry Pi 3 o componentes equivalentes. En este tutorial se usan los siguientes elementos del kit:

  • Raspberry Pi 3
  • Tarjeta MicroSD (con NOOBS)
  • Un cable USB mini
  • Un cable Ethernet

Aprovisionamiento de la solución

Si no ha aprovisionado aún la solución preconfigurada de supervisión remota en su cuenta:

  1. Inicie sesión en azureiotsuite.com con las credenciales de su cuenta de Azure y haga clic en + para crear una solución.
  2. Haga clic en Seleccionar en el icono Supervisión remota.
  3. Escriba un valor en Nombre de la solución para la solución preconfigurada de supervisión remota.
  4. Seleccione la región y la suscripción que desea usar para aprovisionar la solución.
  5. Haga clic en Crear solución para comenzar el proceso de aprovisionamiento. Este proceso normalmente tarda varios minutos en ejecutarse.

Espere a que se complete el proceso de aprovisionamiento

  1. Haga clic en el icono de la solución con el estado Aprovisionando.
  2. Observe los estados de aprovisionamiento , ya que los servicios de Azure se implementan en su suscripción de Azure.
  3. Una vez que se complete el aprovisionamiento, el estado cambia a Listo.
  4. Haga clic en el icono y verá los detalles de la solución en el panel derecho.

Nota

Si surgen problemas al implementar la solución preconfigurada, consulte Permisos en el sitio azureiotsuite.com y Preguntas más frecuentes. Si los problemas persisten, cree un vale de servicio en el portal.

¿Hay detalles que esperaría ver que no aparezcan para su solución? Puede sugerirnos nuevas características en User Voice(La voz del usuario).

Advertencia

La solución de supervisión remota proporciona un conjunto de servicios de Azure de la suscripción de Azure. La implementación refleja una arquitectura empresarial real. Para evitar cobros de consumo innecesarios de Azure, elimine la instancia de la solución preconfigurada en azureiotsuite.com cuando haya terminado con ella. Si necesita la solución preconfigurada de nuevo, puede crearla fácilmente. Para más información sobre cómo reducir el consumo mientras se ejecuta la solución de supervisión remota, consulte Configuring Azure IoT Suite preconfigured solutions for demo purposes (Configuración de soluciones preconfiguradas del Conjunto de aplicaciones de IoT de Azure para fines de demostración).

Visualización del panel de soluciones

El panel de la solución permite administrar la solución implementada. Por ejemplo, puede ver la telemetría, agregar dispositivos e invocar métodos.

  1. Cuando se haya completado el aprovisionamiento y el icono de la solución preconfigurada indique Listo, seleccione Iniciar para abrir el portal de la solución de supervisión remota en una nueva pestaña.

    Iniciar la solución preconfigurada

  2. De forma predeterminada, el portal de la solución muestra el panel. Puede navegar a otras áreas del portal de solución mediante el menú en el lado izquierdo de la página.

    Panel de la solución preconfigurada de supervisión remota

Agregar un dispositivo

Para que un dispositivo se conecte a la solución preconfigurada, debe identificarse en Azure IoT Hub con credenciales válidas. Puede recuperar las credenciales del dispositivo desde el panel de la solución. Incluirá las credenciales del dispositivo en la aplicación de cliente más adelante en este tutorial.

Si aún no lo ha hecho, agregue un dispositivo personalizado a la solución de supervisión remota. Complete los pasos siguientes en el panel de soluciones:

  1. En la esquina inferior izquierda del panel, haga clic en Agregar un dispositivo.

    Agregar un dispositivo

  2. En el panel Dispositivo personalizado, haga clic en Agregar nuevo.

    Agregar un dispositivo personalizado

  3. Elija Permitirme definir mi propio id. de dispositivo. Escriba un id. de dispositivo como rasppi, haga clic en Comprobar id. para comprobar que no haya usado ya el nombre en la solución y haga clic en Crear para aprovisionar el dispositivo.

    Agregar id. de dispositivo

  4. Anote las credenciales del dispositivo (id. de dispositivo, IoT Hub nombre de host y clave de dispositivo). La aplicación cliente en su Raspberry Pi necesita estos valores para conectarse con la solución de supervisión remota. A continuación, haga clic en Hecho.

    Ver las credenciales del dispositivo

  5. Seleccione el dispositivo en la lista de dispositivos del panel de la solución. Luego, en el panel Detalles del dispositivo, haga clic en Habilitar dispositivo. El estado del dispositivo ahora es En ejecución. La solución de supervisión remota ahora puede recibir telemetría desde el dispositivo e invocar métodos en el dispositivo.

Preparación de su Raspberry Pi

Instalación de Raspbian

Si es la primera vez que usa su Raspberry Pi, debe instalar el sistema operativo Raspbian con NOOBS, que se encuentra en la tarjeta SD incluida en el kit. En la guía de software de Raspberry Pi, se describe cómo instalar un sistema operativo en Raspberry Pi. En este tutorial se da por supuesto que ha instalado el sistema operativo Raspbian en su Raspberry Pi.

Nota

La tarjeta SD incluida en el kit de inicio de Microsoft Azure IoT para Raspberry Pi 3 ya tiene NOOBS instalado. Puede iniciar Raspberry Pi desde esta tarjeta y elegir instalar el sistema operativo Raspbian.

Para completar la configuración de hardware, debe:

  • Conectar su Raspberry Pi a la fuente de alimentación que se incluye en el kit.
  • Conectar su Raspberry Pi a la red mediante el cable Ethernet incluido en el kit. Como alternativa, puede configurar Conectividad inalámbrica para su Raspberry Pi.

Ahora ha completado la configuración de hardware de su Raspberry Pi.

Inicio de sesión y acceso al terminal

Dispone de dos opciones para acceder a un entorno de terminal en su Raspberry Pi:

  • Si tiene un teclado y un monitor conectados a su Raspberry Pi, puede usar la GUI de Raspbian para acceder a una ventana de terminal.

  • Acceda a la línea de comandos en su Raspberry Pi mediante SSH desde la máquina de escritorio.

Uso de una ventana de terminal en la GUI

Las credenciales predeterminadas para Raspbian son el nombre de usuario pi y la contraseña raspberry. En la barra de tareas en la GUI, puede iniciar la utilidad Terminal mediante el icono que parece un monitor.

Inicio de sesión con SSH

Puede usar SSH para el acceso de línea de comandos a su Raspberry Pi. En el artículo SSH (Secure Shell), se describe cómo configurar SSH en Raspberry Pi y cómo conectarse desde Windows o Linux y Mac OS.

Inicie sesión con el nombre de usuario pi y la contraseña raspberry.

Opcional: Compartir una carpeta en su Raspberry Pi

Si lo desea, puede compartir una carpeta en su Raspberry Pi con el entorno de escritorio. Compartir una carpeta le permite usar el editor de texto de escritorio preferido (como Visual Studio Code o Sublime Text) para editar archivos en su Raspberry Pi en lugar de usar nano o vi.

Para compartir una carpeta con Windows, configure un servidor Samba en Raspberry Pi. Como alternativa, use el servidor SFTP integrado con un cliente SFTP en el escritorio.

Descarga y configuración del ejemplo

Ahora puede descargar y configurar la aplicación de cliente de supervisión remota en su Raspberry Pi.

Clonación de repositorios

Si aún no lo ha hecho, clone los repositorios necesarios mediante la ejecución de los siguientes comandos en un terminal en su Pi:

cd ~
git clone --recursive https://github.com/Azure-Samples/iot-remote-monitoring-c-raspberrypi-getstartedkit.git

Actualización de la cadena de conexión de dispositivo

Abra el archivo de código fuente de ejemplo en el editor nano con el comando siguiente:

nano ~/iot-remote-monitoring-c-raspberrypi-getstartedkit/simulator/remote_monitoring/remote_monitoring.c

Busque las líneas siguientes:

static const char* deviceId = "[Device Id]";
static const char* connectionString = "HostName=[IoTHub Name].azure-devices.net;DeviceId=[Device Id];SharedAccessKey=[Device Key]";

Reemplace los valores de marcador de posición por el dispositivo y la información de IoT Hub que creó y guardó al principio de este tutorial. Guarde los cambios (Ctrl-O, ENTRAR) y salga del editor (Ctrl-X).

Compilación del ejemplo

Instale los paquetes de requisitos previos para el SDK de dispositivo IoT de Microsoft Azure para C ejecutando los comandos siguientes en un terminal en Raspberry Pi:

sudo apt-get update
sudo apt-get install g++ make cmake git libcurl4-openssl-dev libssl-dev uuid-dev

Ahora puede compilar la solución de ejemplo actualizada en Raspberry Pi:

chmod +x ~/iot-remote-monitoring-c-raspberrypi-getstartedkit/simulator/build.sh
~/iot-remote-monitoring-c-raspberrypi-getstartedkit/simulator/build.sh

Ahora puede ejecutar el programa de ejemplo en Raspberry Pi. Escriba el comando:

sudo ~/cmake/remote_monitoring/remote_monitoring

La salida de ejemplo siguiente es un ejemplo de la salida que se ve en el símbolo del sistema en Raspberry Pi:

Salida de la aplicación Raspberry Pi

Presione Ctrl-C para salir del programa en cualquier momento.

Visualización de la telemetría

Raspberry Pi ahora está enviando telemetría a la solución de supervisión remota. Puede verla en el panel de soluciones. También puede enviar mensajes a su Raspberry Pi desde el panel de soluciones.

  • Vaya al panel de soluciones.
  • Seleccione el dispositivo en la lista desplegable Dispositivo que se visualizará.
  • La telemetría de Raspberry Pi se muestra en el panel.

Mostrar telemetría desde Raspberry Pi

Actuación en el dispositivo

En el panel de soluciones, puede invocar métodos en su Raspberry Pi. Cuando Raspberry Pi se conecta a la solución de supervisión remota, envía información acerca de los métodos que admite.

  • En el panel de soluciones, haga clic en Dispositivos para visitar la página Dispositivos. Seleccione su Raspberry Pi en la lista de dispositivos. A continuación, elija Métodos:

    Lista de dispositivos en el panel

  • En la página Invocar método, elija LightBlink en la lista desplegable Método.

  • Elija Invocar método. El simulador imprime un mensaje en la consola de Raspberry Pi. La aplicación en Raspberry Pi envía una confirmación de vuelta al panel de soluciones:

    Mostrar el historial de métodos

  • Puede activar el LED y desactivarlo mediante el método ChangeLightStatus con un valor de LightStatusValue establecido en 1 para activado o 0 para desactivado.

Advertencia

Si deja la solución de supervisión remota ejecutándose en su cuenta de Azure, se le cobra por el tiempo que se ejecute. Para más información sobre cómo reducir el consumo mientras se ejecuta la solución de supervisión remota, consulte Configuring Azure IoT Suite preconfigured solutions for demo purposes (Configuración de soluciones preconfiguradas del Conjunto de aplicaciones de IoT de Azure para fines de demostración). Elimine la solución preconfigurada de su cuenta de Azure cuando haya terminado de usarla.

Pasos siguientes

Visite el Centro para desarrolladores de IoT de Azure para obtener más ejemplos y la documentación de IoT de Azure.