5주차 보고서 - sng-jn/Embedded_System_ GitHub Wiki
Node-RED란
Node-RED는 코드를 직접 많이 쓰지 않아도 시각적으로 프로그램을 만들 수 있는 개발 도구이다.
특히 IoT, 자동화, 데이터 흐름 제어 같은 분야에서 많이 쓰인다.
Node-RED 주요 특징
-
플로우 기반 프로그래밍 - 데이터를 노드 단위로 연결해 시각적으로 프로그램 구성. 복잡한 로직도 블록 연결로 쉽게 표현 가능
-
웹 기반 편집기 - 브라우저에서 실행. 별도 IDE 설치 없이 바로 개발 가능
-
노드 중심 구조 - HTTP, MQTT, 파일, DB, 함수 등 다양한 노드 단위 기능 제공
-
다양한 외부 서비스 연동 - REST API 등 많은 프로토콜과 서비스 연동 가능
Node-RED 설치
터미널을 열고
sudo apt update
sudo apt upgrade -y 입력
중간에 사용자 이름을 입력하고 계속해서 enter 키를 누른다.
Node-RED 설치 완료시 화면
대시보드 설치 과정이다.
이제 Chrome을 키고 각자 라즈베리파이 ip주소를 입력하고 :1880을 붙인다.
다음과 같이 화면이 열린다.
과제 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 실습
설정에서 dht-sensor 노드를 설치한다
왼쪽 창을 내리다 보면 rpi-dht22가 나온다.
다음과 같이 설정한다.
타임스탬프를 끌어온다.
debug1을 끌어오고 다음과 같이 연결한다.
대시보드에 다음과 같은 결과가 나온다.
다음과 같은 구조를 만들고
새로운 debug는 다음과 같이 설정한다.
gauge를 새로 만들고 설정을 다음과 같이 한다.
새로 배포하고 inject 버튼을 누른 결과이다.
function노드를 새로 수정해준다
gauge 노드도 새로 수정한다.
새로 배포하고 inject한 결과이다.
https://github.com/user-attachments/assets/c1d4ac80-7793-482d-ab17-74f1a7b9aa15
실시간으로 온도와 습도에 변화를 준 결과이다.