Node-RED #3: Receba alertas climáticos pelo WhatsApp

Faça um sistema para alertas climáticos utilizando o Node-RED e receba os avisos diretamente em seu WhatsApp.

Por Mário Pessanha | 09 de janeiro de 2023

Esta publicação faz parte de uma sequência de publicações onde aprenderemos sobre a ferramenta Node-RED, que utiliza de programação visual para realizar as mais diversas tarefas, falamos mais sobre isso na publicação anterior que você pode acompanhar clicando no link.

Sumário

Introdução

Neste exemplo faremos um flow capaz de monitorar o clima na cidade a sua escolha e a partir dos dados climáticos emitir alertas na sua saída, dentre as várias opções de saída, utilizaremos como exemplo mensagens automáticas através do WhatsApp. 

Para isso serão necessários: 

– Node de clima “openweathermap” que busca os dados do openweathermap.org 

– Node de função para checagem do clima especificado

– Node do WhatsApp para enviar uma mensagem quando o clima for o especificado

 

Acessando o serviço do Open Weather Map

Primeiramente precisamos uma chave API no OpenWeatherMap. OpenWeatherMap oferece um excelente serviço que disponibiliza informações climáticas de vários locais do mundo. Acessaremos https://openweathermap.org/appid e seguiremos as instruções.

Página do WeatherMap API

Clique no “here” conforme a imagem acima para realizar o cadastro no site. E preencha o formulário a seguir e depois confirme em seu e-mail.

Formulário de cadastro no WeatherMap

Após feito o cadastro, entre no seu perfil e selecione a opção “My API keys” e copie a chave que fica dentro do campo “Key”.

 
Chave API do WeatherMap

Adicionando novos nodes

No Node-RED adicionaremos o node do WeatherMap, para adicionar esse ou qualquer outro node, basta localizar na barra superior da interface do Node-RED o menu de três barras e selecionar a opção “Manage pallete” para abrir a aba de busca de nodes.

Node-RED: Manage palette

Na tela “Pallete” que acabamos de abrir, selecione a aba “Install’ e digite openweathermap no campo de busca “search modules”. Identifique o node “node-red-node-openweathermap”, clique em “install” e confirme a instalação.

Adicionando o node openweathermap

Criando os Flows de alerta de clima

Agora é possível localizar o node adicionado no painel esquerdo. Em um novo flow arraste e solte o node “openweathermap in” com um duplo clique no node a sua tela de edição aparece e nela colaremos a chave API que copiamos anteriormente e faça as configurações, escolhendo a língua, clima atual ou previsão para 5 dias, país e cidade. Clique em “Done” para confirmar as configurações.

Inserir Chave API, língua e Cidade

Para conferir o progresso até aqui, basta conectar o openweathermap node a um debug node e clicar em “Deploy”, se tudo ocorrer bem o msg.payload apresentará o objeto JSON parecido com os dados a seguir.

{
“id”:800,
“weather”:”Clear”,
“detail”:”céu limpo”,
“icon”:”01d”,
“tempk”:302.18,
“tempc”:29,
“temp_maxc”:29,
“temp_minc”:29,
“humidity”:54,
“pressure”:1012,
“maxtemp”:302.18,
“mintemp”:302.18,
“windspeed”:4.12,
“winddirection”:50,
“location”:”Campos dos Goytacazes”,
“sunrise”:1672733205,
“sunset”:1672781521,
“clouds”:0,
“description”:”The weather in Campos dos Goytacazes at coordinates: -21.75, -41.3 is Clear (céu limpo).”
}

Código 1 – msg.payload do node openweathermap em formato JSON 

Como pode perceber, o node entrega várias informações sobre o clima do local escolhido. Neste exemplo utilizaremos só o campo “weather” que diz se o céu está limpo ou com chuva.

Para isso será necessário utilizar um function node, arraste e solte um do painel da direita dentro do flow e conecte a saído do openweathermap node na entra do function node e dê um duplo clique no function node.

Na aba “On Message” cole o seguinte código:

if (msg.payload.weather === Clear) {

    msg.payload = Céu limpo hoje

    return msg;

}

return null;

Código 2 – Function node “Se Tempo Limpo”

O código em javascript acima verifica se o conteúdo weather referente ao clima é igual a palavra “Clear”, o que significa que o tempo está limpo. Se a verificação for verdadeira, o conteúdo do msg.playload  passa a ser a frase: “Céu limpo hoje”, se a verificação for falsa o código retorna uma mensagem nula. O Node-RED ignora mensagens nulas.

Editando o function node adicionando o código 2

Recebendo seu alerta climático no whatsapp

Agora você poderá fazer várias coisas, por exemplo ligar a mensagem a um node de e-mail, twitter e outros. Neste tutorial utilizaremos o WhatsApp como forma de receber os alertas criados. Para isso é necessário que antes de instalar o WhatsApp node você envie uma mensagem por WhatsApp para o número do node através do WhatsApp que você deseja receber os alertas. Basta enviar a mensagem “I allow callmebot to send me messages” para o número +34644537849 autorizando bot para o envio de mensagens, após alguns minutos você receberá a chave API para utilizar no node do WhatsApp. 

O whatsapp node, “node-red-contrib-whatsapp-cmb” deverá ser instalado da mesma forma que o openweathermap node.

Arraste e solte o Send Message node do WhatsApp no flow, de um duplo clique para configurar. É necessário criar um conta primeiro clicando no lápis a direita do campo account. Insira o nome, o número do WhatsApp que vai receber os alertas com o código do país, seguido pelo DDD, exemplo: +55 11 000000000 e por fim a sua chave API recebida pelo WhatsApp. Após concluída a conta do node, clique em Update e mude o tipo da mensagem para msg.payload, clique em Deploy e aguarde algum segundos a chegada da mensagem do bot em seu WhatsApp.

Editando o Send Message node

Pronto! Fizemos nosso primeiro sistema de alerta utilizando Node-RED. Caso queira interromper as mensagens enquanto trabalha em funcionalidades diferentes, basta enviar o comando Stop para o bot através do próprio WhatsApp, ou desconectar/deletar o WhatsApp node e clicar em “Deploy” ou simplesmente encerrar o Node-RED em sua máquina.

Conclusão

Começamos a nos aprofundar nas ferramentas e possibilidades proporcionadas pelo Node-RED voltadas para IoT. Aprendemos a receber uma entrada de dados através de serviços públicos, a instalar novos nodes e a fazer com que os dados recebidos sejam manipulados e então levados ao mundo real.

 

Referência:

https://nodered.org/

Você pode gostar de:

Deixe um comentário

CAPTCHA


SIGA NOSSAS REDES SOCIAIS

NOVIDADES DO SITE

A Idelica é a nossa plataforma educacional que tem como objetivo ajudar no desenvolvimento de estudantes, técnicos, engenheiros e profissionais do ambiente industrial. Através de nossos cursos, animações, jogos e comunidade conseguimos fornecer um melhor aprendizado para o aluno.
Com o objetivo de agregar valor à área de “Fluid Power” fornecemos conteúdos de hidráulica, pneumática e mecatrônica incluindo artigos técnicos, tutoriais e vídeos educativos.

FIQUE ATUALIZADO