Chapter 03. 라즈베리 파이에서 Node Red를 이용하여 온습도값 가져오기 - Marvic1130/EmbeddedSystem_Class GitHub Wiki

라즈베리 파이에서 Node Red를 이용하여 온습도값 가져오기 (5주차)

Node Red란

-wikipedia- Node-RED(노드 레드)는 NodeJs 기반으로 하드웨어 장치들, API, 온라인 서비스를 사물인터넷의 일부로 와이어링(배선화)시키기 위해 본래 IBM이 개발한 시각 프로그래밍을 위한 플로 기반 개발 도구이다.

Node Red는 드래그엔 드롭 방식으로 간단하게 서버를 구현할 수 있다.

KakaoTalk_Photo_2022-10-07-18-02-24

Node Red 사이트


Node Red 설치하기

Node Red를 설치하기 위해서 먼저 라즈베리파이 라이브러리를 최신화 해야한다.

sudo apt update

sudo apt upgrade

업데이트가 완료되면 아래의 명령어를 입력하여 Node Red를 설치한다.

이때 Node js도 같이 설치가 된다.

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

명령어를 실행하면 아래와 같은 질문이 두번 나오는데 모두 'y'를 입력한다.

Are you really sure you want to do this ? [y/N] ?

Would you like to install the Pi-specific nodes ? [y/N] ?

그러면 아래와 같은 창이 뜨며 다운로드를 진행한다.

다운로드가 완료되면 node-red 명령어를 입력하여 Node Red를 실행한다.

중간에 [info] Server now running at http://127.0.0.1:1880/라는 안내 메세지가 출력되는데 http://127.0.0.1:1880/으로 접속하는것은 라즈베리파이 내부 브라우저를 이용할 때 사용하는 주소이고, 이번 실습에서는 외부 컴퓨터에서 접속하므로 브라우저에 http://라즈베리파이IP:1880을 입력하여 라즈베리파이에서 동작하고있는 node red 플로우에 접속한다.

Ex: http://1920.168.0.45:1880


Node Red에서 온습도값 출력하기

Node Red에서 DHT11의 온습도값을 가져오기 위해 DHT 팔랫트를 설치해야한다.

오른쪽 메뉴버튼을 클릭한후 팔랫트 관리를 누른다.

설치 가능한 노드에서 node-red-contrib-dht-sensor 설치한다.

메뉴버튼에서 가져오기를 누른다.

Chapter 05의 flows1.json파일을 복사해서 붙여넣는다.

배포하기 버튼을 누른다.

타임스탬프 옆에 있는 버튼을 누르고 오른쪽 배포하기 버튼 밑에 있는 디버그 탭을 누르면 결과값을 확인할 수 있다.

만약 값이 둘다 0으로 나온다면 문제는 2가지의 경우가 있다.

  1. Pin numbering 오류
  2. Pin number 오류

위의 문제는 rpi-dht 노드를 클릭해서 수정하면 된다.

현재 플로우에서는 타임스탬프 inject처리를 실행할때만 값을 가져오는데, 타임스탬프 노드를 클릭하여 반복처리를 하면 일정 시간마다 값을 가져올 수 있다.


온도와 습도 따로 출력하기

위의 실습을 따라하면 아래와 같이 출력된다.

여기서 payload는 온도, humidity는 습도값인데 이것을 따로 출력해볼 예정이다.

먼저 왼쪽에 디버그 노드를 드래그 엔 드랍한다.

debug2 노드를 클릭한 후 대상에 msg.payload를 msg.humidity로 변경한다.

그리고 편의를 위해 노드의 이름을 변경한다.

그리고 노드를 연결한 후 배포하고 실행하면 다음과 같은 결과물을 확인할 수 있다.

라즈베리파이 온습도값 Node Red Dashboard에 출력하기