Tutorial: Exportación de datos desde Azure IoT Central y visualización de información en Power BI

En los dos tutoriales anteriores, ha creado y personalizado una aplicación de IoT Central con la plantilla de aplicación In-store analytics - checkout (Análisis en tienda: finalización de la compra). En este tutorial, configurará la aplicación de IoT Central para que exporte los datos de telemetría recopilados de los dispositivos. A continuación, usará Power BI para crear un panel personalizado para que el administrador de la tienda visualice la información derivada de la telemetría.

En este tutorial, aprenderá a:

  • Configurar una aplicación de IoT Central para exportar los datos de telemetría a un centro de eventos.
  • Usar Logic Apps para enviar datos de un centro de eventos a un conjunto de datos de streaming de Power BI.
  • Crear un panel de Power BI para visualizar los datos del conjunto de datos de streaming.

Prerrequisitos

Para completar este tutorial, necesita:

Crear un grupo de recursos

Antes de crear el centro de eventos y la aplicación lógica, debe crear un grupo de recursos para administrarlos. El grupo de recursos debe estar en la misma ubicación que la aplicación In-store analytics - checkout (Análisis en tienda: finalización de la compra) de IoT Central. Para crear un grupo de recursos:

  1. Inicie sesión en Azure Portal.
  2. En el panel de navegación izquierdo, seleccione Grupos de recursos. A continuación, seleccione Agregar.
  3. En Suscripción, seleccione el nombre de la suscripción de Azure que usó para crear la aplicación de IoT Central.
  4. En el nombre del Grupo de recursos, escriba retail-store-analysis.
  5. En Región, seleccione la misma región que eligió para la aplicación de IoT Central.
  6. Seleccione Revisar + crear.
  7. En la página Revisar + crear, seleccione Crear.

Ahora tiene un grupo de recursos llamado retail-store-analysis en la suscripción.

Creación de un centro de eventos

Antes de poder configurar la aplicación de supervisión de venta al por menor para que exporte los datos de telemetría, debe crear un centro de eventos para recibir los datos exportados. En los pasos siguientes se muestra cómo crear el centro de eventos:

  1. En Azure Portal, seleccione Crear un recurso en la parte superior izquierda de la pantalla.
  2. En Buscar en Marketplace, escriba Event Hubs y, a continuación, presione Entrar.
  3. En la página Event Hubs, seleccione Crear.
  4. En la página Crear espacio de nombres, realice los pasos siguientes:
    • Escriba un nombre único para el espacio de nombres, como sunombre-retail-store-analysis. El sistema comprueba si el nombre está disponible.
    • Elija el plan de tarifa Básico.
    • Seleccione la misma Suscripción que usó para crear la aplicación de IoT Central.
    • Seleccione el grupo de recursos retail-store-analysis.
    • Seleccione la misma ubicación que usó para la aplicación de IoT Central.
    • Seleccione Crear. Puede que tenga que esperar unos minutos hasta que el sistema aprovisione los recursos.
  5. En el portal, vaya al grupo de recursos retail-store-analysis. Espere a que la implementación se complete. Es posible que tenga que seleccionar Actualizar para actualizar el estado de la implementación. También puede comprobar el estado de la creación del espacio de nombres del centro de eventos en Notificaciones.
  6. En el grupo de recursos retail-store-analysis, seleccione el Espacio de nombres de Event Hubs. Puede ver la página principal del espacio de nombres de Event Hubs en el portal.

Necesita una cadena de conexión con permisos de envío para conectarse desde IoT Central. Para crear una cadena de conexión:

  1. En el espacio de nombres de Event Hubs en Azure Portal, seleccione Directivas de acceso compartido. La lista de directivas incluye la directiva RootManageSharedAccessKey predeterminada.
  2. Seleccione +Agregar.
  3. Escriba SendPolicy como nombre de la directiva, seleccione Enviar y, luego, seleccione Crear.
  4. Seleccione SendPolicy en la lista de directivas.
  5. Anote el valor de la clave principal de la cadena de conexión. Se usa al configurar el destino de exportación en IoT Central.

