Usando o Node-Red para ler portas do Arduino 5

No artigo Primeiros Passos com o Node-Red e Arduino Uno foi possível apresentar o Node-RED e também demonstrar como o leitor deve proceder para dar os primeiros passos com o uso da ferramenta citada. Além disso salientou-se a interação do mesmo com um Arduino UNO visando exemplificar um tipo de desenvolvimento de aplicação que pode ser realizada.

 

INTERNA

 

O objetivo deste artigo consiste em continuar apresentando a elaboração de aplicações do Node-RED em conjunto com um Arduino UNO. Entretanto, espera-se que após a leitura deste conteúdo, o leitor esteja apto a realizar procedimentos de aquisição de dados tanto por parte das entradas digitais como também através das entradas analógicas.

LEITURA DE UMA ENTRADA DIGITAL ATRAVÉS DE UMA APLICAÇÃO NODE-RED

A partir deste momento, será demonstrado como o leitor deve proceder para realizar a criação de uma série de aplicações, onde a primeira delas consiste na criação do fluxo necessário para possibilitar a aquisição de um sinal em uma das portas digitais do  Arduino UNO. Antes de prosseguir com os passos abaixo, lembre-se de que é necessário gravar o código escrito no exemplo StandardFirmata, no Arduino (este código aparece como um exemplo de aplicação da biblioteca Firmata).

O primeiro passo para atingir o objetivo desejado consiste em arrastar o nó de entrada do Arduino (apresentado na figura abaixo) da aba de nós para o ambiente de desenvolvimento.

botãoent

Após o procedimento anterior, a forma do em questão irá mudar automaticamente e passará a ter o formato apresentado na figura abaixo.

botaoent2

O segundo passo consiste em definir em qual porta COM (neste caso COM3) está conectado o Arduino UNO, o tipo do pino que será utilizado (se é digital ou analógico) e o número do pino que fará o papel de porta de entrada para as informações necessárias. Para configurar estes parâmetros, basta clicar duas vezes sobre o nó e defini-los conforme a figura a seguir.

Definição porta Arduino

Para testar se os dados estão sendo adquiridos de forma correta, deve-se utilizar um nó de depuramento (ou debug), portanto, arrasta-se o mesmo da aba de nós para a aba de desenvolvimento. no debug Assim como anteriormente, este bloco será modificado ao ser inserido na aba de desenvolvimento, no entanto, note que, desta vez ocorre algo semelhante ao que aconteceu com o nó inject (este é um nó de entrada de dados e está presente no primeiro artigo referente a este conteúdo), ou seja, o nó passou a apresentar um botão (localizado à sua direita) , que por sua vez, quando ativado, faz com que os valores que entram no mesmo sejam apresentados no painel de depuração conforme será apresentado no decorrer desta publicação.

debug aba O próximo passo para possibilitar que um sinal possa ser lido através pino de entrada digital 9 consiste em criar o fluxo adequado a partir da ligação dos nós apresentados até este momento.

botão1

Após a construção do fluxo desejado, deve-se clicar no botão Deploy e observar os valores lidos através do pino citado anteriormente, no painel de depuração. Note que, os valores são constantemente lidos e apresentados pelo Node-RED.

debug

LEITURA DE UMA ENTRADA ANALÓGICA ATRAVÉS DE UMA APLICAÇÃO NODE-RED

Assim como realizado anteriormente, neste momento, será apresentada a maneira de como deve-se proceder para realizar a leitura de uma informação a partir das entradas analógicas do Arduino UNO. O procedimento a ser realizado é praticamente igual ao demonstrado no item anterior, no entanto, deve-se utilizar a seguinte configuração para o nó de entrada do Arduino.

botao6 node-red Note que, como esperado, ao clicar no botão Deploy, uma série de valores obtidos na entrada digital A0 será mostrada no painel de depuração (ou de debug)

debug3

MODIFICANDO A CAPACIDADE DE TRANSMISSÃO DAS INFORMAÇÕES AO LONGO DE UM FLUXO

Como o leitor teve a oportunidade de perceber, os valores obtidos através da entrada analógica a partir do nó de entrada utilizado são sempre passados para o próximo bloco, de modo que, isto pode comprometer algumas aplicações que necessitam de um processamento mais rápido, portanto, para que esta transmissão de dados não ocorra de maneira desordenada, pode-se utilizar um bloco de processamento chamado Rbe para que os valores só sejam propagados para os próximos nós caso sofram alguma alteração. O fluxo em questão deve ter esta forma:

botão2 Para que seja possível concretizar o objetivo citado, deve-se selecionar a opção block unless value changes nas propriedades do bloco Rbe, para que assim, um determinado dado seja propagado apenas no caso de ter sido alterado.

blocoRBE Observe que após a adição do bloco citado no fluxo existente, os valores somente são propagados caso possuam magnitudes diferentes das anteriores (este recurso também pode ser utilizado na realização de acionamentos, para que determinado dispositivo receba somente informações quando estas forem diversas ao longo do tempo).

debug4

Este foi mais um conteúdo que preparamos com bastante cuidado para você. Gostou? Deixe seu comentário logo abaixo.

Faça seu comentário

Acesse sua conta e participe

5 Comentários

  1. Boa tarde, poderia me ajudar numa questão, vou fazer uma lógica de contagem e eu quero que este valor seja sempre lido no Nodered e este valor seja acumulativo , qual a biblioteca que eu uso no arduíno uno pra trabalhar com o Nodered ?

  2. Parabéns pelo trabalho!!! Muito didático. E pode ter certeza que além de estar contribuindo com a difusão do conhecimento vc está mudando vidas. Meu TCC estava travado e esse material está me ajudando muito.

    Pedro Henrique Cavalcante Noleto
    1. Pedro,

      Que bom que você curtiu o conteúdo!! Ficamos extremamente felizes *—*

      Abraços!
      Diogo – Equipe MakerHero

  3. O node-red será que pode ser considerado um sistema SCADA? Não acho nada na internet a respeito, mas acho que seria uma ótima ferramenta. Será que tem potencialidades para isto?

Trackbacks and Pingbacks