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

Use os Aplicativos Lógicos do Azure para monitorar dados telemétricos de dispositivos de entrada do hub IoT e enviar notificações quando forem disparados alertas.

End-to-end diagram

Os Aplicativos Lógicos do Azure podem ajudar você a orquestrar fluxos de trabalho entre serviços locais e de 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 os Aplicativos Lógicos uma solução de IoT ideal para cenários de monitoramento de IoT. Por exemplo, a chegada de dados de um dispositivo em um ponto de extremidade do hub IoT pode iniciar fluxos de trabalho de aplicativo lógico para armazenar os dados em um blob de Armazenamento do Microsoft Azure, enviar alertas por email sobre anomalias de dados, agendar uma visita técnica se um dispositivo relatar uma falha e assim por diante.

Neste tutorial, você executa as seguintes tarefas:

Criar uma fila do Barramento de Serviço. Crie uma rota no hub IoT que envia mensagens para a fila do Barramento de Serviço se as mensagens contiverem leituras de temperatura anômalas. Crie um aplicativo lógico que observe a chegada de mensagens na fila e envie um alerta por email.

O código do cliente em execução no seu dispositivo define uma propriedade de aplicativo, temperatureAlert, em cada mensagem de telemetria que envia para seu hub IoT. Quando o código do cliente detecta 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 apresentadas abaixo, com os dados de telemetria contidos no corpo e a propriedade temperatureAlert 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 você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

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

Criar um namespace e uma fila para o Barramento de Serviço

Criar um namespace do Barramento de Serviço e da fila. Posteriormente neste artigo, você criará uma regra de roteamento no hub IoT para direcionar mensagens contendo um alerta de temperatura para a fila do Barramento de Serviço. Um aplicativo lógico monitora a fila de mensagens de entrada e envia uma notificação para cada alerta.

Criar um namespace do Barramento de Serviço

  1. No portal do Azure, use a barra de pesquisa para pesquisar e selecionar o Barramento de Serviço.

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

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

    Parâmetro Valor
    Assinatura Escolha a mesma assinatura que contém o hub IoT.
    Grupo de recursos Escolha o mesmo grupo de recursos que contém o hub IoT.
    Nome do namespace Forneça um nome para o namespace do barramento de serviço. O namespace deve ser exclusivo em todo o Azure.
    Localidade Escolha o mesmo local usado pelo hub IoT.
    Tipo de preços Selecione Básico na lista suspensa. A camada básica é suficiente para este tutorial.
  4. Selecione Examinar + criar.

  5. Selecione Criar.

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

Adicionar uma fila do Barramento de Serviço ao namespace

  1. Na página Visão geral do namespace do Barramento de Serviço, 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 Barramento de Serviço, 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 usá-lo posteriormente neste tutorial ao configurar o aplicativo lógico.

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

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

Adicionar um ponto de extremidade e uma rota personalizados

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

  2. No menu de recursos, em configurações do Hub, selecione Roteamento de mensagens e então 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 Barramento de Serviço fornecendo as seguintes informações:

    Parâmetro Valor
    Tipo de ponto de extremidade Selecione Fila do Barramento de Serviço.
    Nome do ponto de extremidade Forneça um nome para o novo ponto de extremidade que é mapeado para a fila do Barramento de Serviço.
    Namespace do Barramento de Serviço Use o menu suspenso para selecionar o namespace do Barramento de Serviço criado na seção anterior.
    Fila do Barramento de Serviço 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 Barramento de Serviço:

    Parâmetro Valor
    Nome Forneça um nome exclusivo para a rota.
    Fonte de dados Mantenha a fonte de dados de Mensagem de Telemetria do Dispositivo padrão.
    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 os Aplicativos Lógicos para notificações

Na seção anterior, você configurou o hub IoT para rotear mensagens contendo um alerta de temperatura para a fila do Barramento de Serviço. Agora, você deve configurar um aplicativo lógico para monitorar a fila do Barramento de Serviço e enviar um email sempre que uma mensagem for adicionada à fila.

Criar um aplicativo lógico

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

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

  3. Insira as seguintes informações na guia Básico de Criar aplicativo lógico:

    Parâmetro Valor
    Grupo de recursos Selecione o mesmo grupo de recursos que contém o hub IoT.
    Nome Escolha um nome para o aplicativo lógico.
    Região Escolha uma localização perto de você.
    Tipo de plano Selecione Consumo, o que é suficiente para este tutorial.

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

  4. Selecione Examinar + criar.

  5. Selecione Criar.

  6. Após a conclusão da implantação, selecione Ir para o recurso para abrir o 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 de 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 selecione Barramento de Serviço.

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

  4. Em Gatilhos, selecione Quando uma ou mais mensagens chegam em uma fila (conclusão automática) .

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

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

    1. Forneça um Nome de conexão e cole a Cadeia de conexão copiada do namespace do Barramento de Serviço.

    2. Selecione Criar.

    3. Na próxima tela, use o menu suspenso para selecionar a fila que você criou no namespace do Barramento de Serviço. Em seguida, insira 175 para a 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. Pesquise e selecione SMTP.

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

    2. Selecione Enviar email (V3) como a ação desta etapa.

    3. Forneça um Nome de conexão e 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 as informações de SMTP, dependendo do seu provedor de email:

      Observação

      Talvez seja necessário desabilitar o TLS/SSL para estabelecer a conexão. Se esse for o caso e você quiser reabilitar o TLS depois que a conexão tiver sido estabelecida, confira 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 email.

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

      • De
      • Para
      • 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 email selecionados na etapa anterior:

      Parâmetro Valor
      De O endereço de email que você configurou para a conexão SMTP.
      Para O endereço ou os endereços de email para os quais você deseja que os emails de notificação sejam enviados.
      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. Clique em Salvar para salvar a conexão SMTP.

  5. (Opcional) Se você precisou desabilitar o TLS para estabelecer uma conexão com seu provedor de email e quiser habilitá-lo novamente, 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 da API, selecione Habilitar SSL?, insira a senha da sua conta de email novamente 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 o aplicativo lógico

Comece a enviar mensagens sobre a temperatura a partir 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 propriedade temperatureAlert como true quando a temperatura excede 30 C.

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

    Observação

    O provedor de serviços de email talvez precise verificar a identidade do remetente para garantir que é você que envia o email.

Limpar os recursos

Se você não precisar mais dos recursos que criou neste tutorial, exclua-os junto com o grupo de recursos no portal. Para isso, selecione o grupo de recursos que contém o Hub IoT e clique em Excluir.

Como alternativa, use a CLI:

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

Próximas etapas

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

Para continuar a introdução ao Hub IoT do Azure e explorar todos os outros cenários de IoT estendidos, confira: