안녕하세요.
이제 MQTT 전달로 전달한 데이터를 InfluxDB로 저장까지 했다면 결과 값을 멋있게 보이게 하는 것이 남아있습니다. 그것을 하기 위해서는 이전 내용에서 Grafana를 이미 설치하였습니다.
그리고 값을 확인하기 위해서 mosquitto, influxdb, Node-RED가 작동하고 있어야 합니다.
1. Grafana 연결
- Grafana를 설치한 Raspberry Pi IP 주소와 기본 포트(3000)로 접속하면 로그인하라고 창이 나타납니다.
2. DataSource 연결하기
- DB와 연동하기 위해서 메인화면에 있는 DATA SOURCES를 클릭합니다.
- Add data source에서 InfluxDB를 더블 클릭합니다. 만약 다른 DB나 Cloud를 사용한다면 검색을 해서 선택하면 됩니다.
- 테스트하기 위해서 기본 설정은 그대로 두고, Name, URL과 InfluxDB Detail 항목에서 정보를 추가해 줍니다. 그리고 Save & test 누릅니다.
- 정상적으로 접속이 되면 시각화가 가능하다고 팝업창이 하나 나타납니다.
3. Dashboard 생성하기
- 상단의 Home을 눌러서 화면을 이동합니다. 그리고 “Create your first dashboard”를 선택 새로운 Dashboard 생성작업을 진행합니다.
- “Add visualization” 버튼을 클릭해서 Dashboard 생성 작업을 시작합니다.
- Select data source에서 앞에서 생성한 InfluxDB source를 선택합니다.
- DB Source를 선택했다면, Panel을 생성할 수 있는 창이 나타납니다. 에러메시지도 나타날 수 있는데 테이블이 선택하지 않았기 때문입니다. 그래서 Table을 선택하면 사라집니다.
- 먼저 하단의 FROM 항목에서 select measurement를 선택해서 Sensors Database에 들어있는 Table 중 시각화하려는 Table을 선택합니다.
- 데이터가 있는데 No data라고 나타날 수 있는데 이것은 나타날 데이터의 범위가 너무 짧게 된 경우가 그럴 수 있으니 MQTT로 받은 시간을 확인하여 범위를 지정해 주면 데이터를 시각화된 데이터를 볼 수 있습니다.
- 측면에서 Panel options에서 Title을 센서의 이름으로 바꿉니다. Panel options 위쪽에 Time series 되어 있는 콤보박스를 누르면 Visualizations 탭을 볼 수 있으며 여기서 원하는 형태의 차트를 선택합니다. (Grafana 버전에 따라서 Tab, Combobox 위치가 다를 수 있습니다.)
- Gauge Chart를 선택을 하고 Min, Max, Thresholds 등을 값을 변경하여 세부내용들을 변경합니다.
- 오른쪽 상단의 Appy를 눌러 적용합니다. 그리고 필요하다면 Panel을 하나 더 생성할 수 있으면 저장을 해서 Dashboard를 최종 생성할 수 있습니다.
- 간단하게 하나 더 패널을 생성해 봅니다. “Add->Visualization”, Time series를 선택한 후 필요한 설정을 한 후 Apply를 누릅니다. (예를 들어, 연결선 스타일(Line style), Point size 등) 참고로, 하단 Add query를 눌러 여러 개의 Table을 동시에 비교할 수 있게 나타낼 수도 있습니다.
- 오른쪽 끝의 저장 버튼을 눌러 새로 만들 Dashboard 정보를 입력합니다.
- Dashboard Title 명과 성명을 넣고 Save를 누릅니다.
- Panel 위치를 변경할 수 있는 Dashboard를 확인할 수 있습니다.
- Home으로 이동한 후 다시 Dashboard로 이동하려면, 왼쪽 상단의 햄버거 버튼을 누른 후 Dashboard를 누르면 생성했던 Dashboard Title을 볼 수 있습니다. 타이틀을 클릭하면 생성했던 Dashboard 화면으로 이동하는 것을 확인할 수 있습니다.
4. 최종 데이터 데이터 확인
- MQTT Explorer(가상 데이터)를 이용해서 보내면 게이지 Panel은 받은 시점의 값을 보여주고 선형 그래프는 시간 간격별로 흐름을 볼 수가 있습니다.
- 현장에서 사용하고자 한다면, Docker 작업, DB 최적화, 데이터 백업, Fail over 처리 등 추가작업을 해주어야 하지 않을까 합니다.
감사합니다.
<참고 사이트>
1. SuperHouse #41: Datalogging with MQTT, Node-RED, InfluxDB, and Grafana
https://www.youtube.com/watch?v=ffg3_1AgtyA
'Embedded > RaspberryPI' 카테고리의 다른 글
Raspberry Pi 4(Bookworm)에서 WiringPi 설치해서 사용하기 (2) | 2024.01.22 |
---|---|
Raspberry Pi 4에 Pi pigpio 설치해서 GPIO로 LED Blink 해보기 (signal 함수 추가) (2) | 2024.01.15 |
[MQTT] Raspberry Pi에서 Node-RED FLOW 생성하기 2 (influxDB 연결) (0) | 2024.01.09 |
[MQTT] Raspberry Pi에서 Node-RED FLOW 생성하기 1 (Mosquitto 연결) (0) | 2024.01.06 |
[MQTT] CM4 RaspberryPi 에 Grafana 설치 (2) | 2024.01.04 |