Embedded/RaspberryPI

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

변화의 물결1 2024. 1. 6. 16:33

 

안녕하세요.

 

  이전 Node-RED, Grafana 설치에 이어 내용을 진행해 보도록 하겠습니다. Mosquitto, influxDB, Grafana를 설치했습니다.

 

 

 

[MQTT] CM4 RaspberryPi에 Node-RED 설치하기

안녕하세요. Mosquitto, InfluxDB 설치에 이어서 Node-RED를 설치하는 것을 진행해 보았습니다. 특별한 것이 있다기보다는 이렇게 하면 되는구나 확인하면 좋을 것 같습니다. 그리고 Node-RED를 설치하는

remnant24c1.tistory.com

 

  그러나 서로 간의 연동이 필요한데 여기서는  MQTT(Mosquitto)의 데이터를 influxDB 저장하는 프로그램을 작성해보려고 합니다. 그런데 Node-RED를 이용하면 코드 프로그램이라고 하기보다는 블록 프로그램을 하면 된다고 생각하면 편하지 않을까 합니다.


 

1. influxDB 연동을 위한 패키지 설치

 

 - 웹 브라우저에서 Node-RED 주소로 접속합니다. 그리고 계정을 생성했다면 암호를 입력해서 로그인합니다.

   (예 : http://192.168.0.186:1880/ )

 - 좌측상단의 햄버거 버튼을 눌러서 “Manage Palette” 클릭합니다. (Menu - Manage Palette)

 

  

 - Install tab으로 선택하고, influxdb 입력하여 패키지를 검색합니다. 그중에 node-red-contrib-influxdb 선택한 후  Install 버튼을 눌러 설치합니다.

 

 

- Install 눌러 진행을 계속합니다.

 

 

- 추가가 정상적으로 완료되면 상단에 창이 나타납니다,

 

  

 

2. MQTT 노드 연결

 

1) MQTT 노드 추가

 

 - network 항목에 mqtt in 노드를 선택해서 끌어다가 Flow 창에 놓습니다. 그리고 더블 클릭해서 설정창을 실행합니다.

 

 

- 속성(Properties)에서 먼저 Server를 설정해야 합니다. Server 메뉴 오른쪽에 연필 아이콘을 클릭합니다. 그러면 MQTT Broker를 추가하는 설정하는 창으로 이동합니다.  

 

 

- 이전에 설치한 Mosquitto의 정보를 입력합니다. 간단하게 Name을 입력하고 Server 정보를 입력합니다. IP 주소를 입력해도 되고 여기서는 Raspberry Pi에 Mosquitto를 설치했기 때문에 localhost라고 입력했습니다.

 

 

- MQTT(Mosquitto) 계정을 만들었다면 “Security” 탭에 추가로 Username과 Password를 입력 Add 눌러 저장합니다.

 

 

- 노드의 Name과 데이터 Topic 형식을 입력하고 Done을 누릅니다.

   (/Sensor/F1/Temper01, 1층에 있는 온도센서라는 의미로 Topic을 만들어 보았습니다.)

 

 

- 노드 이름이 바뀐 것을 확인할 수 있습니다.

 

 

 

3. MQTT 연결 및 데이터 확인

 

 - 설정이 끝난다면 상단에 “Deploy” 버튼을 누릅니다. Mosquitto Server에 연결이 정상적으로 되었다면 노드 하단에 “connected”라고 나타납니다. ( 아시겠지만, Raspberry Pi에 Mosquitto 서비스가 실행되고 있어야 연결됩니다.)

 

 

 - 데이터가 들어오는 것을 확인하기 위해서 debug 노드를 추가하고 연결합니다. 그리고 Deploy 버튼을 눌러서 디버거 내용을 확인합니다. 디버거 확인은 오른쪽 상단에 벌레버튼을 누르면 확인할 수 있습니다.

 

- 이전내용 혹은 불필요한 내용이 있다면 쓰레기통 버튼을 눌러 메시지창을 깨끗이 합니다.

 

 

- 센서 장비에서 데이터를 송신하면 실제 데이터 수신이 가능한데, 여기서는 MQTT Explorer 프로그램을 사용해서 가상의 데이터를 보내는 것으로 테스트해 보겠습니다.

 

- MQTT Explorer 프로그램을 이용해서 Mosquitto Broker에 접속을 한 다음 Node-RED에 설정한 Topic으로 데이터를 보내면 Node-RED 디버그 창에 데이터가 나타나는 것을 확인할 수 있습니다.

 

 

 

다음 내용으로 InfluxDB와 연동하는 것을 이어서 남기도록 하겠습니다.

 

감사합니다.

 

 

<참고 사이트>

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

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

 

 

반응형