Tutorial Node-RED com Raspberry Pi
Uma excelente ferramenta para o seu projeto de automação ou IoT, você pode utilizar o Node-RED tanto em aplicações profissionais como em projetos simples de automação residencial e prototipagem, e neste post você vai ver como instalar e configurar o Node-RED com Raspberry Pi.
O que é o Node-RED
O Node-RED é um sistema de código aberto desenvolvido em Node.js que usa um ambiente de programação gráfica para interligar os blocos (chamados de nós) com códigos predefinidos para realizar tarefas específicas. Também é possível programar funções em Javascript para executar rotinas de acordo com as suas necessidades.
Em um primeiro momento, o Node-RED parece ser apenas uma ferramenta de programação em blocos, mas não se engane, pois ele é muito mais poderoso do que isso.
Com o Node-RED, você pode criar um projeto de IoT (Internet das Coisas) para acionar equipamentos à distância usando MQTT, por exemplo, ou coletar dados de sensores e alimentar automaticamente um banco de dados como o MySQL.
Isso sem contar na integração e comunicação com diferentes tipos de hardware como Arduino, CLP’s e módulos ESP8266, entre outros, além de serviços de email, redes sociais, TCP, UDP, etc. As possibilidades são infinitas.
Neste tutorial vamos mostrar que você não precisa de um hardware “pesado” para rodar o Node-RED e com ele é possível criar projetos avançados baseados nessa plataforma.
Mas e se eu quiser mudar de máquina ou plataforma de hardware, colocando por exemplo o Node-RED na Nuvem ou em uma máquina Windows?
Tudo certo. Os fluxos (vamos chamar de programas, para facilitar?) são armazenados em formato JSON, então basta exportar da sua máquina e transferir para outro equipamento ou até mesmo compartilhar com outras pessoas.
Instalando o Node-RED na Raspberry Pi
A instalação do Node-RED na Raspberry Pi é bem simples e basta você seguir os passos abaixo. Estamos usando uma Raspberry Pi 4 Model B Anatel com 2GB de memória, mas você pode usar esse mesmo procedimento para instalação em outras placas da linha Raspberry.
Para executar os passos, você deve estar com a sua placa configurada e o Sistema Operacional instalado. Se tiver qualquer dúvida na instalação do Raspbian, recomendo conferir o post Raspberry Pi Imager: um jeito fácil de instalar o Raspbian, onde você vai encontrar todas as informações para instalar o Sistema Operacional de uma forma simples e rápida.
Como sempre, vamos começar atualizando o Raspbian usando os comandos:
sudo apt-get update sudo apt-get upgrade
Em seguida, execute o pequeno comando a seguir, que é um script para instalar o Node.js, npm e o Node-RED na Raspberry Pi. O script também permite atualizar o Node-RED quando uma nova versão estiver disponível:
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
Fique atento para responder SIM à pergunta Would you like to install the Pi-specific node? (Você gostaria de instalar o nó específico de Raspberry Pi?) durante o processo de instalação. Vamos precisar desse recurso para os testes.
Para rodar o Node-RED, utilize o comando:
node-red-start
Ou acessando o Menu -> Desenvolvimento -> Node-RED do Raspbian:
Feito isso, o Node-RED já estará rodando na sua placa Raspberry Pi e aguardando conexão.
Executando o Node-RED automaticamente ao iniciar o Raspbian
Dependendo de como você vai usar o Node-RED, pode ser interessante que ele seja executado assim que a sua placa for ligada ou reiniciada.
Para que o serviço rode automaticamente quando o Raspbian for iniciado, execute o comando:
sudo systemctl enable nodered.service
e para desabilitar:
sudo systemctl disable nodered.service
Terminada a instalação, vamos ver agora como acessar a interface do Node-RED.
Acessando o editor do Node-RED pelo browser
O editor do Node-RED é onde a “mágica” acontece. É onde você vai configurar os nós e ligações criando os fluxos para que o seu projeto funcione.
Usando o browser de sua preferência, acesse o endereço IP da sua máquina e a porta 1880, conforme exemplo abaixo. Para descobrir o IP da sua placa Raspberry Pi, use o comando hostname -I.
Se tudo estiver ok, será mostrada a tela principal do editor do Node-RED (clique na imagem abaixo para ampliar):
No lado esquerdo da tela temos os blocos de funções (os nós), que vamos usar para criar a lógica do nosso projeto. Existem blocos para tratar entradas, saídas, funções, rede, armazenamento e muitas outras opções dentro do Node-RED.
Além das funções nativas, podemos também incluir outros tipos de nós dentro do programa, como por exemplo integração com controladores lógicos programáveis (CLP’s), integração com banco de dados MySQL, brokers MQTT, Arduino, ESP8266 e centenas de outras possibilidades. Para explorar essas opções, acesse o menu no canto superior direito do Node-RED, selecione Settings e em seguida Palette.
Circuito de testes Node-Red com Raspberry Pi
Para mostrar como funciona o Node-RED na Raspberry Pi, vamos configurar os blocos para ligar e desligar um led conectado no pino 12 (GPIO18) da placa.
Primeiramente, vamos conectar um led na placa Raspberry Pi, conforme esquema abaixo:
O resistor que eu usei é de 1K ohm, apenas para limitar a corrente, ok? Em uma perna do led temos o GND (negativo, fio preto) e na outra a conexão com o pino 12, que em estado alto (HIGH) vai acender o led.
Acionando a GPIO da Raspberry Pi com Node-RED
Acesse agora a interface do Node-RED e no lado esquerdo procure por GPIO. Você verá dois blocos para uso da GPIO: um para entrada (rpi gpio in), e outro para saída (rpi gpio out).
Arraste o bloco de saída para a área de trabalho na parte central do Editor, depois clique no bloco e selecione o pino 12 – GPIO18, onde está conectado o nosso led. O desenho da GPIO da placa facilita bastante a tarefa:
Para acionar o led, vamos usar dois nós do tipo Inject, um para ligar e outro para desligar o led. Arraste-o da mesma maneira que fizemos anteriormente, conectando os dois na entrada do nó da GPIO:
Vamos agora configurar os dois nós para que um envie um valor True (1) na saída, e o outro envie um valor False (0). Clique no primeiro nó e selecione Boolean com o valor True:
Faça a mesma coisa com o segundo nó, selecionando False. Terminada a configuração é só clicar em Deploy no canto superior direito para que o programa entre em funcionamento:
Pronto. Agora basta clicar nos “botões” como mostrado na animação acima para que o led conectado no pino 12 acenda ou apague.
Como exercício, configure o programa para que o led seja acionado por exemplo com um nó RPI GPIO IN, colocando um push-button em uma das portas da placa.
Gostou? Aguarde os próximos posts usando Node-RED e enquanto isso confira outros artigos com Raspberry Pi aqui mesmo no Arduino e Cia!