16주차 스마트디바이스 (Node‐Red) - jungjaeyeol/jyeol03 GitHub Wiki
🌐 Node-RED란?
Node-RED는 비전문가도 손쉽게 IoT 및 이벤트 기반 애플리케이션을 개발할 수 있게 해주는 시각적 프로그래밍 도구입니다.
JavaScript 기반의 Node.js 위에서 작동하며, 웹 브라우저에서 블록을 연결하는 방식으로 플로우(Flow)를 구성할 수 있습니다.
🧠 주요 특징
특징 | 설명 |
---|---|
플로우 기반 개발 | 드래그 앤 드롭 방식으로 노드를 연결하여 데이터 흐름(Flow)을 구성 |
Node.js 기반 | 자바스크립트 및 다양한 npm 패키지를 활용 가능 |
웹 인터페이스 | 웹 브라우저에서 플로우를 시각적으로 설계 가능 |
확장성 | 다양한 노드 라이브러리를 통해 외부 API, 센서, 데이터베이스와 연동 |
IoT 친화적 | MQTT, HTTP, WebSocket 등 IoT 프로토콜을 기본 지원 |
📦 구성 요소
1. 노드 (Node)
- 기능 단위 블록
- 예:
inject
,http request
,mqtt
,function
,debug
등
2. 플로우 (Flow)
- 노드들이 연결되어 하나의 처리 흐름을 구성
3. 대시보드 (Dashboard)
- 시각적으로 결과를 표현하거나 사용자 입력을 받을 수 있는 UI 구성
🚀 사용 예시
[센서 데이터 수집] → [필터링/가공] → [DB 저장 or 사용자 알림]
-
온도센서를 통해 수집된 데이터가 기준치 이상이면 SMS 전송
-
트위터 API와 연동하여 키워드 알림
-
스마트 홈 장치 제어
Node-RED 실습
-
Node.js 홈페이지에 접속 후 윈도우 or 맥 다운로드 및 설치
-
cmd 실행 후
npm install -g --unsafe-perm node-red
입력 후node-red
입력
- 위 사진처럼 나올경우
http://127.0.0.1:1880/
주소ctrl + 좌클릭
으로 접속
1. 년도 월일 출력
-
위 사진처럼
inject, debug
연결 -
결과
2. 안녕하세요 출력
-
inject
를 "안녕하세요"로 변경 -
출력 결과
3. 인사토픽 출력
-
다음과 같이
inject, debug
를 변경 -
출력 결과
4. 동시 출력
-
debug
를 2개 추가 한 후 각각msg.topic, msg._misgid
로 설정한다 -
출력 결과
5. 존댓말 인사 출력
-
function 노드 추가,
inject - function - debug
순서로 연결한다 -
function 노드는
msg.payload = msg.payload + "하십니까"
추가하기 -
inject 노드는
msg.payload = 안녕! , msg.topic = 반말
추가하기 -
출력 결과
6. 합산하기
-
inject 노드는
msg.payload = (Number) 3 , msg.topic = 숫자 메시지 노드
추가하기 -
function 노드는
msg.payload = msg.payload + 3
추가하기 -
결과 출력