5주차 보고서 - sng-jn/Embedded_System_ GitHub Wiki

Node-RED란


Node-RED는 코드를 직접 많이 쓰지 않아도 시각적으로 프로그램을 만들 수 있는 개발 도구이다.

특히 IoT, 자동화, 데이터 흐름 제어 같은 분야에서 많이 쓰인다.

Node-RED 주요 특징

  1. 플로우 기반 프로그래밍 - 데이터를 노드 단위로 연결해 시각적으로 프로그램 구성. 복잡한 로직도 블록 연결로 쉽게 표현 가능

  2. 웹 기반 편집기 - 브라우저에서 실행. 별도 IDE 설치 없이 바로 개발 가능

  3. 노드 중심 구조 - HTTP, MQTT, 파일, DB, 함수 등 다양한 노드 단위 기능 제공

  4. 다양한 외부 서비스 연동 - REST API 등 많은 프로토콜과 서비스 연동 가능


Node-RED 설치

터미널을 열고

sudo apt update

sudo apt upgrade -y 입력

중간에 사용자 이름을 입력하고 계속해서 enter 키를 누른다.

화면 캡처 2025-10-08 210940

Node-RED 설치 완료시 화면

화면 캡처 2025-10-08 215813

대시보드 설치 과정이다.

이제 Chrome을 키고 각자 라즈베리파이 ip주소를 입력하고 :1880을 붙인다.

화면 캡처 2025-10-08 213328

다음과 같이 화면이 열린다.


과제 1: 웹 API를 이용한 실시간 날씨 정보 표시기

OpenWeatherMap에 들어가 api 키를 받아와야 한다.

function으로 api url을 생성해야 한다

api 관련 function 코드

데이터 가공 function

결과 (http://라즈베리파이ip:1880/ui) 입력


과제 2: 사용자 지정 타이머 및 카운트 다운 알림 시스템

[ui_numeric] → [change] → (flow에 시간 저장) ↓ [ui_button] → [function] → [delay] → [change] → [ui_toast]

function에 코드 작성

결과


과제 3: 텍스트 문장 자동 대문자 변환 및 문자열 필터링

function에 코드 입력

결과


과제 4: DHT11 실습

화면 캡처 2025-10-08 214431

설정에서 dht-sensor 노드를 설치한다

화면 캡처 2025-10-08 214536

왼쪽 창을 내리다 보면 rpi-dht22가 나온다.

화면 캡처 2025-10-08 214715

다음과 같이 설정한다.

화면 캡처 2025-10-08 214957

타임스탬프를 끌어온다.

화면 캡처 2025-10-08 215245

debug1을 끌어오고 다음과 같이 연결한다.

화면 캡처 2025-10-11 123007

대시보드에 다음과 같은 결과가 나온다.

화면 캡처 2025-10-11 123503

다음과 같은 구조를 만들고

화면 캡처 2025-10-11 124653

새로운 debug는 다음과 같이 설정한다.

화면 캡처 2025-10-11 130216

gauge를 새로 만들고 설정을 다음과 같이 한다.

화면 캡처 2025-10-11 130250

새로 배포하고 inject 버튼을 누른 결과이다.

화면 캡처 2025-10-11 132527

function노드를 새로 수정해준다

화면 캡처 2025-10-11 132548

gauge 노드도 새로 수정한다.

화면 캡처 2025-10-11 132604

새로 배포하고 inject한 결과이다.

https://github.com/user-attachments/assets/c1d4ac80-7793-482d-ab17-74f1a7b9aa15

실시간으로 온도와 습도에 변화를 준 결과이다.