Tutorial: Exportar dados do Azure IoT Central e visualizar informações no Power BI

Nos dois tutoriais anteriores, você criou e personalizou um aplicativo do IoT Central usando o modelo de aplicativo de análise na loja - checkout . Neste tutorial, você configura seu aplicativo IoT Central para exportar a telemetria coletada dos dispositivos. Em seguida, você usa o Power BI para criar um painel personalizado para o gerente de loja visualizar os insights derivados da telemetria.

Neste tutorial, irá aprender a:

  • Configure um aplicativo do IoT Central para exportar telemetria para um hub de eventos.
  • Use Aplicativos Lógicos para enviar dados de um hub de eventos para um conjunto de dados de streaming do Power BI.
  • Crie um painel do Power BI para visualizar dados no conjunto de dados de streaming.

Pré-requisitos

Para concluir este tutorial, precisa de:

Criar um grupo de recursos

Antes de criar o hub de eventos e o aplicativo lógico, você precisa criar um grupo de recursos para gerenciá-los. O grupo de recursos deve estar no mesmo local que sua análise na loja - checkout do aplicativo IoT Central. Para criar um grupo de recursos:

  1. Inicie sessão no portal do Azure.
  2. Na navegação à esquerda, selecione Grupos de recursos. Em seguida, selecione Adicionar.
  3. Em Assinatura, selecione o nome da assinatura do Azure que você usou para criar seu aplicativo IoT Central.
  4. Para o nome do grupo de recursos, insira retail-store-analysis.
  5. Para a Região, selecione a mesma região escolhida para o aplicativo IoT Central.
  6. Selecione Rever + Criar.
  7. Na página Rever + Criar, selecione Criar.

Agora você tem um grupo de recursos chamado retail-store-analysis em sua assinatura.

Criar um hub de eventos

Antes de configurar o aplicativo de monitoramento de varejo para exportar telemetria, você precisa criar um hub de eventos para receber os dados exportados. As etapas a seguir mostram como criar seu hub de eventos:

  1. No portal do Azure, selecione Criar um recurso no canto superior esquerdo da tela.
  2. Em Pesquisar no Marketplace, insira Hubs de Eventos e pressione Enter.
  3. Na página Hubs de Eventos, selecione Criar.
  4. Na página Criar namespace, execute as seguintes etapas:
    • Insira um nome exclusivo para o namespace, como yourname-retail-store-analysis. O sistema verifica se esse nome está disponível.
    • Escolha o nível de preço Básico .
    • Selecione a mesma Assinatura usada para criar seu aplicativo IoT Central.
    • Selecione o grupo de recursos retail-store-analysis .
    • Selecione o mesmo local usado para seu aplicativo IoT Central.
    • Selecione Criar. Talvez seja necessário aguardar alguns minutos para que o sistema provisione os recursos.
  5. No portal, navegue até o grupo de recursos de análise de loja de varejo. Aguarde pela conclusão da implementação. Talvez seja necessário selecionar Atualizar para atualizar o status da implantação. Você também pode verificar o status da criação do namespace do hub de eventos nas Notificações.
  6. No grupo de recursos retail-store-analysis, selecione o Namespace Hubs de Eventos. Você vê a home page do seu Namespace de Hubs de Eventos no portal.

Você precisa de uma cadeia de conexão com permissões de envio para se conectar a partir do IoT Central. Para criar uma cadeia de conexão:

  1. No namespace Hubs de Eventos no portal do Azure, selecione Políticas de acesso compartilhado. A lista de políticas inclui a política padrão RootManageSharedAccessKey .
  2. Selecione + Adicionar.
  3. Introduza SendPolicy como o nome da política, selecione Enviar e, em seguida, selecione Criar.
  4. Selecione SendPolicy na lista de políticas.
  5. Anote o valor da chave primária da cadeia de conexão. Você o usa quando configura o destino de exportação no IoT Central.

Você precisa de uma cadeia de conexão com permissões de gerenciamento e escuta para se conectar ao hub de eventos a partir do seu aplicativo lógico. Para recuperar uma cadeia de conexão:

  1. No namespace Hubs de Eventos no portal do Azure, selecione Políticas de acesso compartilhado. A lista de políticas inclui a política padrão RootManageSharedAccessKey .
  2. Selecione RootManageSharedAccessKey na lista de políticas.
  3. Anote o valor da chave primária da cadeia de conexão. Você o usa quando configura o aplicativo lógico para buscar telemetria no hub de eventos.

