Node-red 이용해서 센서 데이터 시각화하기

2022. 5. 21. 20:45공부/Embedded

 문제가 조금 있긴 했지만, EPS32 보드를 이용했으니 바로 wi-fi 연결 해서 데이터를 시각화해보는 작업을 하였다.  DHT11 센서와 그 외 다른 센서가 있으면 좋았겠지만 가지고 있는 것이없어서 간단하게 가변저항을 이용해서 값이 변하는 것을 측정하기로 하였다. 여러 IoT 장비라는 상황을 가정하기 위해 ESP32 보드는 2개를 사용하였고, 데이터 전송 프로토콜로는 MQTT를, 브로커 서버로는 mosquitto를 이용하였다. 

읽어올 topic

 읽어오는 값은 온도, 습도, power 라고 가정한 가변저항 값이고 이에 맞는 topic을 지정해주었다. 그리고 읽기만 하면 재미없기 때문에 값을 보내주기 위하여 다른 topic 도 설정하였다.

보낼 topic

이렇게 topic 을 세분화 한 이유는 어디서 값을 보내고 읽어오는지 구분하기 쉽게 하기 위함이다. 이제 센서에서 값을 계속 읽어와서 노드레드에서 보여줄 것이다.

Node-rad flow 구성

간단하게 flow 를 구성해보았다. temp, humi, power 는 값을 읽어오기 때문에 mqtt in으로 구성하고, led와 pwm 값은 내가 보내줄 것이기 때문에 mqtt out 으로 구성해주었다.

mqtt flow 설정

여기서 가장 중요한 것은 서버 주소와 토픽을 잘 설정해줘야 한다는 것이다. 서버는 내가 현재 브로커로 사용하고 있는 서버의 ip주소를 설정해 주어야 하고, 토픽은 내가 위에서 설정한 토픽의 주소를 적어주면 된다. 여기서 하나라도 틀린다면 값을 받아올 수 없기 때문에 잘 작성해주어야 한다. 만약 설정했는데 잘 들어오는지 궁금하다면, debug flow 를 mqtt flow 에 연결후 debug창을 확인해보면 들어오는 값을 실시간으로 확인해 볼 수 있다. 이제 UI 창으로 들어가보면?...

Node-red UI 결과화면

 

이렇게 그럴싸한 화면을 확인할 수 있다. 오오.... 뭔가 벌써 IoT를 만들어버린 것 같다. 온도 습도 값을 실시간으로 확인할 수 있고, 가변저항값을 바꾸면 실시간으로 그래프 값이 변하는 것을 확인할 수 있었다. 또한 LED 버튼 및 slider 를 이용하면 보드에 값을 실시간으로 보내서 LED 제어도 가능하였다. 나중에 기회가 된다면 더 다양한 센서를 이용해서 구성해보고, 이러한 화면을 LAN이 아닌 외부에서도 볼 수 있도록 서버를 구성해보고 싶다. 코드는 추후에 좀 더 정리하고 깃헙에 업로드 해봐야 겠다. 

 

(코드 깃헙에 업로드 완료 : https://github.com/vnjfgh37/Embedded/tree/main/esp32/IoT/mqtt%2Bmosquttio)

'공부 > Embedded' 카테고리의 다른 글

ESP32 로 dht11 센서 값 읽어오기(및 오류 해결)  (0) 2022.05.21