Necesita una cadena de conexión con permisos de administración y escucha para conectarse al centro de eventos desde la aplicación lógica. Para recuperar una cadena de conexión:

  1. En el espacio de nombres de Event Hubs en Azure Portal, seleccione Directivas de acceso compartido. La lista de directivas incluye la directiva RootManageSharedAccessKey predeterminada.
  2. Seleccione RootManageSharedAccessKey en la lista de directivas.
  3. Anote el valor de la clave principal de la cadena de conexión. Se usa al configurar la aplicación lógica para capturar los datos de telemetría del centro de eventos.

Ahora que tiene un espacio de nombres de Event Hubs, puede crear un centro de eventos para usarlo con la aplicación de IoT Central:

  1. En la página principal del Espacio de nombres de Event Hubs en el portal, seleccione + Centro de eventos.
  2. En la página Crear centro de eventos, escriba store-telemetry como nombre y, a continuación, seleccione Crear.

Ahora tiene un centro de eventos que puede usar al configurar la exportación de datos desde la aplicación de IoT Central:

Captura de pantalla que muestra el espacio de nombres del centro de eventos en Azure Portal.

Configuración de la exportación de datos

Ahora tiene un centro de eventos, puede configurar la aplicación In-store analytics - checkout (Análisis en tienda: finalización de la compra) para exportar los datos de telemetría desde los dispositivos conectados. En los pasos siguientes se muestra cómo configurar la exportación:

  1. Inicie sesión en la aplicación In-store analytics - checkout (Análisis en tienda: finalización de la compra) de IoT Central.
  2. Seleccione Data export (Exportación de datos) en el panel izquierdo.
  3. Seleccione + New export (+ Nueva exportación).
  4. Escriba Telemetry Export (Exportación de datos de telemetría) como nombre de la exportación.
  5. Seleccione Telemetría como el tipo de datos que se van a exportar.
  6. En la sección Destinos, seleccione Crear uno nuevo.
  7. Escriba Store data event hub (Centro de eventos de almacenamiento) como nombre del destino.
  8. Elija Azure Event Hubs como tipo de destino.
  9. Seleccione Cadena de conexión como tipo de autorización.
  10. Pegue la cadena de conexión de SendPolicy que guardó al crear el centro de eventos.
  11. Escriba store-telemetry como centro de eventos.
  12. Seleccione Crear y Guardar.
  13. En la página de Telemetry Export, espere a que el estado de exportación cambie a Correcto.

La exportación de datos puede tardar unos minutos en iniciar el envío de los datos de telemetría al centro de eventos. Puede ver el estado de la exportación en la página Exportaciones de datos.

Creación de los conjuntos de datos de Power BI

El panel de Power BI muestra los datos de la aplicación de supervisión de venta al por menor. En esta solución, se usan conjuntos de datos de streaming de Power BI como origen de datos para el panel de Power BI. En esta sección, definirá el esquema de los conjuntos de datos de streaming para que la aplicación lógica pueda reenviar los datos procedentes del centro de eventos. En los pasos siguientes se muestra cómo crear dos conjuntos de datos de streaming para los sensores ambientales y un conjunto de datos de streaming para el sensor de ocupación:

  1. Inicie sesión en su cuenta de Power BI.

  2. Seleccione Áreas de trabajo y, después, seleccione Crear un área de trabajo.

  3. En la página Crear un área de trabajo, escriba In-store analytics - checkout (Análisis en tienda: finalización de la compra) como el Nombre del área de trabajo de . Seleccione Guardar.

  4. En la página del área de trabajo, seleccione + Nuevo > Conjunto de datos de streaming.

  5. En la página Nuevo conjunto de datos de streaming, seleccione API y, a continuación, seleccione Siguiente.

  6. Escriba Sensor zona 1 como Nombre del conjunto de datos.

  7. Escriba los tres valores de la secuencia de la tabla siguiente:

    Nombre del valor Tipo de valor
    Timestamp DateTime
    Humedad Number
    Temperatura Number
  8. Active Análisis del historial de datos.

  9. Seleccione Crear y, a continuación, seleccione Listo.

  10. Cree otro conjunto de datos de streaming llamado Sensor zona 2 con el mismo esquema y la misma configuración que el conjunto de datos Sensor zona 1.

