Compartilhar via


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

Nos dois tutoriais anteriores, você criou e personalizou um aplicativo IoT Central usando o modelo de aplicativo análise no repositório - check-out. Neste tutorial, você configura seu aplicativo IoT Central para exportar a telemetria coletada dos dispositivos. Em seguida, você usa Power BI para criar um painel personalizado para o gerenciador de loja para visualizar as informações derivadas da telemetria.

Neste tutorial, você aprenderá como:

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

Pré-requisitos

Para concluir este tutorial, você precisará:

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 seu aplicativo Análise do repositório - Fazer check-out do IoT Central. Para criar um grupo de recursos:

  1. Entre no portal do Azure.
  2. No painel de navegação esquerdo, selecione Grupos de recursos. Em seguida, selecioneAdicionar.
  3. Para Assinatura, selecione o nome da assinatura do Azure na qual você deseja criar o aplicativo do IOT Central.
  4. No nome do Grupo de recursos, insira retail-store-analysis.
  5. Para a Região, selecione a mesma região que você escolheu para o aplicativo IoT Central.
  6. Selecione Examinar + criar.
  7. Na página Examinar + Criar, selecione Criar.

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

Criar um Hub de Evento

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

  1. No portal do Azure selecione Criar um recurso na parte superior esquerda da tela.
  2. Em Pesquisar no Marketplace, insira Hubs de Eventos e, em seguida, 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 o nome está disponível.
    • Escolher o tipo de preço Básico.
    • Selecione a mesma Assinatura usada para criar o aplicativo do IoT Central.
    • Selecione o grupo de recursos retail-store-analysis.
    • Selecione o mesmo local usado para o aplicativo do IoT Central.
    • Selecione Criar. Talvez você precise aguardar alguns minutos para o sistema provisionar os recursos.
  5. No portal, navegue até o grupo de recursos retail-store-analysis. Aguarde até que a implantação seja concluída. 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 em Notificações.
  6. No grupo de recursos retail-store-analysis, selecione o Namespace de Hubs de Eventos. Você verá a página inicial 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 por meio do IoT Central. Para criar uma cadeia de conexão:

  1. No namespace dos Hubs de Eventos no portal do Azure, selecione Políticas de acesso compartilhado. A lista de políticas inclui a política RootManageSharedAccessKey padrão.
  2. Selecione + Adicionar.
  3. Insira SendPolicy como o nome da política, selecione Enviar e depois Criar.
  4. Selecione SendPolicy na lista de políticas.
  5. Anote o valor da Chave primária da cadeia de conexão. Ela é usada na configuração do 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 do aplicativo lógico. Para recuperar uma cadeia de conexão:

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

Agora você tem um Namespace de Hubs de Eventos e pode criar um hub de eventos para usar com o aplicativo do IoT Central:

  1. Na página inicial do seu Namespace de Hubs de Eventos no portal, selecione + Hub de Eventos.
  2. Na página Criar Hub de Eventos, insira store-telemetry como o nome e, em seguida, selecione Criar.

Agora você tem um hub de eventos que pode ser usado 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 tem um hub de eventos, você pode configurar seu aplicativo de Análise de repositório – fazer check-out para exportar a telemetria dos dispositivos conectados. As etapas a seguir mostram como configurar a exportação:

  1. Entre em seu aplicativo de Análise de repositório - Fazer check-out do 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 o tipo de dados para exportação.
  6. Na seção Destinos, selecione Criar.
  7. Insira Hub de eventos de dados do repositório 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 a cadeia de conexão da SendPolicy que você salvou ao criar o hub de eventos.
  11. Insira store-telemetry como o Hub de Eventos.
  12. Selecione Criar e depois Salvar.
  13. Na página Exportação de telemetria, aguarde até que o status de exportação seja alterado 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 de controle do Power BI mostra dados do seu aplicativo de monitoramento de varejo. Nesta solução, você usa conjuntos de dados de streaming de Power BI como a fonte de dados para o painel de 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. Entre na sua conta do Power BI.

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

  3. Na página Criar um espaço de trabalho, insira Análise de repositório - Fazer check-out como o Nome do espaço de trabalho. Selecione Save.

  4. Na página do workspace, selecione + Novo > Conjunto de dados de streaming.

  5. Na página Novo conjunto de dados de streaming, escolha API e, em seguida, selecione Próximo.

  6. Insira Sensor de Zona 1 como o Nome do conjunto de dados.

  7. Insira os três Valores de stream na tabela a seguir:

    Nome do valor Tipo de valor
    Timestamp Datetime
    Umidade Número
    Temperatura Número
  8. Ative a Análise de dados histórica.

  9. Selecione Criar, depois Concluído.

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

