HiveMQ를 이용한 원격 MQTT 릴레이 제어

현장에 가지 않고 무언가를 켜고 꺼야 할 때가 있습니다. 야간에 펌프를 돌리거나, 원격지 설비를 재기동하거나, 주말에 조명을 제어하는 경우입니다.
이 글은 HiveMQ 클라우드 브로커를 거쳐 원격지 릴레이를 제어하는 구성입니다.
스마트폰 · PC ── HiveMQ Cloud ── EASY-RELAY ── 설비
(명령 발행) (중계) (구독·출력)
포트포워딩도 고정 IP도 필요 없습니다. 양쪽 다 브로커에 접속하러 나가는 구조이기 때문입니다.
안전 설계 — 이 부분을 먼저 읽어 주십시오
원격 제어는 편리한 만큼 위험도 함께 들어옵니다. 릴레이가 실제 설비를 움직인다면 아래는 선택이 아닙니다.
- 현장 인터록 — MQTT 명령이 안전 조건을 건너뛰면 안 됩니다. 최종 판단은 현장 회로가 하게 하십시오.
- 수동 복구 수단 — 통신이 끊긴 상태에서 사람이 되돌릴 방법이 있어야 합니다.
- 통신 두절 시 동작 — 마지막 명령을 유지할지, 안전 상태로 돌아갈지 미리 정하십시오.
- 시험은 부하 분리 상태에서 — 실제 설비를 물린 채 처음 시험하지 마십시오.
- 접근 권한 — 브로커 계정을 나누고, 제어 토픽은 아무나 쓰지 못하게 하십시오.
클라우드 브로커를 쓴다는 것은 인터넷을 통해 설비가 움직인다는 뜻입니다. 계정 관리가 곧 안전 관리입니다.
상태 회신을 반드시 넣으십시오
명령을 보내는 것만으로는 실제로 켜졌는지 알 수 없습니다. 브로커까지 갔더라도 EASY-RELAY가 못 받았을 수 있고, 받았어도 접점이 붙지 않았을 수 있습니다.
릴레이의 현재 상태를 별도 토픽으로 발행하게 구성하십시오. 명령 토픽과 상태 토픽을 함께 보면 원격에서도 반영 여부를 검증할 수 있습니다.
| 토픽 | 방향 | 내용 |
|---|---|---|
.../relay/set | 발행 → 장비 | 명령 |
.../relay/state | 장비 → 구독 | 현재 상태 |
Step 1. 브로커 준비
HiveMQ Cloud 구성에서 클러스터와 계정을 만드십시오. 주소·포트·계정·비밀번호를 확보해 두십시오.

Step 2. EASY-RELAY 설정

EASY-RELAY에 브로커 주소와 계정, 그리고 구독 토픽(명령)과 발행 토픽(상태) 을 입력합니다. 두 토픽은 반드시 다르게 잡으십시오.
Step 3. 제어 확인
MQTT 앱이나 MQTT Explorer에서 명령 토픽으로 값을 발행하고, 상태 토픽에서 결과를 확인합니다.
처음에는 부하를 분리한 상태에서 접점 소리만으로 동작을 확인하십시오.
잘 안 될 때 확인할 것
- 브로커에 안 붙는다 — 주소·포트·계정을 확인합니다. 클라이언트 ID 중복도 흔한 원인입니다.
- 명령을 보내도 반응이 없다 — 구독 토픽 문자열이 정확히 같은지 확인합니다. 대소문자를 구분합니다.
- 페이로드 형식이 안 맞는다 — 장비가 기대하는 형태(
1/0,ON/OFF등)를 확인하십시오. - 간헐적으로 반응이 늦다 — 인터넷 구간 문제입니다. 중요한 제어라면 사내 브로커를 검토하십시오.
- 통신이 끊기면 계속 켜져 있다 — 통신 두절 시 동작을 정의하지 않은 것입니다.
자주 묻는 질문
여러 릴레이를 제어하려면? 채널마다 토픽을 나누시면 됩니다. 필드 I/O 8점 릴레이 구성도 참고하십시오.
조건에 따라 자동 제어하고 싶습니다. Node-RED MQTT 조건 제어에 정리해 두었습니다.
사내 브로커로도 됩니까? 됩니다. 윈도우 Mosquitto 설치를 참고하십시오. 사내망 안에서만 제어하실 거라면 그쪽이 더 안정적입니다.
도입을 검토하신다면
현장 조건에 맞는 모델 선정이나 프로토콜 적용 가능 여부가 궁금하시면 문의해 주세요. 사용 중인 PLC 기종과 수집하려는 데이터만 알려주시면 구성안을 잡아 드립니다.
- 제품 라인업 살펴보기 — EASY-LOGGER · EASY-LINK · EASY-RELAY · EASY-TEMP
- 도입 문의
- 기술 블로그 전체 글