Ahora tiene dos conjuntos de datos de streaming. La aplicación lógica enruta los datos de telemetría de los dos sensores ambientales conectados a la aplicación In-store analytics - checkout (Análisis en tienda: finalización de la compra) a estos dos conjuntos de datos:

Captura de pantalla que muestra la definición de datos del sensor de la zona uno en Power BI.

Esta solución utiliza un conjunto de datos de streaming para cada sensor porque no es posible aplicar filtros a los datos de streaming en Power BI.

También necesita un conjunto de datos de streaming para los datos de telemetría de ocupación:

  1. En la página del área de trabajo, seleccione Crear > Conjunto de datos de streaming.

  2. En la página Nuevo conjunto de datos de streaming, seleccione API y, a continuación, seleccione Siguiente.

  3. Escriba Sensor de ocupación como Nombre del conjunto de datos.

  4. Escriba los cinco valores de la secuencia de la tabla siguiente:

    Nombre del valor Tipo de valor
    Timestamp DateTime
    Queue Length 1 Number
    Queue Length 2 Number
    Dwell Time 1 Number
    Dwell Time 2 Number
  5. Active Análisis del historial de datos.

  6. Seleccione Crear y, a continuación, seleccione Listo.

Ahora tiene un tercer conjunto de datos de streaming que almacena valores del sensor de ocupación simulado. Este sensor informa de la longitud de la cola en las dos zonas de cajas de la tienda y cuánto tiempo esperan los clientes en dichas colas:

Captura de pantalla que muestra la definición de datos de la ocupación en Power BI.

Creación de una aplicación lógica

En esta solución, la aplicación lógica lee los datos de telemetría del centro de eventos, analiza los datos y, a continuación, los envía a los conjuntos de datos de streaming de Power BI que ha creado.

Antes de crear la aplicación lógica, necesita los identificadores de dispositivo de los dos sensores RuuviTag que conectó a la aplicación de IoT Central en el tutorial Creación de una aplicación de análisis en tienda en Azure IoT Central:

  1. Inicie sesión en la aplicación In-store analytics - checkout (Análisis en tienda: finalización de la compra) de IoT Central.
  2. En el panel izquierdo, seleccione Devices (Dispositivos). A continuación, seleccione RuuviTag.
  3. Tome nota de los identificadores de dispositivo. En la captura de pantalla siguiente, los identificadores son 8r6vfyiv1x y 1rvfk4ymk6z:

Captura de pantalla que muestra el identificador de dispositivos en la lista de dispositivos en una aplicación de IoT Central.

En los pasos siguientes se muestra cómo crear la aplicación lógica en Azure Portal:

  1. Inicie sesión en Azure Portal y seleccione Crear un recurso en la parte superior izquierda de la pantalla.
  2. En Buscar en Marketplace, escriba aplicación lógica y, a continuación, presione Entrar.
  3. En la página Aplicación lógica, seleccione Crear.
  4. En la página Crear:
    • Escriba un nombre único para la aplicación lógica, como sunombre-retail-store-analysis.
    • Seleccione la misma Suscripción que usó para crear la aplicación de IoT Central.
    • Seleccione el grupo de recursos retail-store-analysis.
    • Seleccione el valor de Tipo en Consumo.
    • Seleccione la misma ubicación que usó para la aplicación de IoT Central.
    • Seleccione Crear. Puede que tenga que esperar unos minutos hasta que el sistema aprovisione los recursos.
  5. En Azure Portal, vaya a la nueva aplicación lógica.
  6. En la página Diseñador de aplicaciones lógicas, seleccione Aplicación lógica en blanco.
  7. En Buscar conectores y desencadenadores, escriba Event Hubs.
  8. En Desencadenadores, seleccione Cuando los eventos estén disponibles en el centro de eventos.
  9. Escriba Store telemetry como nombre de la conexión.
  10. Seleccione Clave de acceso como tipo de autenticación.
  11. Pegue la cadena de conexión del centro de eventos para la directiva RootManageSharedAccessKey que anotó anteriormente y seleccione Crear.
  12. En la acción Cuando los eventos estén disponibles en el centro de eventos:
    • En Nombre del centro de eventos, seleccione store-telemetry.
    • En Tipo de contenido, seleccione application/json.
    • Establezca el Intervalo en tres y la Frecuencia en segundos.
  13. Seleccione Guardar para guardar la aplicación lógica.

