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

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Linha 5: Linha 5:
Site: [https://knolleary.net  knolleary:  Words and things by Nick O'Leary]
Site: [https://knolleary.net  knolleary:  Words and things by Nick O'Leary]


==Instalação==
==Instalação no Ubuntu==
 
===Instalação no Ubuntu===


Instalando com '''npm''' (comando do '''node.js''')<ref>https://nodered.org/docs/getting-started/local</ref>
Instalando com '''npm''' (comando do '''node.js''')<ref>https://nodered.org/docs/getting-started/local</ref>
Linha 13: Linha 11:
  sudo npm install -g --unsafe-perm node-red
  sudo npm install -g --unsafe-perm node-red


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


;Menu
;Menu
Linha 22: Linha 20:
  Firebase -> node-red-contrib-firebase
  Firebase -> node-red-contrib-firebase


===Instalação com Docker===
==Instalação com Docker==


Necessita instalação prévia do '''[[Docker]]''' <ref name=Docker>https://nodered.org/docs/getting-started/docker</ref>.  
Necessita instalação prévia do '''[[Docker]]''' <ref name=Docker>https://nodered.org/docs/getting-started/docker</ref>.  
Linha 45: Linha 43:
  docker start node-red
  docker start node-red


====Preservação dos Dados do Usuário====
===Preservação dos Dados do Usuário===


Com o '''Node-RED''' rodando em um contêiner '''Docker''', caso o contêiner seja destruído os '''dados''' com os fluxos construídos pelo usuário serão perdidos. Para preservar estes dados é possível montar um diretório em um local externo ao contêiner <ref name=Docker>https://nodered.org/docs/getting-started/docker</ref>.
Com o '''Node-RED''' rodando em um contêiner '''Docker''', caso o contêiner seja destruído os '''dados''' com os fluxos construídos pelo usuário serão perdidos. Para preservar estes dados é possível montar um diretório em um local externo ao contêiner <ref name=Docker>https://nodered.org/docs/getting-started/docker</ref>.
Linha 62: Linha 60:
  nodered/node-red        - the image to base it one
  nodered/node-red        - the image to base it one


====Acesso as portas seriais USB====
===Acesso as portas seriais USB===


Referência <ref>https://www.losant.com/blog/how-to-access-serial-devices-in-docker</ref>
Referência <ref>https://www.losant.com/blog/how-to-access-serial-devices-in-docker</ref>
Linha 89: Linha 87:
  docker run -it -p 1880:1880 --device=/dev/ttyUSB0:/dev/ttyUSB0 --user=root --name node-red nodered/node-red
  docker run -it -p 1880:1880 --device=/dev/ttyUSB0:/dev/ttyUSB0 --user=root --name node-red nodered/node-red


===Instalação na AWS Amazon EC2 com Ubuntu===
==Instalação na AWS Amazon EC2 com Ubuntu==


Procedimentos <ref>https://nodered.org/docs/getting-started/aws#running-on-elastic-beanstalk-with-high-availabilty</ref>:
Procedimentos <ref>https://nodered.org/docs/getting-started/aws#running-on-elastic-beanstalk-with-high-availabilty</ref>:
Linha 111: Linha 109:
Rodar Node-RED:
Rodar Node-RED:
  node-rede -v
  node-rede -v
==Laboratórios com Node-RED==
;[[Laboratorios: Node-RED|Laboratórios: Node-RED]]


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

Edição das 19h03min de 27 de abril de 2021

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 no Ubuntu

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

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

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, node-red-node-serialport
Firebase -> node-red-contrib-firebase

Instalação com Docker

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

docker run -it -p 1880:1880 --name node-red 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 node-red         - 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 node-red
Parar o contêiner com Node-Red
docker stop node-red
Reiniciar o contêiner:
docker start node-red

Preservação dos Dados do Usuário

Com o Node-RED rodando em um contêiner Docker, caso o contêiner seja destruído os dados com os fluxos construídos pelo usuário serão perdidos. Para preservar estes dados é possível montar um diretório em um local externo ao contêiner [2].

Dentro do contêiner Node-RED usa o diretório /data para armazenar os dados do usuário. Para salvar este diretório em um local externo pode-se utilizar o comando abaixo. Neste caso, para acesso a este diretório externo, o usuário do Node-RED dentro do contêiner (default UID 1000) deve ter o mesmo UID do usuário no hospedeiro.

docker run -d -u 1000:1000 -p 1880:1880 -v /home/$USER/node-red-backup:/data --name node-red nodered/node-red
Detalhando o comando:
docker run              - run this container... initially building locally if necessary
-d                      - run in background and print container ID
-u                      - uid 
-p 1880:1880            - connect local port 1880 to the exposed internal port 1880
-v                      - bind mount volume
--name node-red         - give this machine a friendly local name
nodered/node-red        - the image to base it one

Acesso as portas seriais USB

Referência [3]

O acesso as portas seriais USB é necessário para integração com Arduíno, ou outros dispositivos, via serial usando o módulo node-red-node-serialport.

Por padrão as portas seriais são montadas pelo root, portanto com acesso privilegiado, e são efêmeras, existindo apenas quando o dispositivo está plugado no computador.

Para que outros usuários, e no caso o Docker, possam acessar as portas devemos incluir uma regra para acesso ao udev, criando um arquivo no diretório:

/etc/udev/rules.d/99-serial.rules

e adicionar as linhas:

KERNEL=="ttyUSB[0-9]*",MODE="0666" 
KERNEL=="ttyACM[0-9]*",MODE="0666" 

Para que o Docker possa acessar os dispositivos conectados a serial, devemos montar todo o diretório /dev quando rodarmos o Docker, usando o parâmetro

-v /dev:/dev

e atribuir permissão para acesso com

--privileged

O comando completo para rodar o Docker é:

docker run -it -p 1880:1880 -v /dev:/dev --privileged --name node-red nodered/node-red
Dispositivo permanentemente conectado
Caso o dispositivo fique permanentemente conectado pode-se explicitar a porta serial usada pelo dispositivo. Por exemplo, o Arduíno UNO usa a porta /dev/ttyACM0:
docker run -it -p 1880:1880 --device=/dev/ttyACM0:/dev/ttyACM0 --user=root --name node-red nodered/node-red
ou, para outro dispositivo, deve-se verificar a porta utilizada, por exemplo:
docker run -it -p 1880:1880 --device=/dev/ttyUSB0:/dev/ttyUSB0 --user=root --name node-red nodered/node-red

Instalação na AWS Amazon EC2 com Ubuntu

Procedimentos [4]:

  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

Laboratórios com Node-RED

Laboratórios: Node-RED

Referências

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