Compartir a través de


Tutorial: Generación de datos de dispositivo simulados

Se aplica a:yes icon IoT Edge 1.1

Importante

IoT Edge 1.1 fecha de finalización del soporte técnico fue el 13 de diciembre de 2022. Consulte la página del ciclo de vida de productos de Microsoft para obtener información sobre cómo se admite este producto, servicio, tecnología o API. Para obtener más información sobre cómo actualizar a la versión más reciente de IoT Edge, consulte Update IoT Edge.

En este artículo, se usan datos de aprendizaje automático para simular un dispositivo que envía telemetría a Azure IoT Hub. Como se indicó en la introducción, en este tutorial se usa el conjunto de datos de simulación de degradación del motor Turbofan para simular datos de un conjunto de motores de avión para entrenamiento y pruebas.

En nuestro escenario experimental, sabemos que:

  • Los datos constan de varias series temporales multivariante.
  • Cada conjunto de datos se divide en subconjuntos de entrenamiento y prueba.
  • Cada serie temporal es de un motor diferente.
  • Cada motor comienza con diferentes grados de desgaste inicial y variación de fabricación.

En este tutorial, se usa el subconjunto de datos de entrenamiento de un único conjunto de datos (FD003).

En realidad, cada motor sería un dispositivo IoT independiente. Suponiendo que no dispone de una colección de motores turbofan conectados a Internet, crearemos un soporte de software para estos dispositivos.

El simulador es un programa de C# que usa las API de IoT Hub para registrar mediante programación dispositivos virtuales con IoT Hub. A continuación, se leen los datos de cada dispositivo del subconjunto de datos proporcionados por la NASA y se envían al centro de IoT mediante un dispositivo IoT simulado. Todo el código de esta parte del tutorial se puede encontrar en el directorio DeviceHarness del repositorio.

El proyecto DeviceHarness es un proyecto de .NET Core escrito en C# que consta de cuatro clases:

  • Programa: Punto de entrada para la ejecución responsable de controlar la entrada del usuario y la coordinación general.
  • TrainingFileManager: Responsable de leer y analizar el archivo de datos seleccionado.
  • CycleData: Representa una sola fila de datos en un archivo convertido al formato de mensaje.
  • TurbofanDevice: Responsable de crear un dispositivo IoT que corresponde a una única serie temporal de datos y de transmitir dicha serie al IoT Hub.

Las tareas descritas en este artículo deben tardar unos 20 minutos en completarse.

Es probable que los desarrolladores de dispositivos y los desarrolladores en la nube realicen el trabajo equivalente de este paso.

En esta sección del tutorial, aprenderá a:

  • Incorpore un proyecto externo en el entorno de desarrollo.
  • Use el proyecto DeviceHarness de ejemplo para generar datos de dispositivo IoT simulados.
  • Vea los datos generados en ioT Hub.

Prerrequisitos

Este artículo forma parte de una serie de un tutorial acerca del uso de Azure Machine Learning en IoT Edge. Cada artículo de la serie se basa en el trabajo del artículo anterior. Si ha llegado directamente a este artículo, visite el primer artículo de la serie.

Configuración de Visual Studio Code y compilación del proyecto DeviceHarness

  1. Abra una sesión de escritorio remoto en la máquina virtual de desarrollo.

  2. En Visual Studio Code, abra la C:\source\IoTEdgeAndMlSample\DeviceHarness carpeta .

  3. Dado que está usando extensiones en esta máquina por primera vez, algunas extensiones se actualizarán e instalarán sus dependencias. Es posible que se le pida que actualice la extensión. Si es así, seleccione Volver a cargar ventana.

    Si los errores de OmniSharp aparecen en la ventana de salida, deberá desinstalar la extensión de C#.

  4. Se le pedirá que agregue los recursos necesarios para DeviceHarness. Seleccione para agregarlos.

    • La notificación puede tardar unos segundos en aparecer.
    • Si perdió esta notificación, compruebe el icono de campana en la esquina inferior derecha.

    Ventana emergente de la extensión de VS Code

  5. Seleccione Restaurar para restaurar las dependencias del paquete.

    Indicador de restauración de VS Code

    Si no recibe estas notificaciones, cierre Visual Studio Code, elimine los directorios bin y obj en C:\source\IoTEdgeAndMlSample\DeviceHarness, abra Visual Studio Code y vuelva a abrir la carpeta DeviceHarness.

  6. Valida que el entorno esté configurado correctamente desencadenando una compilación, Ctrl + Mayús + B o Terminal>Ejecutar tarea de compilación.

  7. Se le pedirá que seleccione la tarea de compilación que se va a ejecutar. Seleccione Compilar.

  8. La compilación se ejecuta y genera un mensaje de éxito.

    Mensaje de salida de compilación exitosa

  9. Para establecer esta compilación como la tarea de compilación predeterminada, seleccione Terminal>Configure Default Build Task... y elija Construir en el cuadro de diálogo.

Conexión a IoT Hub y ejecución de DeviceHarness

Ahora que tenemos la construcción del proyecto, conéctate al centro de IoT para acceder a la cadena de conexión y monitorizar el progreso de la generación de datos.

