Raspberry Pi와 Node-RED
Raspberry Pi에서 Node-RED 시작하기
Node-RED를 이용한 메세지 전송 예
Raspberry Pi와 Node-RED 관련 페이지 보기
- Node-RED 은?
- Node-RED는 하드웨어 장치, API 및 온라인 서비스를 GUI 환경에서 쉽게 연결하도록 하는 프로그래밍 도구이다.
- Node-RED는 팔레트의 노드를 사용하여 흐름을 쉽게 연결할 수있는 브라우저 기반 편집기를 제공한다.
- 텍스트 편집기를 사용하여 편집기 내에서 JavaScript 함수를 만들 수 있다.
- 재 사용을 위해 유용한 함수, 템플릿 또는 흐름을 라이브러리(Built-in library)로 저장할 수 있다.
- Node.js를 기반으로 하여 event-driven, non-blocking 모델의 장점을 최대한 활용 할 수 있다. 따라서 Raspberry Pi와 같은 저비용 하드웨어의 네트워크 환경에서 실행하는데 적합하다.
- Node의 패키지 저장소에있는 225,000 개 이상의 모듈을 통해 팔레트 노드 범위를 쉽게 확장하여 새로운 기능을 추가 할 수 있다.
- Node-RED에서 생성 된 흐름(Flows)은 다른 사람들과 쉽게 공유(쉽게 가져오고 내보낼 수있는)할 수 있게 JSON을 사용하여 저장된다.
- Node-RED 설치하기
- Raspberry Pi 터미널을(Putty)에서 다음 명령을 실행하여 Node-RED를 설치한다.
- Raspberry Pi에서 Node-RED를 Service로 시작 또는 정지 시키는 명령은 아래와 같다.
- Raspberry Pi에서 Node-RED를 Service로 시작하기
- Raspberry Pi에서 Node-RED 실행을 정지 시키기는 명령
- log File 보기 명령
- Raspberry Pi 시작시 자동으로 Node-RED를 시작 시키는 명령은 아래와 같다.
- Raspberry Pi 다시 시작하여 자동으로 Node-RED를 시작 시키기 위한 명령은 아래와 같다.
- Raspberry Pi 자동 시작을 중지하는 명령은 아래와 같다.
- 정상 설치 여부를 확인하기
- Node-RED GUI 요약
- 팔레트(Palette): 윗 그림에서 가장 왼쪽 창으로 플로우(Flow)에서 사용할 수 있는 모든 가능한 Node 목록을 기능에 따라 구분하여 보여 준다.
- 작업공간(Workspace): 윗 그림에서 중앙에 있는 창으로 여기에 Nodes를 배치하고 연결하여 플로우(Flow)를 생성한다.
- 정보 사이드 바(Information sidebar): 윗 그림에서 가장 좌쪽 창으로 플로우(Flow)에 대한 정보가 표시된다. 플로우(Flow) 와 선택된 Node의 개요 정보와 선택된 항목의 세부 정보가 표시된다. 또한 Debug Console 등 이용자의 선택에 따라 필요한 정보를 볼 수 있다.
참고자료: "nodered.org"
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
node-red-start
주: Node-RED를 "node-red-start" 명령으로 시작한 경우, 명령이 실행된 다음 log 메세지가 출력된 상태이기 때문에 터미널 명령 대기 상태로 가기 위하여는 Crl C를 입력하여야 한다.
node-red-stop
node-red-log
sudo systemctl enable nodered.service
sudo reboot
sudo systemctl enable nodered.service
Web browser(PC 등)에서 다음과 같이 Node-RED가 설치된 Raspberry Pi에 접속(Port 번호: 1880)한다.
http://Raspberry_Pi_IP_ADDRESS:1880
예: 192.168.0.18:1880
Node-RED가 정상으로 실행되고 있는 경우의 Web browser 예
- inject node와 debug node를 사용한 메세지 전송과 수신 예
- 작업공간에 아래 그림과 같이 inject node와 debug node를 배치(팔레트에서 Node를 선택하여 작업공간으로 Drag 함)하고 연결한다.
- 작업공간의 inject node를 Double-click하면 아래와 같이 inject node 편집창이 열린다. 이 창에서 msg.payload 속성을 string으로 선택하고 편집창에 "Hello! Node-RE"를 입력한다.
- 위쪽 상단의 "배포하기" 버튼을 클릭하여 배포 가능하게 저장한다. "배포하기" 가 성공적으로 실행되면 inject node의 Trigger button이 활성화 된다.
- 우측 "정보 사이드 바"에서 "디버그 메세지" 창을 선택한다.
- inject node의 "Trigger button"을 클릭하면 inject node에 저장된 "Hello! Node-RE" 메세지가 디버그 노드로 전송되어 위 예와 같이 디버거 창에 출력된다.
inject node와 debug node를 배치하고 연결한 예
inject node 편집 예