Tutorial: Monitorar dispositivos IoT e enviar notificações com os Aplicativos Lógicos do Azure

Use os Aplicativos Lógicos do Azure para monitorar a telemetria do dispositivo de entrada do Hub IoT e enviar notificações quando os alertas forem acionados.

End-to-end diagram

As Aplicações Lógicas do Azure podem ajudá-lo a orquestrar fluxos de trabalho em serviços locais e na nuvem, várias empresas e vários protocolos. Um aplicativo lógico começa com um gatilho, que é seguido por uma ou mais ações que podem ser sequenciadas usando controles internos, como condições e iteradores. Essa flexibilidade torna o Logic Apps uma solução de IoT ideal para cenários de monitoramento de IoT. Por exemplo, a chegada de dados de um dispositivo a um ponto de extremidade do Hub IoT pode iniciar fluxos de trabalho de aplicativos lógicos para armazenar os dados em um blob de Armazenamento do Azure, enviar alertas por email para avisar sobre anomalias de dados, agendar uma visita de técnico se um dispositivo relatar uma falha e assim por diante.

Neste tutorial, vai realizar as seguintes tarefas:

Crie uma fila do Service Bus. Crie uma rota em seu hub IoT que envie mensagens para a fila do Service Bus se as mensagens contiverem leituras de temperatura anômalas. Crie um aplicativo lógico que observe as mensagens que chegam na fila e envie um alerta por e-mail.

O código do cliente em execução no dispositivo define uma propriedade de aplicativo, temperatureAlert, em cada mensagem de telemetria enviada ao hub IoT. Quando o código do cliente deteta uma temperatura acima de um determinado limite, ele define essa propriedade como true; caso contrário, ele define a propriedade como false.

As mensagens que chegam ao seu hub IoT são semelhantes às seguintes, com os dados de telemetria contidos no corpo e a temperatureAlert propriedade contida nas propriedades do aplicativo (as propriedades do sistema não são mostradas):

{
  "body": {
    "messageId": 18,
    "deviceId": "Raspberry Pi Web Client",
    "temperature": 27.796111770668457,
    "humidity": 66.77637926438427
  },
  "applicationProperties": {
    "temperatureAlert": "false"
  }
}

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

Prepare os seguintes pré-requisitos antes de iniciar este tutorial.

Criar namespace e fila do Service Bus

Crie um espaço de nomes e uma fila do Service Bus. Mais adiante neste artigo, você cria uma regra de roteamento em seu hub IoT para direcionar mensagens que contêm um alerta de temperatura para a fila do Service Bus. Um aplicativo lógico monitora a fila de mensagens recebidas e envia uma notificação para cada alerta.

Criar um espaço de nomes do Service Bus

  1. No portal do Azure, use a barra de pesquisa para pesquisar e selecionar Service Bus.

  2. Selecione Criar para criar um namespace do barramento de serviço.

  3. No painel Criar namespace, forneça as seguintes informações:

    Parâmetro Value
    Subscrição Escolha a mesma assinatura que contém seu hub IoT.
    Grupo de recursos Escolha o mesmo grupo de recursos que contém seu hub IoT.
    Nome do namespace Forneça um nome para o namespace do barramento de serviço. O namespace deve ser exclusivo no Azure.
    Location Escolha o mesmo local que seu hub IoT usa.
    Escalão de preço Selecione Básico na lista suspensa. A camada Básica é suficiente para este tutorial.
  4. Selecione Rever + criar.

  5. Selecione Criar.

  6. Aguarde a conclusão da implantação e selecione Ir para recurso.

Adicionar uma fila do Service Bus ao namespace

  1. Na página Visão geral do namespace do Service Bus, selecione Fila.

    Screenshot of the namespace overview page to add a queue.

  2. No campo Nome, forneça um nome para a fila. Aceite os valores padrão para os outros campos e selecione Criar.

  3. No namespace do Service Bus, selecione Políticas de acesso compartilhado na seção Configurações do menu de recursos.

  4. Selecione a política RootManageSharedAccessKey para abrir seus detalhes.

  5. Copie o valor da cadeia de conexão primária e salve-o para usar posteriormente neste tutorial ao configurar o aplicativo lógico.

Adicionar um ponto de extremidade personalizado e uma regra de roteamento ao seu hub IoT