Agora que você tem um namespace de Hubs de Eventos, pode criar um hub de eventos para usar com seu aplicativo IoT Central:

  1. Na home page do seu Namespace de Hubs de Eventos no portal, selecione + Hub de Eventos.
  2. Na página Criar Hub de Eventos, insira telemetria de armazenamento como o nome e selecione Criar.

Agora você tem um hub de eventos que pode usar ao configurar a exportação de dados do seu aplicativo IoT Central:

Captura de tela que mostra o namespace do hub de eventos no portal do Azure.

Configurar exportação de dados

Agora que você tem um hub de eventos, pode configurar seu aplicativo de análise na loja - checkout para exportar telemetria dos dispositivos conectados. As etapas a seguir mostram como configurar a exportação:

  1. Faça login na sua análise na loja - checkout do aplicativo IoT Central.
  2. Selecione Exportação de dados no painel esquerdo.
  3. Selecione + Nova exportação.
  4. Insira Exportação de telemetria como o nome da exportação.
  5. Selecione Telemetria como tipo de dados a serem exportados.
  6. Na seção Destinos, selecione criar um novo.
  7. Insira o hub de eventos de dados da Loja como o Nome de destino.
  8. Selecione Hubs de Eventos do Azure como o tipo de destino.
  9. Selecione Cadeia de conexão como o tipo de autorização.
  10. Cole na cadeia de conexão para o SendPolicy que você salvou ao criar o hub de eventos.
  11. Insira a telemetria de armazenamento como o Hub de Eventos.
  12. Selecione Criar e, em seguida, Guardar.
  13. Na página de exportação de Telemetria, aguarde até que o status de exportação mude para Íntegro.

A exportação de dados pode levar alguns minutos para começar a enviar telemetria para o hub de eventos. Você pode ver o status da exportação na página Exportações de dados.

Criar os conjuntos de dados do Power BI

Seu painel do Power BI exibe dados de seu aplicativo de monitoramento de varejo. Nesta solução, você usa conjuntos de dados de streaming do Power BI como a fonte de dados para o painel do Power BI. Nesta seção, você define o esquema dos conjuntos de dados de streaming para que o aplicativo lógico possa encaminhar dados do hub de eventos. As etapas a seguir mostram como criar dois conjuntos de dados de streaming para os sensores ambientais e um conjunto de dados de streaming para o sensor de ocupação:

  1. Inicie sessão na sua conta do Power BI.

  2. Selecione Espaços de trabalho e, em seguida, selecione Criar um espaço de trabalho.

  3. Na página Criar um espaço de trabalho, insira Análise na loja - check-out como o nome do espaço de trabalho. Selecione Guardar.

  4. Na página do espaço de trabalho, selecione + Novo > conjunto de dados de streaming.

  5. Na página Novo conjunto de dados de streaming, escolha API e selecione Avançar.

  6. Insira o sensor de Zona 1 como o nome do conjunto de dados.

  7. Insira os três Valores do fluxo na tabela a seguir:

    Nome do valor Tipo de Valor
    Carimbo de Data/Hora DateTime
    Humidade Número
    Temperatura Número
  8. Ative a análise de dados históricos.

  9. Selecione Criar e, em seguida, Concluído.

  10. Crie outro conjunto de dados de streaming chamado sensor de Zona 2 com o mesmo esquema e configurações do conjunto de dados de streaming do sensor de Zona 1.

Agora você tem dois conjuntos de dados de streaming. O aplicativo lógico roteia a telemetria dos dois sensores ambientais conectados à sua análise na loja - aplicativo de checkout para estes dois conjuntos de dados:

Captura de ecrã que mostra a definição do conjunto de dados do sensor de zona um no Power B I.

Essa solução usa um conjunto de dados de streaming para cada sensor porque não é possível aplicar filtros a dados de streaming no Power BI.

Você também precisa de um conjunto de dados de streaming para a telemetria de ocupação:

  1. Na página do espaço de trabalho, selecione Criar > conjunto de dados de streaming.

  2. Na página Novo conjunto de dados de streaming, escolha API e selecione Avançar.

  3. Insira Sensor de ocupação como o nome do conjunto de dados.

  4. Insira os cinco Valores do fluxo na tabela a seguir:

    Nome do valor Tipo de Valor
    Carimbo de Data/Hora DateTime
    Comprimento da fila 1 Número
    Comprimento da fila 2 Número
    Tempo de permanência 1 Número
    Tempo de permanência 2 Número
  5. Ative a análise de dados históricos.

  6. Selecione Criar e, em seguida, Concluído.

