Conexión de Raspberry Pi 3 a la solución de supervisión remota y envío de telemetría desde un sensor real mediante C
Este tutorial muestra cómo usar el Starter Kit de IoT de Microsoft Azure para Raspberry Pi 3 para desarrollar un lector de temperatura y humedad que pueda comunicarse con 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 y los sensores 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 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
- Sensor de BME280
- Placa de pruebas
- Cables de puente
- Resistencias
- LED
Aprovisionamiento de la solución
Si no ha aprovisionado aún la solución preconfigurada de supervisión remota en su cuenta:
- Inicie sesión en azureiotsuite.com con las credenciales de su cuenta de Azure y haga clic en + para crear una solución.
- Haga clic en Seleccionar en el icono Supervisión remota.
- Escriba un valor en Nombre de la solución para la solución preconfigurada de supervisión remota.
- Seleccione la región y la suscripción que desea usar para aprovisionar la solución.
- 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
- Haga clic en el icono de la solución con el estado Aprovisionando.
- Observe los estados de aprovisionamiento , ya que los servicios de Azure se implementan en su suscripción de Azure.
- Una vez que se complete el aprovisionamiento, el estado cambia a Listo.
- 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.
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.
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.
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:
En la esquina inferior izquierda del panel, haga clic en Agregar un dispositivo.
En el panel Dispositivo personalizado, haga clic en Agregar nuevo.
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.
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.
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.
Configuración del hardware
Este tutorial utiliza el sensor de BME280 incluido en el Kit de inicio de Microsoft Azure IoT para Raspberry Pi 3 para generar datos de telemetría. Usa un LED para indicar si Raspberry Pi procesa una invocación de método desde el panel de soluciones.
Los componentes en la placa de pruebas son:
- LED rojo
- Resistencia de 220 ohmios (rojo, rojo, marrón)
- Sensor de BME280
En el diagrama siguiente se muestra cómo conectar el hardware:
En la tabla siguiente se resumen las conexiones entre Raspberry Pi y los componentes en la placa de pruebas:
Raspberry Pi | Placa de pruebas | Color |
---|---|---|
GND (patilla 14) | Patilla -ve de LED (18A) | Púrpura |
GPCLK0 (patilla 7) | Resistencia (25A) | Naranja |
SPI_CE0 (patilla 24) | CS (39A) | Azul |
SPI_SCLK (patilla 23) | SCK (36A) | Amarillo |
SPI_MISO (patilla 21) | SDO (37A) | Blanco |
SPI_MOSI (patilla 19) | SDI (38A) | Verde |
GND (patilla 6) | GND (35A) | Negro |
3.3 V (patilla 1) | 3Vo (34A) | Rojo |
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.
Habilitación de SPI
Para poder ejecutar la aplicación de ejemplo, debe habilitar el bus de interfaz de periféricos en serie (SPI) en Raspberry Pi. Raspberry Pi se comunica con el dispositivo de sensor de BME280 a través del bus SPI. Use el comando siguiente para editar el archivo de configuración:
sudo nano /boot/config.txt
Busque la línea:
#dtparam=spi=on
Para quitar la marca de comentario de la línea, elimine
#
al principio.Guarde los cambios (Ctrl-O, ENTRAR) y salga del editor (Ctrl-X).
Para habilitar SPI, reinicie Raspberry Pi. Al reiniciarlo, se desconecta el terminal. Debe iniciar sesión de nuevo cuando se reinicia Raspberry Pi:
sudo reboot
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
git clone --recursive https://github.com/WiringPi/WiringPi.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/basic/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/basic/build.sh
~/iot-remote-monitoring-c-raspberrypi-getstartedkit/basic/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:
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.
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:
En la página Invocar método, elija LightBlink en la lista desplegable Método.
Elija Invocar método. El LED conectado a Raspberry Pi parpadea varias veces. La aplicación en Raspberry Pi envía una confirmación de vuelta al panel de soluciones:
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.