Introdução
Neste tutorial, vamos explorar o mundo da Internet das Coisas (IoT) utilizando Node-RED, uma ferramenta poderosa que permite a criação de aplicações IoT através de fluxos visuais. Em vez de codificar tudo, o Node-RED utiliza um modelo baseado em arrastar e soltar para conectar dispositivos e serviços. Neste artigo, abordaremos como integrar diferentes dispositivos IoT e serviços da web, utilizando APIs de maneira eficiente. Vamos detalhar cada etapa, desde a instalação do Node-RED até a criação de fluxos que interagem com dispositivos físicos e serviços em nuvem, proporcionando uma experiência prática e acessível para desenvolvedores e entusiastas de IoT.
Etapas
Instalação do Node-RED
Primeiramente, você precisa instalar o Node-RED em sua máquina. Node-RED é uma aplicação Node.js, portanto, certifique-se de que o Node.js está instalado. Utilize o comando abaixo para instalar o Node-RED globalmente.
commands# Verificar se o Node.js está instalado
node -v
npm -v
# Instalar o Node-RED globalmente
npm install -g node-redIniciando o Node-RED
Depois de instalado, inicie o Node-RED utilizando o comando abaixo. O aplicativo iniciará e você poderá acessá-lo pelo navegador na URL http://localhost:1880.
commands# Iniciar o Node-RED
node-redCriando o Primeiro Fluxo
Uma vez que o Node-RED estiver em execução, acesse a interface web. Drag and drop um nó ‘inject’ e um nó ‘debug’ em sua área de trabalho e conecte-os. Esse fluxo simples permite que você envie uma mensagem que será exibida no painel de debugg no lado direito.
imageA parsial do fluxo de exemplo no Node-RED, apresentando um nó 'inject' conectado a um nó 'debug'.
commands# No Node-RED, use o seguinte JSON para importar o fluxo:
{
"nodes": [
{"id":"inject1","type":"inject","name":"Injetar Mensagem","topic":"","payload":"Hello World","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":"0.1","x":100,"y":100,"wires":[["debug1"]]},
{"id":"debug1","type":"debug","name":"Debug","active":true,"tosidebar":true,"console":false,"tostatement":false,"tosequence":false,"x":300,"y":100,"wires":[]}
]
}Integrando uma API Externa
Para integrar uma API, adicione um nó ‘http request’ ao seu fluxo. Configure o nó para fazer uma requisição Get para uma API pública, como a API de previsão do tempo. Conecte o nó ‘inject’ a esse nó e também um nó ‘debug’ para visualizar a resposta.
imageFluxo mostrando um nó 'http request' conectado a um 'inject' e a um 'debug'.
commands# Para importar um JSON que faz uma requisição a uma API, use este exemplo:
{
"nodes": [
{"id":"inject2","type":"inject","name":"Pedir Previsão","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":"0.1","x":100,"y":200,"wires":[["http_request"]]},
{"id":"http_request","type":"http request","name":"Request","method":"GET","ret":"txt","url":"https://api.openweathermap.org/data/2.5/weather?q=London&appid=YOUR_API_KEY","x":300,"y":200,"wires":[["debug2"]]},
{"id":"debug2","type":"debug","name":"Debug API Result","active":true,"tosidebar":true,"console":false,"tostatement":false,"tosequence":false,"x":500,"y":200,"wires":[]}
]
}Interagindo com Dispositivos IoT
Agora vamos adicionar um nó para controlar um dispositivo IoT, como um LED conectado ao Raspberry Pi. Utilize o nó ‘rpi-gpio out’ para definir como o LED será acionado. Conecte um nó ‘inject’ que permita ativar e desativar o LED.
imageUm fluxograma mostrando um nó 'rpi-gpio out' controlando um LED.
commands# Para importar um fluxo que controla um LED, use este JSON:
{
"nodes": [
{"id":"inject3","type":"inject","name":"Ligar LED","topic":"","payload":"1","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":"0.1","x":100,"y":300,"wires":[["rpi_gpio_out"]]},
{"id":"rpi_gpio_out","type":"rpi-gpio out","name":"LED","pin":"11","set":"","level":"0","x":300,"y":300,"wires":[]}
]
}Testando o Fluxo de IoT
Agora que você configurou seu fluxo, clique no botão no nó ‘inject’ para acionar o dispositivo ou fazer a requisição da API. Confira a saída no painel ‘debug’ para garantir que tudo está funcionando corretamente.
commands# Para testar, clique no botão do nó 'inject' e observe os logs no painel de debug.
Exportando e Compartilhando o Fluxo
Você pode exportar seu fluxo para compartilhar com outros. No Node-RED, clique no ícone do menu no canto superior direito, escolha ‘Exportar’ e copie o JSON gerado. Este pode ser importado por outros usuários em suas instâncias do Node-RED.
commands# Para exportar, clique no menu e escolha 'Exportar -> Todo o fluxo' e copie o JSON.
Conclusão
Neste tutorial, exploramos os conceitos fundamentais do Node-RED, integrando dispositivos físicos e serviços da web através de fluxos visuais. Aprendemos a instalar o Node-RED, a criar fluxos simples e a interagir com APIs externas e dispositivos IoT. Com esta base, você está pronto para avançar em projetos complexos de IoT, aproveitando a flexibilidade e a facilidade de uso que o Node-RED oferece. A prática constante irá aprimorar suas habilidades e ampliar as possibilidades dentro do mundo da Internet das Coisas.