MQTT 통합
기본 소개
MQTT Bridge는 MQTT 브리징 및 포워딩 기능을 제공하며, FlightHub 2 온프레미스 버전을 통해 도크의 MQTT 정보를 타사 시스템으로 포워딩하는 것을 지원하여 산업 시나리오에서 타사 시스템과 FlightHub 2 온프레미스 버전을 위한 협업 임무 솔루션을 제공합니다.
시스템 토폴로지

시작 전 준비
- FlightHub 2 온프레미스 버전을 배포하려면 DJI FlightHub 2 온프레미스 버전 배포 매뉴얼을 참조하십시오.
- 타사 시스템의 MQTT 브로커를 호스팅하는 네트워크는 FlightHub 2 온프레미스 버전을 호스팅하는 네트워크에 연결되어야 합니다. MQTT 브로커는 EMQX 유형을 지원합니다. EMQX 이외의 MQTT 브로커를 사용하는 경우, 사용자는 호환성 및 기능성을 보장하기 위해 자체 테스트를 수행해야 합니다.
- 타사 시스템은 MQTT 서버와 웹훅 URL의 포트가 모두 열려 있는지 확인해야 합니다. 자세한 내용은
브릿지 구성섹션을 참조하십시오.
구성 단계
브릿지 구성
터미널에 curl 명령어를 입력하여 MQTT 브리지 주소를 설정하고 장치 온라인 및 오프라인 상태를 모니터링하기 위한 웹훅을 구성합니다.
예시:
curl -X POST "http://10.94.98.15:38080/bridges/v1/resources" -H "Content-Type: application/json" -d '{
"mqtt": {
"id": "mqttbridge2",
"config": {
"username": "admin",
"proto_ver": "mqttv4",
"password": "",
"address": "10.94.98.17:1883",
"clientid": "fh2-bridge2"
}
},
"webhook": {
"config": {
"url": "http://10.94.98.17:8080",
"method": "POST",
"path": "/",
"body_template": "{ \"username\": \"${username}\", \"timestamp\": ${timestamp}, \"reason\": \"${reason}\", \"action\": \"${event}\", \"clientid\": \"${clientid}\" }"
},
"id": "webhook1"
}
}'
매개변수 설명:
mqtt:
- "http://10.94.98.15:38080": FlightHub 2 온프레미스 버전이 실행 중인 주소 및 포트로 대체해야 합니다.
- id: 브리지의 고유 식별자입니다. 맞춤 설정할 수 있으며 문자 및 숫자만 포함해야 합니다.
- username: 타사 MQTT에 연결이 허용된 사용자 이름입니다.
- password: 타사 MQTT 연결을 위한 비밀번호입니다. 비워둘 수 없습니다.
- proto_ver: MQTT의 프로토콜 버전 번호입니다. 현재 mqttv4만 지원합니다. 기본값은 mqttv4입니다.
- 주소: 타사 MQTT의 접속 주소.
- 클라이언트 ID: MQTT 클라이언트 식별자. 맞춤 설정할 수 있으며 문자 및 숫자만 포함해야 합니다.
웹훅:
- URL: 타사 장치 온라인 및 오프라인 이벤트를 추적하는 인터페이스 URL.
- 메서드: 타사 장치 온라인 및 오프라인 이벤트를 추적하는 인터페이스 메서드.
- 경로: 타사 장치 온라인 및 오프라인 이벤트를 추적하는 인터페이스 경로.
- 본문 템플릿: 장치 온라인 및 오프라인 이벤트에 대해 타사 인터페이스로 전송되는 콘텐츠의 문자열 템플릿. 인터페이스의 특정 요구 사항에 맞게 키를 수정할 수 있습니다.
구성 확인: 다음 정보는 구성이 성공했음을 나타냅니다. 실패를 반환하는 경우, 주소와 포트가 올바르게 구성되었는지, 그리고 네트워크가 연결되어 있는지 확인하십시오.
{"result":{"code":0,"message":"success"},"data":null}
브리지 조회
터미널에 curl 명령을 입력하여 MQTT Bridge의 상태를 조회하십시오.
예시:
curl -X GET "http://10.94.98.15:38080/bridges/v1/resources"
브리지 수정
터미널에 curl 명령을 입력하여 MQTT Bridge의 상태를 조회하십시오. 수정 시, MQTT ID와 웹훅 ID는 변경할 수 없음을 확인하십시오. 다른 매개변수 설명은 구성 브리지 명령의 매개변수 설명을 참조하십시오.
예시:
curl -X PUT "http://10.94.98.15:38080/bridges/v1/resources" -H "Content-Type: application/json" -d '
{
"mqtt": {
"id": "mqttbridge2",
"config": {
"username": "admin",
"proto_ver": "mqttv4",
"password": "",
"address": "10.94.98.17:1883",
"clientid": "fh2-bridge2"
}
},
"webhook": {
"config": {
"url": "http://10.94.98.17:8080",
"method": "POST",
"path": "/",
"body_template": "{ \"username\": \"${username}\", \"timestamp\": ${timestamp}, \"reason\": \"${reason}\", \"event\": \"${event}\", \"clientid\": \"${clientid}\" }"
},
"id": "webhook1"
}
}
'
브리지 활성화 또는 비활성화
터미널에 curl 명령을 입력하여 브리지 기능을 활성화하거나 비활성화하십시오. 비활성화되면 MQTT 메시지는 타사 플랫폼의 MQTT 브로커로 전달될 수 없습니다.
예시:
curl -X PUT "http://10.94.98.15:38080/bridges/v1/resources/switch" -H "Content-Type: application/json" -d '{
"enabled": true
}
'
타사 시스템에 도크 바인딩
타사 시스템에 도크를 바인딩하려면 Access to the Cloud Server 튜토리얼을 참조하십시오.
FlightHub 2에 도크 바인딩
FlightHub에서 도크를 조직에 바인딩하려면 FlightHub 2 사용자 매뉴얼 > 조직 관리 > 기기 관리 > Dock 관리 섹션을 참조하십시오.
브리지 확인
Mosquitto 확인:
- 두 개의 터미널을 열고 FlightHub 2와 타사 MQTT 브로커 모두에서 'thing/product/+/osd'를 구독하십시오.
mosquitto_sub -h <FlightHub 2 Broker IP> -p <FlightHub 2 Broker Port> -t "thing/product/+/osd"
mosquitto_sub -h <Third-Party Broker IP> -p <Third-Party Broker Port> -t "thing/product/+/osd"
- 세 번째 터미널에서 해당 토픽에 'test' 메시지를 게시하십시오. 두 구독 터미널 모두에서 'test'가 나타나면 브리지 설정이 성공한 것입니다.
mosquitto_pub -h <FlightHub 2 Broker IP> -p <FlightHub 2 Broker Port> -t "thing/product/sn1/osd" -m "test"
FlightHub 2 확인: 타사 브로커가 수신한 MQTT 데이터가 FlightHub 2 온프레미스 인터페이스 데이터와 일치하면 브리지가 성공한 것입니다.
유의 사항
1. 타사 시스템 및 FlightHub 2와 함께 라이브 스트림 기능 사용 전략
타사 시스템의 우선순위가 더 높습니다. 타사 시스템이 시작된 후 FlightHub 2의 라이브 스트림을 인계할 수 있습니다. 타사 시스템이 스트리밍을 시작하면 FlightHub 2는 라이브 스트림을 시작할 수 없습니다. FlightHub 2에서 라이브 스트림을 활성화하려면 다음 명령을 사용하여 타사 시스템의 라이브 스트림을 비활성화하십시오.
curl -X POST http://10.94.98.15:38081/thing-access-service/inner/tas/bridges/live/release -H 'Content-Type: application/json' -d '{
"sn": "6QCDL870020196"
}'
알림: sn은 도크의 일련 번호를 나타냅니다.
2. MQTT Bridge 기능을 활성화하면 도크는 기체에서 타사 시스템으로 미디어 파일을 자동으로 직접 전달합니다.
타사 시스템의 버킷 주소를 구성하려면 Media Management 튜토리얼을 참조하십시오.