Adicione um ponto de extremidade personalizado para a fila do Service Bus ao seu hub IoT. Em seguida, crie uma regra de roteamento de mensagens para direcionar mensagens que contenham um alerta de temperatura para esse ponto de extremidade, onde elas são captadas pelo seu aplicativo lógico. A regra de roteamento usa uma consulta de roteamento, temperatureAlert = "true", para encaminhar mensagens com base no valor da propriedade do aplicativo definida pelo código do temperatureAlert cliente em execução no dispositivo. Para saber mais, consulte Consulta de roteamento de mensagens com base nas propriedades da mensagem.

Adicionar um ponto de extremidade e uma rota personalizados

  1. No portal do Azure, vá para seu hub IoT.

  2. No menu de recursos em Configurações do Hub, selecione Roteamento de mensagens e, em seguida, selecione Adicionar.

    Screenshot that shows location of the Add button, to add a new route in your IoT hub.

  3. Na guia Ponto de Extremidade, crie um ponto de extremidade para sua fila do Service Bus fornecendo as seguintes informações:

    Parâmetro Value
    Tipo de ponto final Selecione Fila do Barramento de Serviço.
    Nome do ponto final Forneça um nome para o novo ponto de extremidade que mapeia para sua fila do Service Bus.
    Namespace do Service Bus Use o menu suspenso para selecionar o namespace do Service Bus que você criou na seção anterior.
    Fila do Service Bus Use o menu suspenso para selecionar a fila do Barramento de Serviço que você criou em seu namespace.

    Screenshot that shows how to create a service bus queue endpoint for your route.

  4. Selecione Criar + avançar.

  5. Na guia Rota, insira as seguintes informações para criar uma rota que aponte para o ponto de extremidade da fila do Service Bus:

    Parâmetro Valor
    Nome Forneça um nome exclusivo para a rota.
    Origem de dados Mantenha a fonte de dados padrão da Mensagem de Telemetria de Dispositivo.
    Consulta de roteamento Insira temperatureAlert = "true" como a cadeia de caracteres de consulta.

    Screenshot that shows adding a route with a query.

  6. Selecione Criar + ignorar enriquecimentos.

Configurar aplicativos lógicos para notificações

Na seção anterior, você configura seu hub IoT para rotear mensagens contendo um alerta de temperatura para a fila do Service Bus. Agora, você configura um aplicativo lógico para monitorar a fila do Service Bus e enviar uma notificação por email sempre que uma mensagem for adicionada à fila.

Criar uma aplicação lógica

  1. No portal do Azure, procure e selecione Aplicativos Lógicos.

  2. Selecione Adicionar para criar um novo aplicativo lógico.

  3. Insira as seguintes informações na guia Noções básicas de Criar aplicativo lógico:

    Parâmetro Value
    Grupo de recursos Selecione o mesmo grupo de recursos que contém seu hub IoT.
    Nome Forneça um nome para seu aplicativo lógico.
    Região Selecione um local perto de si.
    Tipo de plano Selecione Consumo, que é suficiente para este tutorial.

    Screenshot that shows creating a logic app in the Azure portal.

  4. Selecione Rever + criar.

  5. Selecione Criar.

  6. Após a conclusão da implantação, selecione Ir para o recurso para abrir seu aplicativo lógico.

Configurar o gatilho do aplicativo lógico

  1. Na página de recursos do aplicativo lógico no portal do Azure, abra o designer do aplicativo lógico na seção Ferramentas de Desenvolvimento do menu de recursos.

  2. No designer, role para baixo até Modelos e selecione Aplicativo lógico em branco.

    Screenshot that shows selecting the Blank Logic App template.

  3. Selecione a guia Todos para mostrar todos os conectores e gatilhos e, em seguida, selecione Barramento de Serviço.

    Select Service Bus to start creating your logic app in the Azure portal.

  4. Em Disparadores, selecione Quando uma ou mais mensagens chegarem em uma fila (preenchimento automático).

    Select the trigger for your logic app in the Azure portal.

  5. Crie uma conexão de barramento de serviço.

    1. Forneça um nome de conexão e, em seguida, cole a cadeia de conexão que você copiou do namespace do Service Bus.

    2. Selecione Criar.

    3. Na próxima tela, use o menu suspenso para selecionar a fila que você criou no namespace do Service Bus. Em seguida, digite 175 para Contagem máxima de mensagens.

      Screenshot that shows configuring queue settings in the Logic app designer.

  6. Selecione Salvar no menu do designer de aplicativo lógico para salvar suas alterações.