Agora você tem dois conjuntos de dados de streaming. O aplicativo lógico encaminha a telemetria dos dois sensores ambientais conectados ao seu aplicativo de Check-out/análise dentro da loja para esses dois conjuntos de dados:

Captura de tela que mostra a definição de data set do sensor da zona um no Power BI.

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

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

  1. Na página do workspace, selecione Criar > Conjunto de dados de streaming.

  2. Na página Novo conjunto de dados de streaming, escolha API e, em seguida, selecione Próximo.

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

  4. Insira os cinco Valores de stream na tabela a seguir:

    Nome do valor Tipo de valor
    Timestamp Datetime
    Comprimento da fila 1 Número
    Comprimento da fila 2 Número
    Tempo de espera 1 Número
    Tempo de espera 2 Número
  5. Ative a Análise de dados histórica.

  6. Selecione Criar, depois Concluído.

Agora você tem um terceiro conjunto de dados de streaming que armazena valores do sensor de ocupação simulado. Esse sensor informa o comprimento da fila nos dois check-outs no repositório e por quanto tempo os clientes estão aguardando nessas filas:

Captura de tela que mostra a definição de data set de ocupação no Power BI.

Criar um aplicativo lógico

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

Antes de criar o aplicativo lógico, você precisará 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. Entre em seu aplicativo de Análise de repositório - Fazer check-out do IoT Central.
  2. Selecione Dispositivos no painel à esquerda. Em seguida, selecione RuuviTag.
  3. Anote as IDs do dispositivo. Na seguinte captura de tela, as IDs são 8r6vfyiv1x e 1rvfk4ymk6z:

Captura de tela que mostra as 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 na parte superior esquerda da tela.
  2. Em Pesquisar no Marketplace, insira Aplicativo Lógico e, em seguida, pressione Enter.
  3. Na página Aplicativo lógico, selecione Criar.
  4. Na página Criar:
    • Insira um nome único para seu aplicativo lógico, como yourname-retail-store-analysis.
    • Selecione a mesma Assinatura usada para criar o aplicativo do IoT Central.
    • Selecione o grupo de recursos retail-store-analysis.
    • Selecione o Tipo como Consumo.
    • Selecione o mesmo local usado para o aplicativo do IoT Central.
    • Selecione Criar. Talvez você precise aguardar alguns minutos para o sistema provisionar os recursos.
  5. No Portal do Azure, navegue até o novo aplicativo lógico.
  6. Na página Designer de Aplicativos Lógicos, role para baixo e selecione Aplicativo Lógico em Branco.
  7. Em Pesquisar conectores e gatilhos, insira Hubs de Eventos.
  8. Em Gatilhos, selecione Quando eventos estiverem disponíveis no Hub de eventos.
  9. Insira Telemetria do repositório como o Nome da conexão.
  10. Selecione Chave de acesso como o tipo de autenticação.
  11. Cole a cadeia de conexão do hub de eventos da política RootManageSharedAccessKey que você anotou e selecione Criar.
  12. Na ação Quando os eventos estiverem disponíveis no Hub de Eventos:
    • Em Nome do Hub de Eventos, selecione store-telemetry.
    • Em Tipo de conteúdo, selecione aplicativo/json.
    • Defina o Intervalo para três e a Frequência para segundos
  13. Selecione Salvar para salvar seu aplicativo lógico.

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

  1. Substitua o "actions": {}, pelo seguinte JSON. Substitua os dois espaços reservados [YOUR RUUVITAG DEVICE ID 1] e [YOUR RUUVITAG DEVICE ID 2] pelas IDs que você anotou dos dois dispositivos RuuviTag. Você já anotou essas IDs:

    "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 que você adicionou:

    Captura de tela do Designer de Aplicativos Lógicos no portal do Azure com o aplicativo lógico 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 Pesquisar conectores e ações, insira Adicionar linhas a um conjunto de dados.

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

  6. Selecione Entrar e siga os prompts para entrar em 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 do repositório - Fazer check-out como o espaço de trabalho.
    • Insira 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, Umidadee Temperatura.
    • Selecione o campo Carimbo de data/hora e depois enqueuedTime na lista Conteúdo dinâmico.
    • Selecione o campo Umidade e, em seguida, selecione Ver mais ao lado de Analisar telemetria. Selecione umidade.
    • Selecione o campo de Temperatura e, em seguida, selecione Ver mais ao lado de Analisar telemetria. Em seguida, selecione temperatura.

    Selecione Salvar para salvar as alterações. A ação Ambiente de Zona 1 é semelhante à seguinte captura de tela:

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

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

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

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

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

    • Selecione Análise do repositório - Fazer check-out como o 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, Umidadee Temperatura.
    • Selecione o campo Carimbo de data/hora e depois enqueuedTime na lista Conteúdo dinâmico.
    • Selecione o campo Umidade e, em seguida, selecione Ver mais ao lado de Analisar telemetria. Selecione umidade.
    • Selecione o campo de Temperatura e, em seguida, selecione Ver mais ao lado de Analisar telemetria. Em seguida, selecione temperatura.

    Selecione Salvar para salvar as alterações.

  12. Selecione a ação Ocupação e clique em Adicionar uma ação.

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

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

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

    • Selecione Análise do repositório - Fazer check-out como o espaço de trabalho.
    • Selecione Sensor de ocupação como o conjunto de dados.
    • Selecione RealTimeData como a tabela.
    • Selecione Adicionar parâmetro e escolha os campos Carimbo de data/hora, Tamanho da fila 1, Tamanho da fila 2, Tempo de permanência 1 e Tempo de permanência 2.
    • Selecione o campo Carimbo de data/hora e depois enqueuedTime na lista Conteúdo dinâmico.
    • Selecione o campo Comprimento da fila 1 e, em seguida, selecione Ver mais ao lado de Analisar telemetria. Em seguida, selecione count1.
    • Selecione o campo Comprimento da fila 2 e, em seguida, selecione Ver mais ao lado de Analisar telemetria. Em seguida, selecione count2.
    • Selecione o campo Tempo de espera 1 e, em seguida, selecione Ver mais ao lado de Analisar telemetria. Em seguida, selecione Tempo de espera 1.
    • Selecione o campo Tempo de espera 2 e, em seguida, selecione Ver mais ao lado de Analisar telemetria. Em seguida, selecione Tempo de espera 2.

    Selecione Salvar para salvar as alterações. A ação Ocupação é semelhante à seguinte captura de tela:

    Captura de tela que mostra a ação da 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 painel de Power BI

