Node-RED – Sobre a ferramenta e como programar

Node-RED – Sobre a ferramenta e como programar

Olá leitores, na postagem anterior, “O que é Node-RED? Conhecendo e instalando” fizemos a instalação do Node-RED e subimos o ambiente de desenvolvimento do mesmo localmente. Salientamos ainda que a ferramenta de programação Node-RED vem se destacando em um cenário de automatização de tarefas comuns, como o de acender e apagar luzes remotamente, mas não só. Entendemos que por meio de nodes ou nós específicos é possível ler arquivos CSV, escutar eventos http, tcp, websocket, twitter, mqtt, entre outros. Na postagem de hoje exploraremos essa ferramenta e entenderemos mais a fundo o seu funcionamento.

Img-02_node-red_mqtt_iot_embarcados

Em “Conhecendo e instalando o Node-RED” vimos que após executá-lo obteremos o endereço http://127.0.0.1:1880/, digitando-o em nosso navegador poderemos acessar a ferramenta localmente.  Mas se apenas copiarmos o endereço mencionado, observe que não será possível acessar a ferramenta, é preciso chamá-la antes. Assim proceda com os passos a seguir:

PASSO A PASSO | INICIANDO O SERVIDOR NODE_RED

  • 1º PASSO: Execute o Terminal (prompt de comando) como administrador e rode o comando node-red para iniciar o servidor Node-RED. Este comando pode ser chamado tanto Linux como no Windows.
  • 2º PASSO: Tendo iniciado o servidor, teremos a tela como mostra a imagem abaixo, para acessar em seu navegador digite o endereço http://127.0.0.1:1880/ , ou ainda melhor, digite, localhost:1880.

node-v_node-red_node-js_IoT_MQTT_embarcados_06

Se você executou os passos acima com sucesso, chegou a hora de compreendermos este poderoso ambiente de desenvolvimento. É importante lembrarmos que o Node-RED possui um sistema de programação por meio de blocos lógicos, ou sistema de flows – área para onde os blocos lógicos são arrastados e conectados. Estes blocos lógicos são o que chamamos de nodes ou nós. Eles estão localizados a esquerda agrupados em categorias como:

  • NODES DE ENTRADA: Os nodes de entrada são aqueles que leem ou recebem valores externos.

  • NODES DE TRANSIÇÃO: Os nodes de transição são os nodes onde os dados que serão passados aos nodes de saída são trabalhados.
  • NODES DE SAÍDA: São os nodes que respondem de acordo com os dados recebidos, sejam estes dados tratados ou não.

Os nodes estão armazenados a esquerda do Flow, na paletta, agrupados de acordo com suas funções e APIs, como por exemplo, input, output, function, social, storage, analysis, advanced, Raspberry Pi, e o recentemente instalado em nossa postagem anterior, Arduino.

No flow perceba que a conexão entre os nodes é feita pelos data hubs e data wires, é por meio deles que os dados trafegam de um node a outro. É importante ressaltar que é possível trabalhar com vários flows “ao mesmo tempo”, e de acordo com os dados que estão sendo trabalhados, um flow pode sim, interferir no outro. Quando clicamos sobre qualquer um dos nós, uma mensagem acerca do comportamento daquele node será exibida.

Img-07_node-red_mqtt_iot_embarcados

No canto superior a direita está o botão “Deploy” que é o botão por meio do qual o código será compilado, este botão é responsável por iniciar, reiniciar ou atualizar a programação por meio das opções, que podem ser, Full – que implica em um debug em todo o workspace; Modified Flows –  que é um debug apenas no Flow e finalmente Modified Nodes – que é debugar apenas os nodes.

Img-08_node-red_mqtt_iot_embarcados

Ao lado do botão Deploy está o botão de configuração que é representado pelo ícone do “menu sandwich”. O menu de configuração traz opções como a apresentação da barra de ferramentas e do Debug; a possibilidade de importar e exportar Flows externos, ou seja, vindo de outro servidor Node_RED; a possibilidade de pesquisar por Flows;  configuração de nodes específicos, bem como a configuração de Flows e Subflows; Gerenciador de paletta e outras informações.

