스마트팜 양액 온도 이력, 고온기 공급 시점을 고르는 기준

온도 하나보다 시간차를 봐요
한낮의 온실에서 양액 탱크 온도는 내려갔는데 재배 베드 쪽 변화는 늦게 보일 수 있어요. 이때 현재값 하나만 보면 냉각과 공급이 의도대로 이어졌는지, 센서 데이터가 늦게 들어온 것인지 나누기 어려워요. 탱크 온도가 바뀐 시각과 공급이 시작된 시각, 근권 쪽 값이 반응한 시각을 같은 흐름에 놓아야 다음 공급 시점을 고를 근거가 생겨요.
농촌진흥청은 스마트팜을 온실 환경과 양액 등에서 수집한 정보를 바탕으로 정밀하게 관리하는 시스템으로 설명해요. 또 여름철 잎채소 수경재배에서 양액 온도를 정밀하게 제어하는 냉각 기술의 적용 사례를 공개했어요. 다만 공개 사례의 온도나 성과를 다른 온실의 기준으로 그대로 옮기면 안 돼요. 작물과 재배 방식, 센서 위치, 탱크 용량에 맞춰 현장 기준을 따로 정해야 해요.
공급과 근권을 나눠 기록해요
먼저 양액이 지나가는 위치마다 역할을 붙여 보세요. 탱크 값은 공급 전 상태를, 공급관 값은 이동 중 상태를, 근권 가까운 값은 작물이 놓인 구간의 반응을 보여줘요. 온실 공기 온도와 공급 펌프 운전 상태까지 같은 시각에 놓으면 양액 자체의 변화와 주변 열환경의 영향을 구분하기 쉬워져요.
| 함께 남길 항목 | 답하려는 질문 |
|---|---|
| 탱크·공급관·근권 위치 | 어느 지점의 온도인가요? |
| 원시값·배율·단위 | 같은 값을 같은 온도로 읽고 있나요? |
| 공급 시작·종료 시각 | 변화가 공급 전인지 후인지 알 수 있나요? |
| 측정·수집·도착 시각 | 실제 반응과 전달 지연을 나눌 수 있나요? |
| 유효·점검·결측 상태 | 데이터 추세 분석에 포함해도 되나요? |
전북농업기술원은 스마트팜의 환경·양액·생육 데이터를 함께 수집하고, 센서 정확도와 양액 측정값을 비교해 보완하는 접근을 소개했어요. 여기서 가져올 핵심은 특정 수치를 복사하는 일이 아니라 비교 가능한 위치와 시각을 먼저 맞추는 일이에요. 센서 데이터 수집 단계에서 이 기준을 정해 두면 나중에 설비 데이터 수집 범위를 넓혀도 의미가 섞이지 않아요.
연결 계층을 가볍게 시작해요
온도센서 값이 LS PLC에 들어와 있다면 EASY-LINK는 LS XGT 데이터를 읽어 MQTT, HTTP API, MySQL 같은 목적지로 전달하는 연결 계층을 맡을 수 있어요. 양액의 적정 온도를 정하거나 냉각 장치를 대신 제어하는 제품은 아니에요. 한 탱크의 몇 개 주소를 기존 MQTT 브로커로 보내는 목적이라면 이 연결 범위부터 작게 확인할 수 있어요.
구역이 늘어나 수집 주기, 저장 이력, 전달 상태와 대시보드를 함께 관리해야 한다면 EASY LOGGER를 운영 계층으로 검토할 수 있어요. EASY LOGGER는 통합 수집과 이력·전달 상태 관리를 맡지만 작물 상태를 자동 판정하거나 PLC 안전 로직을 우회하지 않아요. 두 제품은 무조건 함께 쓰는 묶음이 아니라 현장 연결만 필요한지, 여러 구역의 운영 이력까지 필요한지에 따라 범위를 나누면 돼요.