Agora você tem um terceiro conjunto de dados de streaming que armazena valores do sensor de ocupação simulado. Este sensor informa o comprimento da fila nos dois checkouts na loja e quanto tempo os clientes estão esperando nessas filas:

Captura de ecrã que mostra a definição do conjunto de dados de ocupação no Power B I.

Criar uma aplicação lógica

Nesta solução, o aplicativo lógico lê a telemetria do hub de eventos, analisa os dados e os envia para os conjuntos de dados de streaming do Power BI que você criou.

Antes de criar o aplicativo lógico, você precisa das IDs de dispositivo dos dois sensores RuuviTag conectados ao seu aplicativo IoT Central no tutorial Criar um aplicativo de análise na loja no Azure IoT Central :

  1. Faça login na sua análise na loja - checkout do aplicativo IoT Central.
  2. Selecione Dispositivos no painel esquerdo. Em seguida, selecione RuuviTag.
  3. Anote os IDs do dispositivo. Na captura de tela a seguir, os IDs são 8r6vfyiv1x e 1rvfk4ymk6z:

Captura de tela que mostra os IDs de dispositivo na lista de dispositivos em um aplicativo do IoT Central.

As etapas a seguir mostram como criar o aplicativo lógico no portal do Azure:

  1. Entre no portal do Azure e selecione Criar um recurso no canto superior esquerdo da tela.
  2. Em Pesquisar no Marketplace, introduza Logic App e, em seguida, prima Enter.
  3. Na página Aplicação Lógica, selecione Criar.
  4. Na página Criar:
    • Insira um nome exclusivo para seu aplicativo lógico, como yourname-retail-store-analysis.
    • Selecione a mesma Assinatura usada para criar seu aplicativo IoT Central.
    • Selecione o grupo de recursos retail-store-analysis .
    • Selecione o Tipo como Consumo.
    • Selecione o mesmo local usado para seu aplicativo IoT Central.
    • Selecione Criar. Talvez seja necessário aguardar alguns minutos para que o sistema provisione os recursos.
  5. No portal do Azure, navegue até seu novo aplicativo lógico.
  6. Na página Logic Apps Designer, role para baixo e selecione Aplicativo lógico em branco.
  7. Em Conectores e gatilhos de pesquisa, insira Hubs de Eventos.
  8. Em Disparadores, selecione Quando os eventos estão disponíveis no Hub de Eventos.
  9. Insira Telemetria da Loja como o Nome da conexão.
  10. Selecione Chave de acesso como o tipo de autenticação.
  11. Cole na cadeia de conexão do hub de eventos para a política RootManageSharedAccessKey que você anotou anteriormente e selecione Criar.
  12. Na ação Quando os eventos estão disponíveis no Hub de Eventos :
    • Em Nome do Hub de Eventos, selecione store-telemetry.
    • Em Tipo de conteúdo, selecione application/json.
    • Defina o intervalo para três e a frequência para segundos
  13. Selecione Guardar para guardar a sua aplicação lógica.

