Embedded/RaspberryPI

[MQTT] Raspberry Pi에서 Node-RED FLOW 생성하기 2 (influxDB 연결)

변화의 물결1 2024. 1. 9. 00:05

 

 

안녕하세요.

 

 이전 Node-RED Flow에서 MQTT 데이터 받는 것을 확인했다면, 이제 InfluxDB에 데이터를 저장하는 하는 것을 해보려고 합니다. 실제 Query를 작성할 필요 없이 간단하게 노드 연결과 설정을 통해서 간단하게 작업을 할 수 있습니다.


 

1. InfluxDB Node 생성

 

 - Node-RED의 Nodes에서  storage 항목 안에 있는 influxdb out 노드를 선택해서 Flow1 화면에 끌어 놓습니다. 그리고 끌어 놓은 노드를 더블 클릭하여 Properties를 설정합니다.

 

 

 

 

 

2. InfluxDB 노드 설정

 

- Server 항목에 연필아이콘을 클릭해서 새로운 서버를 설정 및 추가합니다.

 

  

 - 이전 내용에서 InfluxDB 정보를 입력합니다. Name에 서버 별칭을 넣고 호스트는 Raspberry Pi에 서비스하고 있는 DB 이기에 127.0.0.1로 하고 Database와 Username, Password는 이전에 생성한 값을 입력합니다. 그리고 Add를 눌러 추가합니다.

 

 

 

 - 나머지 InfluxDB out 노드의 설정을 합니다. Measurement에는 받고자 하는 MQTT의 토픽(Topic)을 넣고, Name에 node별칭을 입력하고 Done을 눌러 설정을 마무리합니다./Sensor/F1/Temper01

 

 

 - 노드가 변경된 것을 확인할 수 있고, MQTT 노드 끝을 끌어다가 InfluxDB 노드에 연결합니다. 그리고 Deploy를 누르면 MQTT로 전달된 값이 InfluxDB로 저장됩니다.

 

  

 

3. 노드 추가

 

 - 센서가 두 개 이상이 된다면 위의 절차를 반복하는 것이 아니라 노드를 복사해서 사용할 수 있습니다. 윈도우를 사용하는 것처럼 원하는 노드가 있는 영역으로 선택한 후 Ctrl + c를 눌러 복사, Ctrl + v를 눌러 붙여 넣기를 할 수 있습니다. 아니면 선택된 노드 중 하나에 오른쪽 버튼을 눌러 복사, 붙여넣기를 할 수도 있습니다.

 

 - 여기서는 MQTT in과 influxdb out 2개 노드를 복사해서 센서2로 만듭니다.

 

 

 

 - 복사된 노드를 더블 클릭해서 Name과 Topic을 변경합니다. 그리고 influxdb out의 Name과 Measurement 내용도 변경합니다.

 

 

 - Deploy를 눌러 서비스를 실행합니다.

 

 

 

4. 데이터 전송 및 저장 확인

 

 - 데이터 전송과 저장확인을 하기 위해서 이전 내용에서 사용했던 2가지 프로그램(MQTT Explorer, InfluxDB Studio)을 사용해서 확인하도록 하겠습니다. 이후 InfluxDB v2로 설치하여 테스트할 때는 터미널창(CLI 상)에서 확인하도록 하겠습니다.

 

- MQTT Explorer에서 가상의 온도값을 Topic에 맞게 발행(PUBLISH) 합니다.

 

 

- 디버그 노드를 연결한 Temper01에 발행한 값이 나타나며,

 

 

 - 가상 온도 값이 발행되었다면 InfluxDB 쪽 노드로도 값이 전달되어 저장됩니다. 확인하기 위해서 InfluxDB Studio를 실행한 후 Raspberry Pi 주소와 Database 명, User Name, Password 입력하고 접속합니다.

 

  

 - sensors Database를 클릭하면 Topic명으로 테이블이 생성된 것을 확인할 수 있습니다. 그리고 테이블을 선택하고 Select Query로 데이터를 확인하면 타임스탬프와 가상 온도 값을 확인할 수 있습니다.

 

 

 

 참고) MQTT 데이터가 JSON으로 들어온다면 json parser 노드를 이용해서 원하는 값만 출력하거나 DB 노드로 연결해서 저장할 수도 있습니다.

 

 

 

감사합니다.

 

  

 

<참고 사이트>

1. SuperHouse #41: Datalogging with MQTT, Node-RED, InfluxDB, and Grafana

https://www.youtube.com/watch?v=ffg3_1AgtyA

 

 

반응형