MQTT
MQTT 메시지 프로토콜은 IoT 서버와 WiFi 모듈/디바이스 간에 사용되는 메시지 프로토콜 중 가장 많이 쓰이는 방식 중 하나 이다.
본 장에서는 MQTT 메시지프로코콜과 관련한 명령리스트를 아래 표에 보이고 있으며 연이어 그 용법에 대해서 설명하고 있다.
No | 명령 | 기능 |
W1501 | AT+MQTTAUTH | MQTT 사용자권한(authentication) 설정 및 정보조회(query) |
W1502 | AT+MQTTSOCK | MQTT 소켓 설정 및 조회 |
W1503 | AT+MQTTCAVERIFY | MQTT 인증서 인증 사용여부 설정 및 설정상태 조회 |
W1504 | AT+MQTTSSL | MQTT SSL 보안/인증 사용여부 설정 및 설정상태 조회 |
W1505 | AT+MQTTCID | MQTT 클라이언트 ID 설정 및 조회(query) |
W1506 | AT+MQTTKEEPALIVE | MQTT heartbeat 주기(Cycle) 설정 및 조회 |
W1507 | AT+MQTTRECONN | MQTT 자동재연결 사용 설정 및 상태조회 |
W1508 | AT+MQTTAUTOSTART | MQTT 전원 켠(Power-On) 후 자동연결 사용 여부 설정 및 상태조회 |
W1509 | AT+MQTTEVENT | MQTT 이벤트 푸시(push) 사용 여부 설정 및 설정상태 조회 |
W1510 | AT+MQTTSTART | MQTT 서비스를 시작 |
W1511 | AT+MQTTSUB | MQTT 구독(subscription) 관련 정보를 등록 및 등록 정보조회 |
W1512 | AT+MQTTPUB | MQTT 게시(publish) 하기 위한 정보를 설정 및 설정상태 조회 |
W1513 | AT+MQTTSEND | 모듈에서 MQTT 서버로 데이터/메시지를 게시하기(publishing) |
W1514 | AT+MQTTUNSUB | 지정 토픽에 대한 구독 해제(unsubscription) |
W1515 | AT+MQTTSTATUS | MQTT 상태 조회 |
W1516 | AT+MQTTCLOSE | MQTT 서비스 해제 |
W1501 AT+MQTTAUTH MQTT 사용자권한(authentication) 설정 및 정보조회(query)
명령(쿼리) | AT+MQTTAUTH=? |
응답 | +MQTTAUTH:<UserName>,<PassWord> |
OK | |
매개변수 | 설정명령의 매개변수 참조 |
설명 | 명령 후 즉시 발효 |
명령(설정) | AT+MQTTAUTH=<UserName>,<PassWord> |
응답 | OK |
매개변수 | UserName=사용자아이디 |
PassWord=암호 | |
설명 | 명령 후 즉시 발효 |
W1502 AT+MQTTSOCK MQTT 소켓 설정 및 조회
명령(쿼리) | AT+MQTTSOCK=? |
응답 | +MQTTSOCK:<Host>,<Port> |
OK | |
매개변수 | 설정명령의 매개변수 참조 |
설명 | 명령 후 즉시 발효 |
명령(설정) | AT+MQTTSOCK=<Host>,<Port> |
응답 | OK |
매개변수 | Host= 서버/원격(remote) URL |
Port= 서버/원격 포트번호 | |
설명 | 명령 후 즉시 발효 |
W1503 AT+MQTTCAVERIFY MQTT 인증서 인증 사용 여부 설정 및 설정상태 조회
명령(쿼리) | AT+MQTTCAVERIFY=? |
응답 | +MQTTCAVERIFY:<Status1>, <Status2> |
OK | |
매개변수 | 설정명령의 매개변수 참조 |
설명 | 명령 후 즉시 발효 |
명령(설정) | AT+MQTTCAVERIFY=<Status1>, <Status2> |
응답 | OK |
매개변수 | Status1= 서버 루트인증서 인증 사용여부, ON(사용), OFF(사용 안 함) |
Status2= 클라이언트인증서 인증 사용 여부, ON(사용), OFF(사용 안 함) | |
설명 | 명령 후 즉시 발효 |
W1504 AT+MQTTSSL MQTT SSL 보안/인증 사용여부 설정 및 설정상태 조회
명령(쿼리) | AT+MQTTSSL=? |
응답 | +MQTTSSL:<Status> |
OK | |
매개변수 | 설정명령의 매개변수 참조 |
설명 | 명령 후 즉시 발효 |
명령(설정) | AT+MQTTSSL=<Status> |
응답 | OK |
매개변수 | Status= SSL 보안 사용여부,ON(사용), OFF(사용 안 함) |
설명 | 명령 후 즉시 발효 |
W1505 AT+MQTTCID MQTT 클라이언트 ID 설정 및 조회(query)
명령(쿼리) | AT+MQTTCID=? |
응답 | +MQTTCID:<ClientID> |
OK | |
매개변수 | 설정명령의 매개변수 참조 |
설명 | 명령 후 즉시 발효 |
명령(설정) | AT+MQTTCID=<ClientID> |
응답 | OK |
매개변수 | ClientID= 클라이언트 아이디(ID) |
설명 | 명령 후 즉시 발효 |
W1506 AT+MQTTKEEPALIVE MQTT heartbeat 주기(Cycle) 설정 및 조회
명령(쿼리) | AT+MQTTKEEPALIVE=? |
응답 | +MQTTKEEPALIVE:<Period> |
OK | |
매개변수 | 설정명령의 매개변수 참조 |
설명 | 명령 후 즉시 발효 |
명령(설정) | AT+MQTTKEEPALIVE=<Period> |
응답 | OK |
매개변수 | Period= Heartbeat 주기(cycle), 단위= sec |
설명 | 명령 후 즉시 발효 |
W1507 AT+MQTTRECONN MQTT 자동재연결 사용 설정 및 상태조회
명령(쿼리) | AT+MQTTRECONN=? |
응답 | +MQTTRECONN:<Status> |
OK | |
매개변수 | 설정명령의 매개변수 참조 |
설명 | 명령 후 즉시 발효 |
명령(설정) | AT+MQTTRECONN=<Status> |
응답 | OK |
매개변수 | Status=자동재연결 사용 여부, ON(사용), OFF(사용 안 함) |
설명 | 명령 후 즉시 발효 |
W1508 AT+MQTTAUTOSTART MQTT 전원 켠(Power-On) 후 자동연결 사용 여부 설정 및 상태조회
명령(쿼리) | AT+MQTTAUTOSTART=? |
응답 |
+MQTTAUTOSTART:<Status> OK |
매개변수 | 설정명령의 매개변수 참조 |
설명 | 명령 후 즉시 발효 |
명령(설정) | AT+MQTTAUTOSTART=<Status> |
응답 | OK |
매개변수 | Status= 전원을 켜면 자동연결 사용 여부, ON(사용), OFF(사용 안 함) |
설명 | 명령 후 즉시 발효 |
W1509 AT+MQTTEVENT MQTT 이벤트 푸시(push) 사용 여부 설정 및 설정상태 조회
명령(쿼리) | AT+MQTTEVENT=? |
응답 | +MQTTEVENT:<Status> |
OK | |
매개변수 | 설정명령의 매개변수 참조 |
설명 | 명령 후 즉시 발효 |
명령(설정) | AT+MQTTEVENT=<Status> |
응답 | OK |
매개변수 | Status=이벤트 푸시(push) 사용 여부, ON(사용), OFF(사용 안 함) |
설명 |
명령 후 즉시 발효. 이 명령 실행 후 모든 MQTT 이벤트는 User 시리얼포트를 통해 출력된다, 출력형식 = +MQTTEVENT:<result> |
Result 매개변수는 AT+MQTTSTATUS 명령 참고 |
W1510 AT+MQTTSTART MQTT 서비스를 시작
실행명령 | AT+MQTTSTART |
응답 | OK |
매개변수 | 없음 |
설명 | 명령 후 즉시 발효 |
W1511 AT+MQTTSUB MQTT 구독(subscription) 정보 등록 및 등록 정보조회
명령(쿼리) | AT+MQTTSUB=? |
응답 | +MQTTSUB:<sub_num> |
<id_0>, <Topic_0>, <QoS_0> | |
… | |
<id_n>, <Topic_n>, <QoS_n> | |
OK | |
매개변수 | sub_num= 구독 중인 주제(topic)의 수, 최대 6개 |
나머지 매개변수는 명령(설정) 참고 | |
설명 | 명령 후 즉시 발효 |
명령(설정) | AT+MQTTSUB=<id>,<Topic>,<QoS> |
응답 | OK |
매개변수 | Id= 0~5 범위에서 각 항목에 할당된 ID |
Topic= 구독주제(Topic) | |
QoS= 구독 주제에 대한 QoS, 범위는 0~2 | |
설명 | 명령 후 즉시 발효 |
W1512 AT+MQTTPUB MQTT 게시(publish) 정보 설정 및 설정상태 조회
명령(쿼리) | AT+MQTTPUB=? |
응답 | +MQTTPUB:<Topic>,<QoS> |
OK | |
매개변수 | 설정명령의 매개변수 참조 |
설명 | 명령 후 즉시 발효 |
명령(설정) | AT+MQTTPUB=<Topic>, <QoS> |
응답 | OK |
매개변수 | Topic= 게시(pusblishing)의 주제 |
QoS= 게시된 정보의 QoS, 범위: 0~2 | |
설명 |
명령 후 즉시 발효 이 명령으로 Topic과 QoS를 설정하며, 메시지 게시는 다음 명령을 사용한다. → AT+MQTTSEND=<len> 다른 Topic으로 게시하기 위해서는 AT+MQTTPUB=<Topic>, <QoS> 으로 해당 Topic 및 QoS를 먼저 설정해야 한다. |
W1513 AT+MQTTSEND 모듈에서 MQTT 서버로 데이터/메시지를 게시하기(publishing)
실행명령 | AT+MQTTSEND=<len> |
응답 | > |
매개변수 | Len=게시(publishing)할 데이터 길이, 단위는 Byte, 주의) “>” 응답을 받은후 전송할 데이터는 0.5초 이내에 입력한다. |
설명 | 명령 후 즉시 발효 → “>”를 수신 한 후 모듈은 지정한 길이의 데이터를 원격서버로 게시한다(publish) |
W1514 AT+MQTTUNSUB 지정 Topic에 대한 구독 해제(un-subscription)
명령 | AT+MQTTUNSUB=<id> |
응답 | OK |
매개변수 | id= 구독 해제할 주제(topic)의 ID |
설명 | 명령 후 즉시 발효 |
W1515 AT+MQTTSTATUS MQTT 상태 조회
명령(쿼리) | AT+MQTTSTATUS=<action>[,id>] |
응답 | +MQTTSTATUS:<result> |
OK | |
매개변수 | action= 원격서버에 대한 클라이언트의 동작상태,3개 범주로 connect, subscribe, publish가 있다. |
id= 옵션 매개변수로 action= subscribe 일 때 id 번호를 지정해야 한다 | |
result=상태 결과 반환 값. action 값에 따라 다음과 같은 결과 값들이 반환 된다. | |
1. action= connect 일 때 result 반환 값 | |
CONNECT, SUCCESS | |
CONNECT, INIT_ERROR | |
CONNECT, FAIL | |
CONNECT, RECONNECTING | |
CLOSE, SUCCESS | |
CLOSE , FAIL | |
2. action= subscribe 일 때 result 반환 값 | |
SUBSCRIBE, SUCCESS | |
SUBSCRIBE, FAIL | |
UNSUBSCRIBE, SUCCESS | |
UNSUBSCRIBE,FAIL | |
3. action=publish 일 때 result 반환 값 | |
PUBLISH, SUCCESS | |
PUBLISH, FAIL | |
설명 | 명령 후 즉시 발효 |
W1516 AT+MQTTCLOSE MQTT 서비스 해제
실행명령 | AT+MQTTCLOSE |
응답 | OK |
매개변수 | 없음 |
설명 | 명령 후 즉시 발효 |