Para adicionar a lógica ao design do seu aplicativo lógico, selecione Visualização de código:

  1. Substitua "actions": {}, pelo seguinte JSON. Em seguida, substitua os dois espaços reservados [YOUR RUUVITAG DEVICE ID 1] e [YOUR RUUVITAG DEVICE ID 2] pelos IDs dos seus dois dispositivos RuuviTag. Você anotou esses IDs 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. Selecione Salvar e, em seguida, selecione Designer para ver a versão visual da lógica adicionada:

    Captura de ecrã do Designer de Aplicações Lógicas no portal do Azure com a aplicação lógica inicial.

  3. Selecione Alternar por DeviceID para expandir a ação. Em seguida, selecione Ambiente de zona 1 e selecione Adicionar uma ação.

  4. Em Conectores e ações de pesquisa, insira Adicionar linhas a um conjunto de dados.

  5. Selecione a ação Adicionar linhas do Power BI a um conjunto de dados.

  6. Selecione Entrar e siga as instruções para entrar na sua conta do Power BI.

  7. Após a conclusão do processo de entrada, na ação Adicionar linhas a um conjunto de dados:

    • Selecione Análise na loja - checkout como espaço de trabalho.
    • Selecione Sensor de zona 1 como o conjunto de dados.
    • Selecione RealTimeData como a tabela.
    • Selecione Adicionar novo parâmetro e, em seguida, selecione os campos Carimbo de data/hora, Humidade e Temperatura .
    • Selecione o campo Carimbo de data/hora e, em seguida, selecione enqueuedTime na lista Conteúdo dinâmico .
    • Selecione o campo Humidade e, em seguida, selecione Ver mais junto a Analisar Telemetria. Em seguida, selecione umidade.
    • Selecione o campo Temperatura e, em seguida, selecione Ver mais ao lado de Analisar Telemetria. Em seguida, selecione a temperatura.

    Selecione Guardar para guardar as alterações. A ação de ambiente da Zona 1 se parece com a seguinte captura de tela:

    Captura de tela que mostra a ação de ambiente de zona um no Designer de Aplicativos Lógicos.

  8. Selecione a ação de ambiente Zona 2 e selecione Adicionar uma ação.

  9. Em Conectores e ações de pesquisa, insira Adicionar linhas a um conjunto de dados.

  10. Selecione a ação Adicionar linhas do Power BI a um conjunto de dados.

  11. Na ação Adicionar linhas a um conjunto de dados 2:

    • Selecione Análise na loja - checkout como espaço de trabalho.
    • Selecione Sensor de zona 2 como o conjunto de dados.
    • Selecione RealTimeData como a tabela.
    • Selecione Adicionar novo parâmetro e, em seguida, selecione os campos Carimbo de data/hora, Humidade e Temperatura .
    • Selecione o campo Carimbo de data/hora e, em seguida, selecione enqueuedTime na lista Conteúdo dinâmico .
    • Selecione o campo Humidade e, em seguida, selecione Ver mais junto a Analisar Telemetria. Em seguida, selecione umidade.
    • Selecione o campo Temperatura e, em seguida, selecione Ver mais ao lado de Analisar Telemetria. Em seguida, selecione a temperatura.

    Selecione Guardar para guardar as alterações.

  12. Selecione a ação Ocupação e selecione Adicionar uma ação.

  13. Em Conectores e ações de pesquisa, insira Adicionar linhas a um conjunto de dados.

  14. Selecione a ação Adicionar linhas do Power BI a um conjunto de dados.

  15. Na ação Adicionar linhas a um conjunto de dados 3:

    • Selecione Análise na loja - checkout como espaço de trabalho.
    • Selecione Sensor de ocupação como o conjunto de dados.
    • Selecione RealTimeData como a tabela.
    • Selecione Adicionar novo parâmetro e, em seguida, selecione os campos Carimbo de data/hora, Comprimento da fila 1, Comprimento da fila 2, Tempo de permanência 1 e Tempo de permanência 2 .
    • Selecione o campo Carimbo de data/hora e, em seguida, selecione enqueuedTime na lista Conteúdo dinâmico .
    • Selecione o campo Comprimento da fila 1 e, em seguida, selecione Ver mais ao lado de Telemetria de análise. Em seguida, selecione count1.
    • Selecione o campo Comprimento da fila 2 e, em seguida, selecione Ver mais ao lado de Telemetria de análise. Em seguida, selecione count2.
    • Selecione o campo Tempo de permanência 1 e, em seguida, selecione Ver mais ao lado de Telemetria de análise. Em seguida, selecione DwellTime1.
    • Selecione o campo Tempo de permanência 2 e, em seguida, selecione Ver mais ao lado de Telemetria de análise. Em seguida, selecione DwellTime2.

    Selecione Guardar para guardar as alterações. A ação Ocupação se parece com a seguinte captura de tela:

    Captura de tela que mostra a ação de ocupação no Designer de Aplicativos Lógicos.

O aplicativo lógico é executado automaticamente. Para ver o status de cada execução, navegue até a página Visão geral do aplicativo lógico no portal do Azure e selecione Histórico de execuções. Selecione Atualizar para atualizar a lista de execuções.

Criar um dashboard do Power BI

Agora você tem a telemetria fluindo do seu aplicativo IoT Central por meio do hub de eventos. Em seguida, seu aplicativo lógico analisa as mensagens do hub de eventos e as adiciona a um conjunto de dados de streaming do Power BI. Agora, você pode criar um painel do Power BI para visualizar a telemetria:

  1. Inicie sessão na sua conta do Power BI.
  2. Selecione Workspaces > In-store analytics - checkout.
  3. Selecione + Novo > Painel.
  4. Insira Análise da loja como o nome do painel e selecione Criar.

Adicionar gráficos de linhas