Configurar a ação do aplicativo lógico

  1. Selecione Nova etapa no designer de aplicativo lógico.

  2. Crie uma conexão de serviço SMTP.

    1. Procure e selecione SMTP.

      Screenshot that shows selecting an SMTP connection in the logic app designer.

    2. Selecione Enviar e-mail (V3) como a ação para esta etapa.

    3. Forneça um nome de conexão e, em seguida, preencha o restante dos campos com as informações SMTP da conta de email que você deseja usar para enviar as mensagens de notificação.

      Use os links a seguir para encontrar suas informações SMTP, dependendo do seu provedor de email:

      Nota

      Talvez seja necessário desativar o TLS/SSL para estabelecer a conexão. Se esse for o caso e você quiser reativar o TLS depois que a conexão for estabelecida, consulte a etapa opcional no final desta seção.

      Screenshot that shows configuring the SMTP connection settings in the logic app designer.

    4. Selecione Criar.

  3. Configure a ação Enviar e-mail .

    1. Na lista suspensa Adicionar novo parâmetro na etapa Enviar e-mail, selecione os seguintes parâmetros:

      • De
      • De
      • Assunto
      • Corpo

      Clique ou toque em qualquer lugar na tela para fechar a caixa de seleção.

      Choose SMTP connection email fields to include in email.

    2. Insira as seguintes informações para os parâmetros de e-mail selecionados na etapa anterior:

      Parâmetro Value
      De O endereço de email que você configurou para a conexão SMTP.
      De O endereço ou endereços de e-mail para onde você deseja enviar e-mails de notificação.
      Assunto High temperature detected.
      Corpo High temperature detected.

      Se a caixa de diálogo Adicionar conteúdo dinâmico for aberta, selecione Ocultar para fechá-la. Você não usa conteúdo dinâmico neste tutorial.

      Provide details for SMTP connection email fields.

  4. Selecione Salvar para salvar a conexão SMTP.

  5. (Opcional) Se você teve que desativar o TLS para estabelecer uma conexão com seu provedor de e-mail e deseja reativá-lo, siga estas etapas:

    1. No painel Aplicativo lógico, em Ferramentas de Desenvolvimento, selecione Conexões de API.

    2. Na lista de conexões de API, selecione a conexão SMTP.

    3. No painel Conexão de API smtp, em Geral, selecione Editar conexão de API.

    4. No painel Editar Conexão de API, selecione Habilitar SSL?, redigite a senha da sua conta de email e selecione Salvar.

      Edit SMTP API connection in your logic app in the Azure portal.

Seu aplicativo lógico agora está pronto para processar alertas de temperatura da fila do Barramento de Serviço e enviar notificações para sua conta de email.

Testar a aplicação lógica

Comece a enviar mensagens de temperatura do seu dispositivo IoT para testar o pipeline de monitoramento e notificação.

  1. Inicie o aplicativo cliente no seu dispositivo. O código do cliente gera aleatoriamente mensagens de telemetria e define a temperatureAlert propriedade para true quando a temperatura exceder 30 C.

  2. Você deve começar a receber notificações por e-mail enviadas pelo aplicativo lógico.

    Nota

    O seu fornecedor de serviços de correio eletrónico poderá ter de verificar a identidade do remetente para se certificar de que é você quem envia o e-mail.

Clean up resources (Limpar recursos)

Se você não precisar mais dos recursos criados neste tutorial, exclua-os e o grupo de recursos no portal. Para fazer isso, selecione o grupo de recursos que contém seu hub IoT e selecione Excluir.

Em alternativa, utilize a CLI:

# Delete your resource group and its contents
az group delete --name <RESOURCE_GROUP_NAME>

Próximos passos

Neste tutorial, você criou um aplicativo lógico que conecta seu hub IoT e sua caixa de correio para monitoramento de temperatura e notificações.

Para continuar a começar a usar o Hub IoT do Azure e explorar todos os cenários de IoT estendidos, consulte o seguinte: