Node-RED : Ferramentas e suas funcionalidades

Node-RED : Ferramentas e suas funcionalidades

Nas duas primeiras postagens desta série, “O que é Node-RED? Conhecendo e instalando” e “Node-RED – Sobre a ferramenta e como programar”, apresentamos o conceito que abarca a automação de dispositivos e produtos onde inúmeras possibilidades podem ser exploradas. E ainda, como tal automação nos permite executar a distância tarefas simples que antes exigiam a presença de alguém para efetuá-las.

capa-03_node-red_mqtt_iot_embarcados

Apresentamos o Node-RED como uma ferramenta visual de código aberto, construída sobre o Node.js. Mencionamos que o Node-Red foi inicialmente desenvolvido para conectar dispositivos de IoT, porém hoje conecta também hardwares, APIs e web services, assim como, por meio dos nodes ou nós, lê arquivos CSV, escuta eventos http, tcp, websocket, twitter, mqtt entre outras possibilidades. Compreendemos ainda conceitos acerca do funcionamento do Node-RED, bem como nodes de entrada, de transição e de saída.

PRINCIPAIS FERRAMENTAS DO NODE-RED

Nesta postagem entenderemos como se desenvolve no Flow’s e como poderemos fazer uma tratativa desse Flow; conheceremos o comportamento do sub-Flow’s e sua integração com os flow’s. Compreenderemos o Import/Exports de nodes para cada Flow, inclua-se aí o mesmo Flow; e ainda, como buscar por nodes dentro do Flow  e como essa busca pode facilitar o projeto através da ferramenta search Flow e por fim, abordaremos as configurações, por meio do Configuration Node.

O primeiro passo como já vimos é iniciar o servidor Node-RED como já mostramos nas postagens anterior, para isso siga os passos abaixo:

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 quanto 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

Tendo executado os passos acima corretamente e subido o servidor com sucesso vamos prosseguir com o assunto da nossa postagem, as principais ferramentas do Node-RED.

FLOW’s

O Flow é a workspace, ou seja, é a área de trabalho principal, como mostra a primeira imagem abaixo, local onde os fluxos são desenvolvidos, para onde os nós são arrastados.

Img-02_node-v_node-red_node-js_IoT_MQTT_embarcados

Dê um duplo click sobre o nome da área de trabalho “Flow 1″ para abrir a área de edição do FlowEdit flow: Flow 1, edite-a atribuindo ao Flow um nome de preferência ligado ao seu projeto.

Observe se o status mostra a ferramenta habilitada, se não estiver habilitada, habilite-a. Recomenda-se a descrição da função que estiver sendo criada, caso haja vários integrantes em seu projetos, esta descrição poderá ser muito útil para o entendimento do mesmo por todos os membros da equipe. Faça isso em Description, e pronto, você já pode fechar a área de edição em Done.

Img-03_node-v_node-red_node-js_IoT_MQTT_embarcados

Após fechar a janela de edição do Flow, observe que a direita no campo de informação todas as informações estarão atualizadas.

Já mostramos como fazer a conversão de data e hora utilizando os nodes, timestamp, function e debug, vimos como é feita a tratativa da informação que será buscada no payload após conectá-los. Vejamos uma outra forma de fazê-lo. Clique sobre o node function para abrir a tela de edição, declare uma variável var date que receberá uma new Date(msg.payload) que receberá o parâmetro msg.payload.

Na sequência indicaremos que a informação de data e hora deverá ser convertida para o formato padrão, assim, o que temos que fazer é atribuir ao já declarado msg.payload o date.toString(); e assim será retornado por meio do método return msg a informação desejada. Feche, dê um deploy e veja o resultado clicando no timestamp.

Img-04_node-v_node-red_node-js_IoT_MQTT_embarcados

Para trabalharmos com o subflow, selecione um node dando sobre ele um duplo clique, em nosso exemplo, selecionaremos o node function e atribua um nome a ele “conversão DATA/HORA”.

Img-06_node-v_node-red_node-js_IoT_MQTT_embarcados

O próximo passo é enviar o node selecionado para dentro do subflow, clique no menu lateral a direita > subflows > Selection to subflow, note o que acontecerá ao node após enviá-lo para o subflow.

Img-07_node-v_node-red_node-js_IoT_MQTT_embarcados

No node do subflow agora com o nome de subflow2, altere novamente o nome para “função de conversão” ou qualquer outro nome desejado, e clique em Edite Flow Template. Teremos agora duas áreas para trabalhar. E na área de trabalho do referido subflow, observe que será possível adicionar quantas saídas (outputs) e entradas (inputs) desejar.

Img-08_node-v_node-red_node-js_IoT_MQTT_embarcados

Img-09_node-v_node-red_node-js_IoT_MQTT_embarcados

Assim, por exemplo, poderemos dar uma tratativa de conversão data e hora para vários objetos distintos.

Img-10_node-v_node-red_node-js_IoT_MQTT_embarcados

Podemos criar uma segundo flow clicando no sinal de (+), renomeá-lo e reaproveitar o subflow criado que ficará alocado na paletta a esquerda, e não precisaremos então “recodificar” a função. Dentro deste contexto podemos também exportar o código criado.

IMPORT/EXPORT

Para exportar um código criado, depois de selecioná-lo clique no menu lateral a direita e vá em Export > Library, defina então o nome da pasta e o nome do arquivo respectivamente.

Img-12_node-v_node-red_node-js_IoT_MQTT_embarcados

Img-13_node-v_node-red_node-js_IoT_MQTT_embarcados

Recupere o arquivo exportado clicando no menu lateral a direita > Import > Library > conv (nome da pasta) > DataHora (nome do arquivo).

Mas e se eu desejar exportar todo o meu código para um amigo, por exemplo? Neste caso, selecione todos os blocos, procedendo como já estamos habituados, menu lateral a direita > Export > Clipboard. Um arquivo JSON será criado.

Img-14_node-v_node-red_node-js_IoT_MQTT_embarcados

Antes de clicar em Export to Clipboard copie (CTRL + C) o arquivo JSON selecionado e então clique em Export to Clipboard. Em Import > Clipboard cole o arquivo copiado, selecione o Import to > new flow onde uma nova área de trabalho será criada. Note que o interessante aqui é que você poderá copiar o arquivo em algum bloco de nota para então fazer a tratativa.

SEARCH FLOW

A pesquisa de node é fácil e intuitiva e igualmente útil em caso de um projeto com um grande número de nodes. Ao pesquisar pelo node Inject, observe que o resultado da pesquisa retorna todos os injects em uso no projeto, assim, fica fácil buscar pelo node desejado, aliás, essa busca poderá ser feita também pelo nome dado ao node ou a função.

Img-16_node-v_node-red_node-js_IoT_MQTT_embarcados

CONFIGURATION NODE

O configuration node é usado por exemplo quando há a necessidade de autenticação, considere como exemplo o node do Twitter, dê um duplo clique para abrir a tela de edição do Twitter node, clique sobre o “Add new twitter-credentials…” para requerer a autenticação e autorizar o aplicativo. Assim, qualquer tipo de conexão que exige login e senha ficará armazenado no campo das credenciais, o mesmo vale para o Arduino, cuja conexão se dá por portas.

IMPORTANTE

O Twitter tem implementado desde julho deste ano uma série de mudanças em sua política para desenvolvedores, portanto, para estabelecer a conexão do node-red com o Twitter, o que antes era um processo simples, agora exige uma autorização.  Você precisará de credenciais de desenvolvedor do Twitter válidas na forma de um conjunto de tokens / chaves de consumidor e de acesso. Este conjunto de chaves de acesso deverá ser inserido na tela “Edition twitter-credentials node” do Node-RED.

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. Marcos às 11:03

    Estou desenvolvendo um aplicativo com MQTT e NodeRed. Estou recebendo dados no formato abaixo:

    23/02/2021 10:22:05node: ca72055d.1e0388
    Multimedidor_01 : msg.payload : array[1]
    array[1]
    0: object
    variable: “data”
    time: “2021-02-23 13:22:00”
    metadata: object
    U12: 0
    U23: 0
    U31: 0
    U1: 116.66
    U2: 116.61
    U3: 116.79
    I1: 0
    I2: 0
    I3: 0
    FIEC: 59.92
    CE: 1

    Como consigo resgatar o valor contido na variável U1, no caso “116,66”, por exemplo, para que condiga exibir numa Dashboard?

    Antecipadamente, obrigado pelo retorno