Para agregar la lógica al diseño de la aplicación lógica, seleccione Vista de código:

  1. Reemplace "actions": {}, por el siguiente código JSON. Reemplace los dos marcadores de posición [YOUR RUUVITAG DEVICE ID 1] y [YOUR RUUVITAG DEVICE ID 2] por los identificadores de los dos dispositivos RuuviTag. Anotó dichos identificadores anteriormente:

    "actions": {
        "Initialize_Device_ID_variable": {
            "inputs": {
                "variables": [
                    {
                        "name": "DeviceID",
                        "type": "String"
                    }
                ]
            },
            "runAfter": {},
            "type": "InitializeVariable"
        },
        "Parse_Telemetry": {
            "inputs": {
                "content": "@triggerBody()?['ContentData']",
                "schema": {
                    "properties": {
                        "deviceId": {
                            "type": "string"
                        },
                        "enqueuedTime": {
                            "type": "string"
                        },
                        "telemetry": {
                            "properties": {
                                "DwellTime1": {
                                    "type": "number"
                                },
                                "DwellTime2": {
                                    "type": "number"
                                },
                                "count1": {
                                    "type": "integer"
                                },
                                "count2": {
                                    "type": "integer"
                                },
                                "humidity": {
                                    "type": "number"
                                },
                                "temperature": {
                                    "type": "number"
                                }
                            },
                            "type": "object"
                        },
                        "templateId": {
                            "type": "string"
                        }
                    },
                    "type": "object"
                }
            },
            "runAfter": {
                "Initialize_Device_ID_variable": [
                    "Succeeded"
                ]
            },
            "type": "ParseJson"
        },
        "Set_Device_ID_variable": {
            "inputs": {
                "name": "DeviceID",
                "value": "@body('Parse_Telemetry')?['deviceId']"
            },
            "runAfter": {
                "Parse_Telemetry": [
                    "Succeeded"
                ]
            },
            "type": "SetVariable"
        },
        "Switch_by_DeviceID": {
            "cases": {
                "Occupancy": {
                    "actions": {},
                    "case": "Occupancy"
                },
                "Zone 2 environment": {
                    "actions": {},
                    "case": "[YOUR RUUVITAG DEVICE ID 2]"
                },
                "Zone_1_environment": {
                    "actions": {},
                    "case": "[YOUR RUUVITAG DEVICE ID 1]"
                }
            },
            "default": {
                "actions": {}
            },
            "expression": "@variables('DeviceID')",
            "runAfter": {
                "Set_Device_ID_variable": [
                    "Succeeded"
                ]
            },
            "type": "Switch"
        }
    },
    
  2. Seleccione Guardar y, después, seleccione Diseñador para ver la versión visual de la lógica que ha agregado:

    Captura de pantalla del diseñador de Logic Apps en Azure Portal con la aplicación lógica inicial.

  3. Seleccione Cambiar por identificador de dispositivo para expandir la acción. A continuación, seleccione Entorno zona 1 y seleccione Agregar una acción.

  4. En Buscar todos los conectores y acciones, escriba Agregar filas a un conjunto de datos.

  5. Seleccione la acción Agregar filas a un conjunto de datos de Power BI.

  6. Seleccione Iniciar sesión y siga las indicaciones para iniciar sesión en la cuenta de Power BI.

  7. Una vez finalizado el proceso de inicio de sesión, en la acción Agregar filas a un conjunto de datos:

    • Seleccione In-store analytics - checkout (Análisis en tienda: finalización de la compra) como el área de trabajo.
    • Seleccione Sensor zona 1 como el conjunto de datos.
    • Seleccione RealTimeData como la tabla.
    • Seleccione Agregar nuevo parámetro y, a continuación, seleccione los campos Timestamp, Humidity y Temperature.
    • Seleccione el campo Timestamp y, después, seleccione enqueuedTime de la lista Contenido dinámico.
    • Seleccione el campo Humidity y, a continuación, seleccione Ver más junto a Analizar telemetría. A continuación, seleccione humidity.
    • Seleccione el campo Temperature y, a continuación, seleccione Ver más junto a Analizar telemetría. A continuación, seleccione temperature.

    Haga clic en Guardar para guardar los cambios. La acción Zone 1 environment (Entorno de la zona 1) tiene el aspecto de la captura de pantalla siguiente: .

    Captura de pantalla que muestra la acción del entorno de la zona uno en el diseñador de Logic Apps.

  8. Seleccione la acción Entorno zona 2 y seleccione Agregar una acción.

  9. En Buscar todos los conectores y acciones, escriba Agregar filas a un conjunto de datos.

  10. Seleccione la acción Agregar filas a un conjunto de datos de Power BI.

  11. En la acción Agregar filas a un conjunto de datos 2:

    • Seleccione In-store analytics - checkout (Análisis en tienda: finalización de la compra) como el área de trabajo.
    • Seleccione Sensor zona 2 como el conjunto de datos.
    • Seleccione RealTimeData como la tabla.
    • Seleccione Agregar nuevo parámetro y, a continuación, seleccione los campos Timestamp, Humidity y Temperature.
    • Seleccione el campo Timestamp y, después, seleccione enqueuedTime de la lista Contenido dinámico.
    • Seleccione el campo Humidity y, a continuación, seleccione Ver más junto a Analizar telemetría. A continuación, seleccione humidity.
    • Seleccione el campo Temperature y, a continuación, seleccione Ver más junto a Analizar telemetría. A continuación, seleccione temperature.

    Haga clic en Guardar para guardar los cambios.

  12. Seleccione la acción Ocupación y seleccione Agregar una acción.

  13. En Buscar todos los conectores y acciones, escriba Agregar filas a un conjunto de datos.

  14. Seleccione la acción Agregar filas a un conjunto de datos de Power BI.

  15. En la acción Agregar filas a un conjunto de datos 3:

    • Seleccione In-store analytics - checkout (Análisis en tienda: finalización de la compra) como el área de trabajo.
    • Seleccione Sensor de ocupación como conjunto de datos.
    • Seleccione RealTimeData como la tabla.
    • Seleccione Agregar nuevo parámetro y, luego, elija los campos Timestamp, Queue Length 1, Queue Length 2, Dwell Time 1 y Dwell Time 2.
    • Seleccione el campo Timestamp y, después, seleccione enqueuedTime de la lista Contenido dinámico.
    • Seleccione el campo Queue Length 1 y, a continuación, seleccione Ver más junto a Analizar telemetría. A continuación, seleccione count1.
    • Seleccione el campo Queue Length 2 y, a continuación, seleccione Ver más junto a Analizar telemetría. A continuación, seleccione count2.
    • Seleccione el campo Dwell Time 1 y, a continuación, seleccione Ver más junto a Analizar telemetría. A continuación, seleccione DwellTime1.
    • Seleccione el campo Dwell Time 2 y, a continuación, seleccione Ver más junto a Analizar telemetría. A continuación, seleccione DwellTime2.

    Haga clic en Guardar para guardar los cambios. La acción Ocupación tiene un aspecto similar al de la captura de pantalla siguiente:

    Captura de pantalla que muestra la acción de ocupación en el diseñador de Logic Apps.

