카테고리 없음

Node-RED란

ㅈ현 2022. 7. 2. 02:16

Node-Red에 대해 간단히 알아보고, 설치(docker) 및 간단한 실습에 대한 포스팅이다.

 

Node-RED

Built on Node.js The light-weight runtime is built on Node.js, taking full advantage of its event-driven, non-blocking model. This makes it ideal to run at the edge of the network on low-cost hardware such as the Raspberry Pi as well as in the cloud. With

nodered.org



노드레드란 웹을 이용하여 잘 코딩된 모듈들(내가 직접 만들거나 남이 만든걸 사용하거나)을 통해 내가 원하는 플로우(파이프라인)를 만들어 사용할 수 있는 툴이다.

Node-Red 설치

docker run -it -p 1880:1880 -v {host_bind_path}:/data --name mynodered nodered/node-red


docker 컨테이너를 사용하여 실행시킬 수 있다.

 

이후 컨테이너가 실행되면 localhost:1880으로 접속하여 노드레드 서비스를 확인할 수 있다.


메인화면

 

처음 접속하게 되면 다음과 같은 화면을 볼 수 있을것이다.  

 

왼쪽 사이드바는 노드들이 있는 라이브러리이고, 오른쪽 창이 플로우를 만들 수 있는 공간이다.

 

노드

사진과 같이 노드들이 존재하고, 이런 노드들을 연결하여 일종의 flow를 만들게 된다.
flow에서 데이터는 msg라는 객체로 전달되게 된다.

 

간단한 예시로 타임스탬프를 디버깅 창에 출력하는 flow다.

 

해당 flow의 결과

 

첫 flow 만들기

위의 예시로 사용된 타임스탬프를 출력하는 flow를 만들어 본다.

 

먼저 타임스탬프를 flow로 보내주는 Inject노드에 대해 알아본다.

Inject 노드 edit 화면


Inject노드는 flow를 시작하는 노드로써, 버튼을 눌러 trigger하거나, 특정한 시간에 실행되도록 설정할 수 있다.
또한 msg의 필드로 여러가지 값을 넘겨줄 수 있는 흐름의 시작점이다.

 

해당 예제에서는 msg의 payload 필드로 timestamp값을 넘겨주게 되며, 반복은 실행하지 않는다.

 

 

다음은 debug노드다.

debug노드의 edit 화면


debug노드는 현재 msg를 출력하여 어떻게 진행이 되가고 있는지를 알 수 있게 해준다.
해당 예제에서는 msg의 payload라는 필드를 디버그창에 출력하는 예제로써 동작하게 된다.

 

이후 Inject의  Output과, Debug의 Input점을 연결해준다.

 

마지막으로 우측 상단의 배포하기 버튼(컨트롤 또는 커맨드 + D)을 눌러 해당 flow를 배포시킨다.

배포버튼

 

이제 Inject노드의 파란 버튼을 누르게 되면 flow를 타고 msg가 전달되어 debug노드로 전달되게 되고, 디버그 창에 타임스탬프가 찍히게 된다.

flow 결과 화면