Inicia sesión en Azure desde Visual Studio Code

  1. Inicie sesión en la suscripción de Azure en Visual Studio Code abriendo la paleta Ctrl + Shift + P de comandos o Ver>paleta de comandos.

  2. Busque el comando Azure: Iniciar sesión .

    Se abre una ventana del explorador y se le pide sus credenciales. Cuando se te redirige a una página de éxito, puedes cerrar el explorador.

Conéctate a tu IoT Hub y recupera la cadena de conexión del IoT Hub

  1. En la sección inferior del explorador de Visual Studio Code, seleccione el marco de Azure IoT Hub para expandirlo.

  2. En el marco expandido, haga clic en Seleccionar IoT Hub.

  3. Cuando se le solicite, seleccione la suscripción de Azure y, a continuación, su centro de IoT.

  4. Haga clic en ... a la derecha de Azure IoT Hub para obtener más acciones. Seleccione Copiar cadena de conexión de IoT Hub.

    Copia de la cadena de conexión de IoT Hub

Ejecución del proyecto DeviceHarness

  1. Seleccione Ver>terminal para abrir el terminal de Visual Studio Code.

    Si no ve un mensaje, pulse Entrar.

  2. Escriba dotnet run en el terminal.

  3. Cuando se le solicite la cadena de conexión de IoT Hub, pegue la cadena de conexión copiada en la sección anterior.

  4. En el marco de dispositivos de Azure IoT Hub , haga clic en el botón Actualizar.

    Actualizar la lista de dispositivos de IoT Hub

  5. Tenga en cuenta que los dispositivos se agregan a IoT Hub y que los dispositivos aparecen en verde para indicar que los datos se envían a través de ese dispositivo. Después de que los dispositivos envíen mensajes al centro de IoT, desconectan y aparecen en azul.

  6. Para ver los mensajes enviados al centro, haga clic con el botón derecho en cualquier dispositivo y seleccione Iniciar supervisión del punto de conexión de eventos integrado. Los mensajes se mostrarán en el panel de salida de Visual Studio Code.

  7. Para detener la supervisión, haga clic en el panel de salida de Azure IoT Hub y elija Detener supervisión del punto de conexión de eventos integrado.

  8. Deje que la aplicación se ejecute hasta completarse, lo que tarda unos minutos.

Comprobación de la actividad de IoT Hub

Los datos enviados por DeviceHarness fueron al centro de IoT, donde puede comprobarlos en Azure Portal.

  1. Abra Azure Portal y vaya al centro de IoT creado para este tutorial.

  2. En el menú del panel izquierdo, en Supervisión, seleccione Métricas.

  3. En la página de definición del gráfico, haga clic en la lista desplegable Métrica , desplácese hacia abajo en la lista y seleccione Enrutamiento: datos entregados al almacenamiento. El gráfico debe mostrar el pico del momento en que los datos fueron dirigidos al almacenamiento.

    El gráfico muestra un pico cuando los datos son entregados al almacenamiento

Validación de datos en Azure Storage

Los datos que acabamos de enviar al centro de IoT se enrutaron al contenedor de almacenamiento que creamos en el artículo anterior. Echemos un vistazo a los datos de nuestra cuenta de almacenamiento.

  1. En Azure Portal, vaya a la cuenta de almacenamiento.

  2. En el navegador de la cuenta de almacenamiento, seleccione Explorador de Storage (versión preliminar) .

  3. En el explorador de almacenamiento, seleccione Contenedores de BLOB y, a continuación devicedata.

  4. En el panel de contenido, haga clic en la carpeta para el nombre del centro de IoT, seguido de año, mes, día y hora. Verá varias carpetas que representan los minutos en los que se escribieron los datos.

    Visualización de carpetas en Blob Storage

  5. Haga clic en una de esas carpetas para buscar archivos de datos etiquetados como 00 y 01 correspondientes a la partición.

  6. Los archivos se escriben en formato Avro . Haga doble clic en uno de estos archivos para abrir otra pestaña del explorador y representar parcialmente los datos. Si se le pide que abra el archivo en un programa, puede elegir VS Code y se representará correctamente.

  7. No es necesario intentar leer o interpretar los datos en este momento; lo haremos en el siguiente artículo.

Limpieza de recursos

Este tutorial forma parte de un conjunto en el que cada artículo se basa en el trabajo realizado en los anteriores. Espere para limpiar cualquier recurso hasta completar el tutorial final.

Pasos siguientes

En este artículo, hemos usado un proyecto de .NET Core para crear un conjunto de dispositivos IoT virtuales y enviar datos a través de nuestro centro de IoT y a un contenedor de Azure Storage. Este proyecto simula un escenario real en el que los dispositivos IoT físicos envían datos a ioT Hub y en adelante a un almacenamiento mantenido. Estos datos incluyen lecturas de sensores, configuración operativa, señales de error y modos, etc. Una vez recopilados suficientes datos, los usamos para entrenar modelos que predicen la vida útil restante (RUL) para el dispositivo. Demostraremos este aprendizaje automático en el siguiente artículo.

Continúe con el siguiente artículo para entrenar un modelo de Machine Learning con los datos.