콘텐츠로 이동

MQTT 카드

여러 키트 (스테이션) 간 메시지 통신을 위한 MQTT 카드들입니다. 한 키트의 작업 완료 신호를 다른 키트로 전달해 협업 자동화를 만들 수 있습니다.

무엇을 하는 단계인가요?

MQTT 는 여러 장치가 메시지를 주고받는 통신 방식 입니다. 프리모스튜디오에서는 다음 시나리오에 사용:

  • 스테이션 A 가 작업 완료 → 스테이션 B 가 받아서 다음 작업 시작
  • 학생들의 여러 키트가 순차 협업 하는 통합 자동화 시연
  • 마스터 스테이션 이 여러 키트에 명령 전달

MQTT 브로커 사전 설정

MQTT 사용 전에 [장비] 탭에서 MQTT 브로커 가 설정·연결되어야 합니다. 프리모스튜디오 앱이 내장 브로커를 제공하므로 별도 외부 서버 불필요. 자세한 설정은 강사가 진행하시거나 [장비 패널 사용법] (별도 문서) 참조.

카드 종류

  • MQTT 대기 (수신)


    MQTT 대기 (블록) · MQTT 대기 끝

    다른 스테이션에서 메시지가 올 때까지 대기

  • MQTT 발행 (송신)


    MQTT 발행

    다른 스테이션에 메시지 보내기

MQTT 대기 (블록형)

지정한 스테이션에서 메시지가 올 때까지 대기하고, 들어오면 안의 블록을 실행합니다.

  • 파라미터:
    • 보낸 스테이션 (기본 signal) — 어느 스테이션의 메시지를 기다릴지
    • 대기 시간 (초, 기본 30) — 타임아웃 시 다음 카드로 진행
  • 블록 구조: MQTT 대기 ~ MQTT 대기 끝 사이의 카드들이 메시지 수신 시 실행
MQTT 대기 (signal, 30초)
  ├─ [실행할 카드들]
  └─ ...
MQTT 대기 끝

MQTT 발행

다른 스테이션에 메시지를 보냅니다.

  • 파라미터:
    • 받을 스테이션 (기본 signal) — 어느 스테이션에 보낼지
    • 메시지 내용 (텍스트, 기본 완료) — 변수 삽입 가능 ({변수})

사용 예시

예시 1 — 두 키트 순차 협업

스테이션 A (생산):

시작
[컨베이어 + 카메라 + 로봇 분류 작업]
MQTT 발행 (toStation: "B", message: "분류 완료")
종료

스테이션 B (포장):

시작
MQTT 대기 (fromStation: "A", 60초)
  ├─ 메시지 보내기 ("스테이션 A 신호 수신")
  ├─ [포장 작업 카드들]
  └─ ...
MQTT 대기 끝
종료

예시 2 — 변수와 함께 데이터 전송

스테이션 A:

색깔 확인
MQTT 발행 (toStation: "B", message: "색상={감지색상}")

스테이션 B:

MQTT 대기 (fromStation: "A")
  ├─ 메시지 보내기 ("받은 메시지: {mqtt_message}")
  └─ [메시지 내용에 따라 분기]
MQTT 대기 끝

수신된 메시지는 {mqtt_message} 변수에 자동 저장됩니다.

예시 3 — 마스터 - 슬레이브 패턴

마스터 스테이션:

시작
MQTT 발행 (B, "시작")
3초 기다리기
MQTT 발행 (C, "시작")
종료

슬레이브 B / C:

MQTT 대기 (master)
  └─ [작업 시작]
MQTT 대기 끝

자주 발생하는 문제

MQTT 대기가 30초 후 그냥 통과 (메시지 안 옴)
  1. MQTT 브로커 연결 확인 — [장비] 탭에서 MQTT 상태 "● 연결됨"
  2. 스테이션 이름 일치 — 보내는 쪽 toStation 과 받는 쪽 fromStation 이 정확히 같아야 함 (대소문자 구분)
  3. 두 PC 가 같은 네트워크 — Wi-Fi / LAN 동일 네트워크 필요
  4. 타임아웃 늘리기 — 학생 작업 환경에서는 30초 → 60~120초 권장
MQTT 발행은 했는데 다른 스테이션이 못 받음
  1. 받는 쪽 스테이션 이름이 정확한지 확인
  2. 받는 쪽이 [MQTT 대기] 카드로 대기 중인지 확인 (대기 안 하면 메시지 못 받음)
  3. 두 스테이션이 같은 MQTT 브로커에 연결됐는지 확인
MQTT 메시지에 한글이 깨져 보임

드물게 발생. 영문 메시지로 시도해 보고 동일 문제 있으면 페이지 하단 📮 피드백 보내기 로 알려주세요.

강사 팁

협업 시연으로 학습 효과 극대화

한 학생의 작업 결과가 다른 학생의 시작 신호가 되는 시연은 자동화의 본질 (협업·통합) 을 보여주는 가장 강력한 학습 자료입니다.

단순한 신호 전달부터 시작

학생의 첫 MQTT 학습은 단순히 "완료 신호 보내기 → 받기" 부터. 데이터 전송 (변수 삽입) 은 익숙해진 후 도입.

스테이션 이름 통일 규칙

학생 키트마다 고유 이름을 정해두세요 (예: station_A, station_B, station_1, station_2). 학기 초에 정해서 모든 흐름에서 일관 사용.

동시 발행 주의

여러 스테이션이 동시에 같은 스테이션에 발행하면 메시지 순서가 섞일 수 있습니다. 협업 시나리오는 순차적으로 설계하세요.

다음 단계

MQTT 까지 익혔다면 첫 프로그램 만들기 → 의 통합 예제로 모든 카드를 활용해 봅시다.


이 페이지에 빠진 내용이나 잘못된 부분을 발견하시면 페이지 하단 📮 피드백 보내기 를 활용해 주세요.