Node-RED: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Linha 134: Linha 134:
===Acionamento de led===
===Acionamento de led===


;Hardware: Para acionamento de um '''led''', ou outro dispositivo comandado por '''saída digital''', conectar o dispositivo na '''porta GPIO''' escolhida, utilizando um resistor limitador de corrente no caso do led.  
;Hardware:  
*Para acionamento de um '''led''', ou outro dispositivo comandado por '''saída digital''', conectar o dispositivo na '''porta GPIO''' escolhida, utilizando um resistor limitador de corrente no caso do led.  


;Node-RED: Utilizar blocos '''inject''' para enviar os comandos ao '''led''', um configurado para enviar o comando numérico 0 e o outro 1, pois as saídas digitais aceitam somente comandos numéricos 0 e 1.
;Node-RED:  
:Conectar ambos os blocos '''inject''' em um bloco '''rpi gpio out''' e configurar com a porta na qual o led for conectado.
*Utilizar blocos '''inject''' para enviar os comandos ao '''led''', um configurado para enviar o comando numérico 0 e o outro 1, pois as saídas digitais aceitam somente comandos numéricos 0 e 1.
*Conectar ambos os blocos '''inject''' em um bloco '''rpi gpio out''' e configurar com a porta na qual o led for conectado.


==Referências==
==Referências==

Edição das 21h08min de 23 de julho de 2020

Node-RED

O Node-RED é uma ferramenta de programação Low Code, voltada para Internet das Coisas, que permite interligar dispositivos físicos, ambientes de desenvolvimento de software e serviços em nuvem.

Site: knolleary: Words and things by Nick O'Leary

Instalação

Instalação no Ubuntu

Instalando com npm (comando do node.js)[1]

sudo npm install -g --unsafe-perm node-red

Instalação com Docker

Necessita instalação prévia do Docker [2].

docker run -it -p 1880:1880 --name mynodered nodered/node-red
Detalhando o comando [2]:
docker run              - run this container... initially building locally if necessary
-it                     - attach a terminal session so we can see what is going on
-p 1880:1880            - connect local port 1880 to the exposed internal port 1880
--name mynodered        - give this machine a friendly local name
nodered/node-red        - the image to base it one
Navegar normalmente:
http://{host-ip}:1880
Para sair do terminal Docker:
Ctrl-p Ctrl-q - the container will keep running in the background.
Voltar ao terminal:
docker attach mynodered
Parar o contêiner com Node-Red
docker stop mynodered
Reiniciar o contêiner:
docker start mynodered

Instalação na AWS Amazon EC2 com Ubuntu

Procedimentos [3]:

  1. Criar conta na Amazom AWS.
  2. Logar no console AWS EC2
  3. Lançar uma instância
  4. Escolher uma máquina Ubuntu Server
  5. Selecionar o tipo de instância: t2.micro
  6. Na aba 'Configure Security Group', adicionar nova regra ‘Custom TCP Rule’ para acesso pela porta 1880
  7. Lançar a máquina.
  8. O console solicitará as chaves SSH. Deve-se criar um novo par de chaves, a qual deve ser baixada e salva com nome próprio e extensão .pem.
  9. Conectar-se a máquina usando SSH com o nome público DNS fornecido e a opção -i com a chave. Exemplo:
ssh -i ~/AWS-key.pem ubuntu@ec2-3-128-18-159.us-east-2.compute.amazonaws.com
No exemplo o IP público da máquina é: 3.128.18.159 .
Instalação no Node-RED
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs build-essential
sudo npm install -g --unsafe-perm node-red

Rodar Node-RED:

node-rede -v

Instalação de módulos no node-red

Menu
Manage palette -> Install -> Search
Módulos sugeridos para instalação para trabalho com IoT
Arduino -> node-red-node-arduino
Firebase -> node-red-contrib-firebase
Mosca -> node-red-contrib-mqtt-broker

Interação do Node_RED e Arduino

Referência: [4].

Para interação com Arduíno o módulo correspondente deve ser instalado no Node-RED:

node-red-node-arduino