La aplicación lógica se ejecuta automáticamente. Para ver el estado de cada ejecución, vaya a la página Información general de la aplicación lógica en Azure Portal y seleccione Historial de ejecuciones. Seleccione Actualizar para actualizar la lista de ejecuciones.

Creación de un panel de Power BI

Ahora tiene datos de telemetría que fluyen desde la aplicación de IoT Central al centro de eventos. A continuación, la aplicación lógica analiza los mensajes del centro de eventos y los agrega a un conjunto datos de streaming de Power BI. Ahora puede crear un panel de Power BI para visualizar los datos de telemetría:

  1. Inicie sesión en su cuenta de Power BI.
  2. Seleccione Áreas de trabajo > Análisis en la tienda - finalización de la compra.
  3. Seleccione + Nuevo > Panel.
  4. Escriba Store analytics como el nombre del panel y seleccione Crear.

Adición de gráficos de líneas

Agregue cuatro iconos de gráfico de líneas para mostrar la temperatura y la humedad de los dos sensores ambientales. Utilice la información de la tabla siguiente para crear los iconos. Para agregar cada icono, seleccione Editar > Add a tile (Agregar un icono). Seleccione Datos de transmisión personalizados y, a continuación, seleccione Siguiente:

Configuración Gráfico 1 Gráfico 2 Gráfico 3 Gráfico 4
Dataset Sensor zona 1 Sensor zona 1 Sensor zona 2 Sensor zona 2
Tipo de visualización Gráfico de líneas Gráfico de líneas Gráfico de líneas Gráfico de líneas
Eje Timestamp Timestamp Timestamp Timestamp
Valores Temperatura Humedad Temperatura Humedad
Período de tiempo 60 minutos 60 minutos 60 minutos 60 minutos
Título Temperatura (1 hora) Humedad (1 hora) Temperatura (1 hora) Humedad (1 hora)
Subtítulo Zona 1 Zona 1 Zona 2 Zona 2

