주요 콘텐츠

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

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