주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.

MQTT 시작하기

이 예제는 MATLAB®에서 MQTT 브로커에 연결하고 통신하는 방법을 보여줍니다.

MQTT(Message Queuing Telemetry Transport)는 사물 인터넷(IoT)을 위한 OASIS 표준 메시징 프로토콜입니다. 이 프로토콜은 코드 용량이 작고 네트워크 대역폭이 최소화된 상태에서 원격 장치를 연결하는 데 이상적인 매우 가벼운 퍼블리시/구독 메시징 전송 방식으로 설계되었습니다.

MQTT 클라이언트를 생성하고 TCP를 사용하여 브로커에 연결

mqttclient 함수를 사용하여 MQTT 클라이언트를 생성합니다. 이 예제는 포트 1883과 클라이언트 ID myClient를 사용하여 HiveMQ 퍼블릭 브로커에 대한 비보안 MQTT 클라이언트 연결을 생성합니다.

mqClient = mqttclient("tcp://broker.hivemq.com",ClientID="myClient",Port=1883);

참고로, Connected 속성은 브로커와의 연결이 설정되었음을 나타냅니다.

mqClient.Connected
ans = logical
   1

토픽 구독하기

MQTT 클라이언트가 연결된 상태에서 subscribe 함수를 사용해 관심 있는 토픽을 구독합니다. 표시된 테이블은 구독 중인 토픽을 보여줍니다.

topicToSub = "trubits/mqTop48";
subscribe(mqClient, topicToSub)
ans=1×3 table
          Topic          QualityOfService    Callback
    _________________    ________________    ________

    "trubits/mqTop48"           0               ""   

토픽에 쓰기

구독이 성공적으로 완료되었는지 확인하려면 구독한 토픽에 쓴 메시지를 MQTT 클라이언트가 수신했는지 확인해야 합니다.

write 함수를 사용하여 원하는 토픽에 메시지를 쓰십시오.

topicToWrite = "trubits/mqTop48";
msg = "70";
write(mqClient, topicToWrite, msg)
pause(1)
msg = "100";
write(mqClient, topicToWrite, msg)
pause(1) % Adding a pause to compensate for the communication latency

MQTT 클라이언트 엿보기(peek)

MQTT 클라이언트에서 구독한 모든 토픽에 대해 가장 최근에 수신된 메시지를 보려면 `peek` 함수를 사용하십시오. 표시된 타임테이블은 MQTT 클라이언트가 브로커로부터 메시지를 성공적으로 수신했음을 나타냅니다.

peek(mqClient)
ans=1×2 timetable
            Time                  Topic          Data 
    ____________________    _________________    _____

    20-Jun-2024 09:01:22    "trubits/mqTop48"    "100"

토픽에서 읽기

관심 있는 토픽으로부터 사용 가능한 모든 메시지를 읽으려면 read 함수를 사용하십시오.

topicToRead = "trubits/mqTop48";
read(mqClient, Topic= topicToRead)
ans=2×2 timetable
            Time                  Topic          Data 
    ____________________    _________________    _____

    20-Jun-2024 09:01:21    "trubits/mqTop48"    "70" 
    20-Jun-2024 09:01:22    "trubits/mqTop48"    "100"

MQTT 클라이언트 닫기

작업 공간에서 MQTT 클라이언트 변수를 지워 HiveMQ 퍼블릭 브로커와의 연결을 종료합니다.

clear mqClient