Agora você tem telemetria fluindo do seu aplicativo IoT Central por meio de seu 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 de Power BI para visualizar a telemetria:

  1. Entre na sua conta do Power BI.
  2. Selecione Workspaces > Análise do repositório – Fazer check-out.
  3. Selecione + Novo > Dashboard.
  4. Insira Análise do repositório 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 Próximo:

Configuração Gráfico nº 1 Gráfico nº 2 Gráfico nº 3 Gráfico nº 4
Dataset 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
Axis Timestamp Timestamp Timestamp Timestamp
Valores Temperatura Umidade Temperatura Umidade
Janela de tempo 60 minutos 60 minutos 60 minutos 60 minutos
Title Temperatura (1 hora) Umidade (1 hora) Temperatura (1 hora) Umidade (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 tela que mostra a definição de gráfico de linhas no dashboard do Power BI.

Adicionar cartões para mostrar dados ambientais

Adicione quatro blocos de cartão para mostrar a temperatura e a umidade mais recente 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 Próximo:

Configuração Cartão nº 1 Cartão nº 2 Cartão nº 3 Cartão nº 4
Dataset 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 Umidade Temperatura Umidade
Title Temperatura (F) Umidade (%) Temperatura (F) Umidade (%)
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 tela que mostra a definição de cartão no dashboard.tings do Power BI.

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

Adicione quatro blocos de cartão para mostrar o comprimento da fila e o tempo de espera para os dois check-outs no repositório. 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 Próximo:

Configuração Cartão nº 1 Cartão nº 2 Cartão nº 3 Cartão nº 4
Dataset Sensor de ocupação Sensor de ocupação Sensor de ocupação Sensor de ocupação
Tipo de visualização Gráfico de colunas clusterizado Gráfico de colunas clusterizado Medidor Medidor
Axis Timestamp Timestamp N/D N/D
Valor Tempo de espera 1 Tempo de espera 2 Comprimento da fila 1 Comprimento da fila 2
Janela de tempo 60 minutos 60 minutos N/D N/D
Title Tempo de espera Tempo de espera Comprimento da fila Comprimento da fila
Subtítulo Fazer check-out 1 Fazer check-out 2 Fazer check-out 1 Fazer check-out 2

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

Captura de tela que mostra o dashboard do Power BI com blocos redimensionados e reorganizados.

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

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

Limpar os recursos

Se tiver concluído o aplicativo IoT Central, você 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, desabilite a exportação de dados que está enviando telemetria para o 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 de Power BI excluindo o espaço de trabalho da página de configurações de Power BI do espaço de trabalho.