En la captura de pantalla siguiente se muestra la configuración del primer gráfico:

Captura de pantalla que muestra la definición del gráfico de líneas en el panel de control de Power BI.

Adición de tarjetas para mostrar los datos ambientales

Agregue cuatro iconos de tarjeta para mostrar los valores de temperatura y humedad más recientes de los dos sensores ambientales. Utilice la información de la tabla siguiente para crear los iconos. Para agregar cada icono, seleccione Editar > Add a tile (Agregar un icono). Seleccione Datos de transmisión personalizados y, a continuación, seleccione Siguiente:

Configuración Tarjeta 1 Tarjeta 2 Tarjeta 3 Tarjeta 4
Dataset Sensor zona 1 Sensor zona 1 Sensor zona 2 Sensor zona 2
Tipo de visualización Card Card Card Card
Fields Temperatura Humedad Temperatura Humedad
Título Temperatura (F) Humedad (%) Temperatura (F) Humedad (%)
Subtítulo Zona 1 Zona 1 Zona 2 Zona 2

En la captura de pantalla siguiente se muestra la configuración de la primera tarjeta:

Captura de pantalla que muestra la definición de la tarjeta en el panel de control de Power BI.

Adición de iconos para mostrar los datos de ocupación en la zona de cajas

Agregue cuatro iconos de tarjeta para mostrar la longitud de la cola y el tiempo de permanencia de las dos zonas de cajas de la tienda. Utilice la información de la tabla siguiente para crear los iconos. Para agregar cada icono, seleccione Editar > Add a tile (Agregar un icono). Seleccione Datos de transmisión personalizados y, a continuación, seleccione Siguiente:

Configuración Tarjeta 1 Tarjeta 2 Tarjeta 3 Tarjeta 4
Dataset Sensor de ocupación Sensor de ocupación Sensor de ocupación Sensor de ocupación
Tipo de visualización Gráfico de columnas agrupadas Gráfico de columnas agrupadas Indicador Indicador
Eje Timestamp Timestamp N/D N/D
Value Dwell Time 1 Dwell Time 2 Queue Length 1 Queue Length 2
Período de tiempo 60 minutos 60 minutos N/D N/D
Título Tiempo de permanencia Tiempo de permanencia Longitud de la cola Longitud de la cola
Subtítulo Zona de cajas 1 Zona de cajas 2 Zona de cajas 1 Zona de cajas 2

Cambie el tamaño y reorganice los iconos en el panel para que se parezca a la siguiente captura de pantalla:

Captura de pantalla en la que se muestra el panel de Power BI con iconos redimensionados y reorganizados.

Puede agregar algunos recursos gráficos para personalizar aún más el panel:

Captura de pantalla que muestra el panel de Power BI con gráficos adicionales.

Limpieza de recursos

Si ha terminado con la aplicación IoT Central, puede eliminarla; para ello, inicie sesión en la aplicación y vaya a la página Administración en la sección Aplicación.

Si desea mantener la aplicación pero quiere reducir los costos asociados a ella, deshabilite la exportación de datos que envía los datos de telemetría al centro de eventos.

Puede eliminar el centro de eventos y la aplicación lógica en Azure Portal mediante la eliminación del grupo de recursos llamado retail-store-analysis.

Puede eliminar el panel y los conjuntos de datos de Power BI mediante la eliminación del área de trabajo en la página de configuración de Power BI del área de trabajo.