온도센서와 LS PLC에서 시작한 값이 연결 계층과 MQTT를 지나 운영 화면으로 가는 흐름이에요.
EASY LOGGER MQTT 예제
아래 XBMPLC, D100_WORD, D0100은 형식을 설명하기 위한 예시예요. 양액 탱크 온도 필드가 PLC의 D0100 주소에 대응한다고 가정했지만, 실제 데이터 타입과 배율은 현장 필드 주소 맵을 따라야 해요. Automatic Topic Preview에서 READ Topic과 WRITE Topic을 확인하고, Runtime Status와 Payload Log에서 마지막 수신 시각과 처리 결과를 함께 봐요.
READ TOPIC: XBMPLC/D100_WORD/READ
WRITE TOPIC: XBMPLC/D100_WORD/WRITE
READ payload는 수집된 예시 원시값을 values에 담아요. 이 숫자를 실제 양액 온도로 해석하기 전에는 PLC 주소 맵의 단위와 배율을 대조해야 해요.
{
"plc_name": "XBMPLC",
"config_name": "D100_WORD",
"data_type": "word",
"values": {"D0100": 123}
}
WRITE payload도 같은 형식을 쓰지만 운영 온실에 바로 보내는 명령 예제가 아니에요. 검증용으로 분리한 주소에서만 메시지 형식과 기록 흐름을 확인해요.
{
"plc_name": "XBMPLC",
"config_name": "D100_WORD",
"data_type": "word",
"values": {"D0100": 120}
}
- Subscribe to the WRITE Topic.
- 테스트 주소만 사용합니다.
- 최소 권한만 부여합니다.
- 허용 주소 범위를 제한합니다.
- PLC 인터록을 확인합니다.
- 수동 복구 절차를 준비합니다.
Payload Log에는 Topic, 도착 시각과 payload가 함께 남는지 확인해요. MQTT 수신 성공만으로 냉각 장치가 의도대로 움직였다고 판단하지 말고, PLC 상태와 현장 안전 절차를 별도로 대조해야 해요.
대시보드는 세 질문에 답해요
첫 화면은 모든 값을 채우기보다 세 질문에 답하게 만들면 좋아요. 지금 데이터가 들어오는지, 공급 뒤 탱크와 근권의 변화 사이에 얼마나 간격이 있는지, 지난 회차와 다른 구간이 어디인지예요. 현재값 옆에 마지막 수신 시각과 유효 상태를 두면 원격 모니터링 중에도 마지막 정상값과 지금 들어오는 값을 혼동하지 않아요.
장기 이력과 회차별 조회가 중요하면 MySQL을 비교하고, 정해진 운영 시스템이 요청·응답 결과를 확인해야 하면 HTTP API를 함께 살펴볼 수 있어요. 여러 소비자가 같은 값을 받아야 하는 흐름에서는 MQTT가 자연스럽지만 언제나 우월한 방식은 아니에요. MES·CIM 같은 상위 시스템도 MQTT, HTTP API 또는 DB 인터페이스 범위에서 필드와 시각, 중복 처리 기준을 합의해 연결해요.

탱크와 근권의 변화, 마지막 수신 상태를 한 구역부터 비교하는 운영 화면 구성이에요.
한 구역에서 먼저 맞춰요
처음에는 탱크 하나와 재배 베드 한 줄만 고르세요. 현장 표시값, PLC 원시값과 변환값, MQTT payload를 같은 시각에 적고 공급 전후의 흐름을 비교해요. 통신을 잠시 분리했을 때 결측이 어떻게 남는지, 복구 뒤 중복 값이 생기는지도 확인하면 실제 온도 변화와 데이터 공백을 나눌 수 있어요.
양액의 pH 추세를 함께 볼 때는 스마트팜 pH 센서 데이터 글을 참고할 수 있어요. 다른 수집 주제는 기술 블로그에서 비교해 보세요. 센서 모델, LS PLC 주소, 단위와 MQTT 목적지를 정리했다면 HT Automation 홈페이지에서 현장 연결 가능 여부를 부담 없이 확인해 보세요.