Na primeira postagem sobre o Node-RED, implementamos o seguinte exemplo, confira novamente o passo a passo dessa implementação:

  • 1º PASSO: na paletta a esquerda clique e arraste no node inject;
  • 2º PASSO: volte a paletta a esquerda, clique e arraste o node de debug;
  • 3º PASSO: Conecte um node ao outro;
  • 4º PASSO; Clique no Deploy para debugar e aguarde a mensagem informando que a execução foi realizada com sucesso;
  • 5º PASSO: Clique em Debug Message para que a mensagem informando data e hora seja exibida;

Inicialmente esse dado de saída estará em formato hexadecimal, é necessário apenas que você clique sobre ele para alterá-lo para um formato que você conseguirá entender.

Img-10_node-red_mqtt_iot_embarcados

Clicando sobre o node timestamp, como mostra o item 2 da imagem abaixo, abrirá um campo de edição do referido node, como mostra o item 3, seguindo até a propriedade repeat um intervalo de um segundo por exemplo, poderá ser definido, assim, a data será atualizada a cada “um segundo”. É simples, mas muito útil em alguma aplicação onde o acompanhamento por tempo é exigido.

Img-09_node-red_mqtt_iot_embarcados

Nesta mesma tela, é possível acessando o menu do Payload, mudar de timestamp para string, e digitar por exemplo, o bom e velho, “olá mundo”, digite sem as aspas, compile clicando no Deploy, e no node timestamp, dê um inject como mostra a imagem abaixo.

Img-11_node-red_mqtt_iot_embarcados

PARA NÃO DESENVOLVEDORES

Clique e arraste o node change da categoria function, este é um node de troca, e seguindo nosso exemplo, vamos trocar a palavra “mundo” do node timestamp para a expressão “bem-vindo a MasterWalker”.

Img-12_mqtt_node-red_iot_embarcados

O que está sendo demostrado na imagem acima, é a solicitação de mudança do Message Payload – tudo que sai dos nodes de saída é considerado um Payload, no caso do nosso exemplo, uma string chamada Payload.

PARA PROGRAMADORES

O mesmo resultado pode ser obtido usando a linguagem JavaScript, para tanto, vamos utilizar o node function. Primeiramente vamos declarar a variável new string, que receberá o msg.payload, chamaremos também a propriedade replace que tem a função de executar a troca, da palavra “mundo” pela expressão “Ben-vindo a MasterWalker”, e retornar o payload. Veja o código de exemplo na imagem abaixo.

var newString = msg.payload.replace(“mundo”, “bem-vindo a MasterWalker“);
return {
payload: newString
};

Img-15_node-red_mqtt_iot_embarcados

O Node-RED é uma ferramenta especialmente desenvolvida para aqueles Makers que não sabem programar, mas como no exemplo acima, ele também atende aos Maker com conhecimento de programação. Conhecer a ferramenta para conseguir extrair o máximo dela é de extrema importância para lançar bases de um conhecimento sólido.

Gostou desta postagem? Então deixa seu comentário, dúvida ou sugestão aí embaixo!

Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop

Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.

Obrigado e até a próxima!

Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.



Postagem anterior:
Próxima postagem:
Postagem feita por

Formada em Engenharia da Computação pela Faculdade Presidente Antônio Carlos, Web Designer, é também colaboradora da plataforma de conteúdo digital Oficina da Net. Tem um livro de ficção publicado como autora independente.

Existe 1 comentário para esta postagem
  1. Junior às 17:49

    Olá, existe como fazer o node red iniciar automaticamente ao ligar um notebook com windows?

    Ele já está instalado e funcionando perfeitamente, mas gostaria de colocar para iniciar automaticamente, sem necessariamente entrar no cmd e digitar node-red

    Agradeço antecipadamente.