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.
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.
Uma assinatura ativa do Azure.
Um hub IoT em sua assinatura.
Um aplicativo cliente que envia dados de temperatura para o hub IoT do Azure. Este tutorial filtra mensagens de dispositivo para nuvem com base em uma propriedade de mensagem chamada
temperatureAlert
. Alguns exemplos que geram mensagens com essa propriedade incluem:- SDK do .NET: SimulatedDevice
- SDK do Java: send-event
- SDK do Node.js: simple_sample_device
- SDK do C: iothub_II_client_shared_sample
- Sem código: simulador online Raspberry Pi
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
No portal do Azure, use a barra de pesquisa para pesquisar e selecionar o Barramento de Serviço.
Selecione Criar para criar um namespace do barramento de serviço.
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. Selecione Examinar + criar.
Selecione Criar.
Aguarde a conclusão da implantação e selecione Ir para o recurso.
Adicionar uma fila do Barramento de Serviço ao namespace
Na página Visão geral do namespace do Barramento de Serviço, selecione Fila.
No campo Nome, forneça um nome para a fila. Aceite os valores padrão para os outros campos e selecione Criar.
No namespace do Barramento de Serviço, selecione Políticas de acesso compartilhado na seção Configurações do menu de recursos.
Selecione a política RootManageSharedAccessKey para abrir seus detalhes.
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
No portal do Azure, vá para o hub IoT.
No menu de recursos, em configurações do Hub, selecione Roteamento de mensagens e então selecione Adicionar.
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. Selecione Criar + avançar.
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.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
No portal do Azure, pesquise e selecione Aplicativos Lógicos.
Selecione Adicionar para criar um novo aplicativo lógico.
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. Selecione Examinar + criar.
Selecione Criar.
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
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.
No designer, role para baixo até Modelos e selecione Aplicativo lógico em branco.
Selecione a guia Todos para mostrar todos os conectores e gatilhos e selecione Barramento de Serviço.
Em Gatilhos, selecione Quando uma ou mais mensagens chegam em uma fila (conclusão automática) .
Crie uma conexão do barramento de serviço.
Forneça um Nome de conexão e cole a Cadeia de conexão copiada do namespace do Barramento de Serviço.
Selecione Criar.
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.
Selecione Salvar no menu do designer de aplicativo lógico para salvar suas alterações.
Configurar a ação do aplicativo lógico
Selecione Nova etapa no designer de aplicativo lógico.
Crie uma conexão de serviço SMTP.
Pesquise e selecione SMTP.
Selecione Enviar email (V3) como a ação desta etapa.
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.
Selecione Criar.
Configure a ação Enviar email.
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.
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.
Clique em Salvar para salvar a conexão SMTP.
(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:
No painel Aplicativo lógico, em Ferramentas de Desenvolvimento, selecione Conexões de API.
Na lista de conexões de API, selecione a conexão SMTP.
No painel Conexão de API SMTP, em Geral, selecione Editar conexão de API.
No painel Editar conexão da API, selecione Habilitar SSL?, insira a senha da sua conta de email novamente e selecione Salvar.
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.
Inicie o aplicativo cliente no seu dispositivo. O código do cliente gera aleatoriamente mensagens de telemetria e define a propriedade
temperatureAlert
comotrue
quando a temperatura excede 30 C.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:
Gerenciar dispositivos com a extensão do Hub IoT do Azure para o Visual Studio Code
Usar o Power BI para visualizar dados de sensor em tempo real de seu hub IoT
Usar o aplicativo Web para visualizar dados de sensor em tempo real do seu hub IoT
Usar os Aplicativos Lógicos para o monitoramento remoto e notificações