Adicione quatro blocos de gráfico de linhas para mostrar a temperatura e a umidade dos dois sensores ambientais. Use as informações na tabela a seguir para criar os blocos. Para adicionar cada bloco, comece selecionando Editar > Adicionar um bloco. Selecione Dados de Streaming Personalizados e, em seguida, selecione Avançar:

Definição Gráfico #1 Gráfico #2 Gráfico #3 Gráfico #4
Conjunto de dados Sensor de zona 1 Sensor de zona 1 Sensor de zona 2 Sensor de zona 2
Tipo de visualização Gráfico de linhas Gráfico de linhas Gráfico de linhas Gráfico de linhas
Eixo Carimbo de Data/Hora Carimbo de Data/Hora Carimbo de Data/Hora Carimbo de Data/Hora
Valores Temperatura Humidade Temperatura Humidade
Janela de tempo 60 minutos 60 minutos 60 minutos 60 minutos
Título Temperatura (1 hora) Humidade (1 hora) Temperatura (1 hora) Humidade (1 hora)
Subtítulo Zona 1 Zona 1 Zona 2 Zona 2

A captura de tela a seguir mostra as configurações do primeiro gráfico:

Captura de ecrã que mostra a definição do gráfico de linhas no painel do Power B I.

Adicionar cartões para mostrar dados ambientais

Adicione quatro blocos de cartão para mostrar os valores mais recentes de temperatura e umidade dos dois sensores ambientais. Use as informações na tabela a seguir para criar os blocos. Para adicionar cada bloco, comece selecionando Editar > Adicionar um bloco. Selecione Dados de Streaming Personalizados e, em seguida, selecione Avançar:

Definição Cartão #1 Cartão #2 Cartão #3 Cartão #4
Conjunto de dados Sensor de zona 1 Sensor de zona 1 Sensor de zona 2 Sensor de zona 2
Tipo de visualização Card Card Card Card
Campos Temperatura Humidade Temperatura Humidade
Título Temperatura (F) Humidade (%) Temperatura (F) Humidade (%)
Subtítulo Zona 1 Zona 1 Zona 2 Zona 2

A captura de tela a seguir mostra as configurações do primeiro cartão:

Captura de ecrã que mostra a definição do cartão no dashboard.tings do Power B I.

Adicionar blocos para mostrar os dados de ocupação do check-out

Adicione quatro blocos de cartão para mostrar o comprimento da fila e o tempo de permanência para os dois checkouts na loja. Use as informações na tabela a seguir para criar os blocos. Para adicionar cada bloco, comece selecionando Editar > Adicionar um bloco. Selecione Dados de Streaming Personalizados e, em seguida, selecione Avançar:

Definição Cartão #1 Cartão #2 Cartão #3 Cartão #4
Conjunto de dados Sensor de ocupação Sensor de ocupação Sensor de ocupação Sensor de ocupação
Tipo de visualização Gráfico de colunas agrupadas Gráfico de colunas agrupadas Medidor Medidor
Eixo Carimbo de Data/Hora Carimbo de Data/Hora N/A N/A
Value Tempo de permanência 1 Tempo de permanência 2 Comprimento da fila 1 Comprimento da fila 2
Janela de tempo 60 minutos 60 minutos N/A N/A
Título Tempo de permanência Tempo de permanência Comprimento da Fila Comprimento da Fila
Subtítulo Finalização 1 Finalizar encomenda 2 Finalização 1 Finalizar encomenda 2

Redimensione e reorganize os blocos no painel para se parecer com a seguinte captura de tela:

Captura de ecrã que mostra o dashboard do Power BI com mosaicos redimensionados e reorganizados.

Você pode adicionar alguns recursos gráficos para personalizar ainda mais o painel:

Captura de ecrã que mostra o dashboard do Power BI com gráficos adicionais.

Clean up resources (Limpar recursos)

Se você tiver terminado com seu aplicativo IoT Central, poderá excluí-lo entrando no aplicativo e navegando até a página Gerenciamento na seção Aplicativo .

Se você quiser manter o aplicativo, mas reduzir os custos associados a ele, desative a exportação de dados que está enviando telemetria para seu hub de eventos.

Você pode excluir o hub de eventos e o aplicativo lógico no portal do Azure excluindo o grupo de recursos chamado retail-store-analysis.

Você pode excluir seus conjuntos de dados e painel do Power BI excluindo o espaço de trabalho da página de configurações do Power BI para o espaço de trabalho.