O Node-RED se comunica com o Arduíno através da serial USB utilizando o protocolo Firmata. Para tal a biblioteca Firmata deve ser instalada no Arduíno e deve ser carregado o sketch StandardFirmata.

Capacidades
O Arduíno suporta os seguintes modos de operação:
  • Entradas e saídas digitais: Valores 0 ou 1
  • Entradas analógicas: Valores 0 a 1023
  • Saídas PWM (analógicas): Valores 0 a 255
  • Saídas servo: 0 a 180

Nós: arduino in / arduino out

No Node-RED os nós arduino in e arduino out permitem interação com um Arduíno conectado a serial e rodando o sketch StandardFirmata.

arduino in
Permite selecionar entradas digitais ou analógicas. Os valores são lidos em msg.payload e o número do pino como msg.topic.
Quando uma entrada do Arduíno é modificada o Node-RED é imediatamente notificado.
  • Este processo funciona bem para as entradas digitais.
  • Para as entradas analógicas podem ser obtidos muitos valores, os quais devem ser manuseados. Por exemplo, pode-se usar um atraso para ajustar um tempo de amostragem e descartar valores intermediários. Outra opção é utilizar um nó rbe (Report by Exception node) e configurar para reportar mudanças somente a partir de um dado montante de variação.
arduino out
Permite selecionar saídas digitais, analógicas (PWM) ou tipo servo. Espera valores numéricos inteiros em msg.payload para transferir ao Arduíno.

Interação do Node_RED e Firebase

Permite a interação do Node-RED com a plataforma de computação em nuvem Firebase mantida pela Google. Para tal o módulo correspondente deve ser instalado no Node-RED:

node-red-contrib-firebase

Dados manuseados pelo Node-RED podem ser salvos no Firebase Realtime database, o qual implementa um banco de dados NoSQL que fornece as aplicações clientes atualizações em tempo real (“realtimeupdates) quando os dados mudam na base de dados. As operações básicas no banco de dados são:

  • set() - Salva dado em uma referência específica, substituindo o valor anterior.
  • push() - Adiciona dado em uma lista de valores.
  • once() - Lê dado de uma referência e acompanha qualquer mudança no mesmo.

Nós para interação com Firebase

firebase modify
Permite modificar ou adicionar dados no banco de dados do Firebase.

Interação do Node-RED e Raspberry Pi

Com um Raspberry Pi rodando o Node-RED e fácil de interagir com sensores e atuadores conectados as portas GPIO através da Web.

Este laboratório foi inspirado no post [5], que mostra coletar dados de umidade e temperatura através do sensor DHT11 conectados a um Raspberry Pi através do Node-RED.

Instalação do Node-RED
Pode ser instalado diretamente pela interface gráfica do Raspberry Pi no caminho:
Preferências/Recommended Software/Programming/Node-RED
ou via terminal de comandos, como sugerido em [6]
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
este comando instala o Node.js, npm e Node-RED no Raspberry Pi e também pode ser usado para realizar a atualização de uma instalação existente.
Inicialização do Node-RED
O Node-RED é iniciado no Raspberry Pi diretamente pelo terminal com o comando:
node-red-start
e pode ser parado com CTRL-C.
Instalação do módulo Raspberry Pi no Node-RED
Acessar menu de comandos no canto superior direito e procurar e instalar node-red:
Manage Palette/Install/node-red
Acesso via Web do Node-RED
Através de um navegador pode-se acessar diretamente o Node-RED rodando no Raspberry Pi através da URL:
<Endereço IP>:1880

Acionamento de led

Hardware
  • Para acionamento de um led, ou outro dispositivo comandado por saída digital, conectar o dispositivo na porta GPIO escolhida, utilizando um resistor limitador de corrente no caso do led.
Node-RED
  • Utilizar blocos inject para enviar os comandos ao led, um configurado para enviar o comando numérico 0 e o outro 1, pois as saídas digitais aceitam somente comandos numéricos 0 e 1.
  • Conectar ambos os blocos inject em um bloco rpi gpio out e configurar com a porta na qual o led for conectado.

Referências

Evandro.cantu (discussão) 13h47min de 1 de junho de 2020 (-03)