엔지니어링 · 2024

무선 온도 센서 현장 모니터링 프로그램

클라우드에 모인 센서 측정값을 현장 화면에 상시 표시하는 Windows 데스크톱 앱

클라우드에 올라온 무선 온도 센서 측정값을 받아 현장 모니터에 상시 표시하고, 설정한 상·하한을 벗어나면 화면과 소리로 알리는 데스크톱 프로그램입니다.

고객
비공개 고객
분야
엔지니어링
온도 추이 그래프와 현재·최고·최저·상한·하한 값을 함께 보여 주는 모니터링 화면

개요

이 프로그램은 클라우드의 REST API로 최근 측정값을 주기적으로 받아 온도 추이 그래프와 큰 숫자로 표시하고, 사용자가 정한 경계온도 상·하한을 벗어나면 화면 표시와 경고음으로 알립니다. Windows 데스크톱 앱이며, 모니터에 띄워 둔 채로 계속 돌아가는 것을 전제로 만들었습니다.

해결 방법

경계온도 상·하한을 기준선으로 깔고, 그 위에 최근 구간의 온도 추이를 그립니다. 현재값, 구간 최고값, 최저값에는 각각 표식을 찍어 그래프에서 바로 짚을 수 있게 했습니다. 그래프 아래에는 같은 값을 큰 숫자로 다시 보여 줍니다.

온도 추이 그래프와 현재·최고·최저·상한·하한 값을 함께 보여 주는 모니터링 화면
모니터링 화면

숫자 패널의 글자 크기는 창 크기에 맞춰 자동으로 조절되고, F5로 전체 화면으로 전환됩니다. 모니터 크기가 달라도 같은 화면을 그대로 쓸 수 있습니다.

현재 온도가 설정 범위를 벗어나면 현재온도 패널에 경고 표시가 켜지고, 범위 안으로 돌아올 때까지 경고음이 반복됩니다.

현재 온도가 경계온도 상한을 넘어 경고 표시가 켜진 화면
상한 초과 경고

시스템 구조

구성

  • 로그인 창: 클라우드 계정으로 세션을 열고, 경계온도 상·하한을 설정합니다
  • 모니터링 창: 그래프와 숫자 패널을 그립니다
  • 클라우드 API 모듈: 세션 토큰으로 회사와 센서를 찾아 최근 측정값을 가져옵니다
  • info.ini: 회사명, 센서 시리얼, 표시 구간(분), 갱신 주기(분)
클라우드 계정 입력과 경계온도 상한·하한을 설정하는 창
로그인과 경계온도 설정

데이터 흐름

  • 로그인 창에서 받은 세션 토큰과 계정 이메일을 이후 모든 요청의 헤더에 담습니다
  • 설정 파일의 회사명과 센서 시리얼로 클라우드상의 회사 ID와 센서 ID를 찾습니다
  • 수집 스레드가 갱신 주기마다 표시 구간만큼의 측정값을 요청합니다
  • 응답을 {최신 측정으로부터 경과한 분: 온도} 형태로 바꾸고, 빈 구간을 채운 뒤 그래프와 패널을 갱신합니다

수집, 화면 갱신, 경고음 재생은 각각 다른 스레드에서 돌아갑니다. 경고음이 울리는 동안에도 수집과 화면 갱신이 멈추지 않습니다.

결과

현장 모니터에 띄워 두면 클라우드 웹 화면을 열지 않고도 현재 온도와 범위 이탈 여부를 바로 읽을 수 있습니다. 범위를 벗어나는 순간은 화면과 소리로 알려 주므로, 화면을 계속 지켜보지 않아도 됩니다.

경계온도 기준은 프로그램 안에서 바로 바꿀 수 있고, 감시할 센서와 표시 구간, 갱신 주기는 설정 파일만 고치면 됩니다. 다른 센서나 다른 현장에 같은 실행 파일을 그대로 쓸 수 있습니다.

사용 기술

  • Python
  • wxPython
  • matplotlib
  • REST API
  • PyInstaller

화면

해결이 필요한 문제가 있으신가요?

소프트웨어 개발부터 장비 연동과 엔지니어링까지, 프로젝트의 요구사항에 적합한 해결 방안을 함께 검토합니다.

프로젝트 문의하기