MQTT
릴리즈 정보
MQTT(Message Queue Telemetry Transport)는 M2M(machine to machine) 통신을 위한 공개 메시지 프로토콜로, 대기 시간이 길거나 제한된 네트워크를 통해 메시지 형태로 편재형 기기에서 서버 또는 소형 메시지 브로커로 원격 분석 스타일의 데이터를 전송할 수 있습니다. 편재형 기기는 센서 및 발동기, 휴대폰, 차량에 포함된 시스템, 랩톱 및 데스크톱 컴퓨터에 이르기까지 다양합니다.
MQTT는 게시/구독 아키텍처에서 작동합니다. MQTT에는 메시지 브로커 및 통신 장치가 필요합니다. 통신 장치를 클라이언트라고 할 수 있습니다. 브로커와 클라이언트는 "Topic" 이라는 매개 변수를 게시 및 구독할 수 있습니다. SSL을 사용하여 MQTT를 통해 통신을 보호할 수 있습니다.
MQTT 확장은 소형 전자 장치 및 센서에 대한 연결성을 제공하고 ThingWorx와의 통신을 가능하게 합니다.
조직의 요구사항에 따라 MQTT에 대한 표준 브로커를 사용할 수 있습니다. 모든 사용자 제어 설정에 대해 설치할 브로커의 제품 설명서를 참조하십시오.
|
Windows 운영 체제에서 브로커는 설치 후 서비스로 실행됩니다.
|
MQTT 가져오기
support.ptc.com의
소프트웨어 다운로드 >
소프트웨어 업데이트 주문 또는 다운로드 >
ThingWorx Foundation >
Release <최신 버전> >
ThingWorx MQTT Extension >
최근 제조코드 >
MQTT--<버전>-Extension에서 MQTT 확장 프로그램을 다운로드할 수 있습니다.
확장 가져오기를 참조하여 MQTT_Extension.zip을
ThingWorx로 가져옵니다. 확장이 설치되면
사물 템플릿목록에 다음이 나타납니다.
• MQTTConnection
MQTTSubscriber 사물에 대한 공유 연결을 허용합니다.
• MQTTSubscriber
MQTT 서버에서 하나 이상의 주제에 대한 구독을 허용합니다. 구성 > 속성 아래의 속성을 MQTT 주제 매핑 섹션에 추가합니다.
MQTTSubscriber 사물을 편집할 때 연관된 MQTTConnection 사물을 재시작하여 새로 고칩니다.
• MQTT
단일 사물에서 위의 모든 구성을 허용합니다.
MQTT 구성
다음 단원에서는 ThingWorx에 확장을 설치한 후 브로커와 연결을 설정하려는 경우 MQTT에서 매개 변수를 구성하는 방법에 대해 설명합니다.
1. 시스템에 설치한 브로커를 실행합니다.
2. ThingWorx에서 새 사물을 생성하고 MQTT를 사물 템플릿으로 선택하고 저장을 클릭합니다.
3. 속성 및 경고 보기를 클릭하면 다음 화면이 나타납니다.
위의 이미지에서 1번 및 2번 콜아웃은 다음을 나타냅니다.
콜아웃 | 설명 |
1 | 녹색 아이콘은 사용자가 생성한 사물이 브로커에 연결되었음을 나타냅니다. 사물의 연결이 끊어지면 빨간색으로 표시됩니다. |
2 | 사물과 브로커 사이에 연결이 설정되면 값 필드에서 isConnected 속성이 TRUE로 설정됩니다. 연결이 끊어지면 값 필드가 FALSE로 설정됩니다. |
4. 추가를 클릭하여 속성을 추가합니다.
5. 다음 화면이 나타납니다.
6. 속성 이름, 기본 유형 및 기타 필요한 세부 내용을 입력합니다.
7. 속성과 관련된 정보를 저장합니다.
8. 구성 보기를 클릭하면 다음 화면이 나타납니다.
다음 표에서는 구성 보기에서 볼 수 있는 다양한 매개 변수에 대해 설명합니다.
JDBC Settings | 설명 |
clientIdFormat | MQTT 브로커에 등록된 클라이언트의 이름입니다. | 하나의 MQTT 브로커에 대해 고유해야 합니다. |
토큰 {s}는 ThingWorx Platform의 서버 이름에 대한 것입니다. 서버 이름에 대한 페더레이션 하위 시스템 구성에 언급된 값을 사용합니다. 토큰 {t}는 현재 사물 이름에 대한 것입니다. 서로 다른 플랫폼을 하나의 브로커에 연결하고 이름이 같은 사물을 사용하려면 페더레이션 하위 시스템에 서버 이름을 지정하는 것이 좋습니다. |
useSSL | 브로커가 보안 연결을 지원하는 경우 이를 선택합니다. |
serverName | MQTT 브로커가 실행 중인 호스트 이름입니다. | ThingWorx Platform과 동일한 시스템에서 브로커가 실행 중이면 필드를 비워둡니다. |
|
serverPort | MQTT 브로커에 대한 포트입니다. 기본값은 1883입니다. |
userId | 브로커에 연결할 사용자 이름입니다. |
Password | 사용자 ID에 대한 암호입니다. |
Timeout | 게시 요청이 성공할 때까지 기다리는 시간(밀리초)입니다. 기본값은 5000밀리초입니다. |
ConnectTimeout | ThingWorx Platform 및 MQTT 브로커 간의 연결이 설정될 때까지 기다리는 시간(밀리초)입니다. |
retryInterval | MQTT 브로커에 대한 연결이 끊어진 경우 연결을 다시 시도할 간격 시간(밀리초)입니다. 재시도 메커니즘은 어느 순간 연결이 설정되었고 나중에 끊긴 경우에만 작동합니다. |
retryAttempts | 연결 재시도가 수행된 횟수입니다. 예를 들어, 설정된 연결이 네트워크 방해 또는 다른 문제로 인해 끊긴 경우 연결 재설정 시도 횟수는 이 필드에 입력한 값으로 제공됩니다. 각각의 재시도 횟수는 위에 언급된 retryInterval로 구분됩니다. |
pingInterval | ThingWorx Platform 및 MQTT 브로커 간의 연결 상태를 주기적으로 확인하는 시간(밀리초)입니다. 기본값은 45초입니다. 45초마다 ping 메시지가 MQTT 브로커에 전송되어 응답이 있는지 확인합니다. 브로커의 응답은 연결이 유효하다는 것을 의미합니다. |
connectionIdleTimeout | 연결에 대한 유휴 시간(밀리초)입니다. 연결이 이 설정 시간을 초과하여 유휴 상태이면 채널에 메시지 통신이 없다는 것을 나타내고 사물의 연결이 해제된 것으로 표시됩니다. 속성이 게시 또는 구독되지 않은 경우 해당 사물의 연결이 끊어지지 않도록 pingInterval은 마지막 활성 시간을 계속 업데이트합니다. |
qos | 이 값은 브로커와 클라이언트 간 통신의 우선 순위 수준을 설정합니다. |
AutoMapping 구성 테이블에는 게시 또는 구독에 대한 속성을 자동으로 매핑하기 위한 설정이 있습니다. 자동 매핑이 활성화된 경우 Mappings에 대한 테이블을 지정할 필요가 없습니다. 사물에서 생성하는 모든 속성은 속성에 자동으로 매핑됩니다. 주제 이름은 아래에 언급된 format에 의해 결정됩니다.
AutoMapping | 설명 |
format | 속성에 해당하는 주제 이름의 형식입니다. {s} 토큰은 서버 이름, {t}는 사물 이름, {p}는 속성 이름에 대한 것입니다. |
enabled | 자동 매핑 기능을 선택할 수 있습니다. |
9. 요구사항에 따라 필드에 값을 입력하고 Mappings 설정에서 추가를 클릭합니다.
다음 화면이 나타납니다.
10. 여기 6단계에서 추가한 속성 이름을 주제 이름으로 입력한 다음 구독 및/또는 게시를 선택합니다. 이 속성은 여기에 입력하는 주제 이름에 게시 또는 구독됩니다.
11. 추가를 클릭합니다.
12. Properties and Alerts 보기에서 값 설정을 클릭합니다.
13. 다음 화면이 나타납니다.
필드에 속성 값을 입력하고 저장합니다.
14. 시스템에 설치된 브로커와 관련된 실행 명령을 따르고 사물 속성과 브로커 간의 게시 및 구독 활동을 확인합니다.