Integração MQTT
Introdução básica
A bridge MQTT fornece funcionalidade de bridge e encaminhamento MQTT, permitindo o encaminhamento das informações MQTT do dock para sistemas de terceiros por meio da versão local do FlightHub 2, oferecendo uma solução de tarefas colaborativas para sistemas de terceiros e a versão local do FlightHub 2 em cenários industriais.
Topologia do sistema

Preparação antes de começar
- Consulte o manual de implantação da versão local do DJI FlightHub 2 para implantar a versão local do FlightHub 2.
- A rede que hospeda o broker MQTT do sistema de terceiros deve estar conectada à rede que hospeda a versão local do FlightHub 2. O broker MQTT é compatível com o tipo EMQX. Se for utilizado um broker MQTT diferente do EMQX, os usuários precisarão realizar seus próprios testes para garantir a compatibilidade e a funcionalidade.
- O sistema de terceiros deve garantir que as portas tanto do servidor MQTT quanto da URL de webhook estejam abertas. Consulte a seção
Configurando a bridgepara obter mais detalhes.
Etapas de configuração
Configurando a bridge
Insira o comando curl no seu terminal para configurar o endereço da bridge MQTT e configurar webhooks para monitorar o status online e offline do dispositivo.
Exemplo:
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"
}
}'
Descrição dos parâmetros:
mqtt:
- "http://10.94.98.15:38080": Deve ser substituído pelo endereço e pela porta onde a versão local do FlightHub 2 está em execução.
- id: Identificador exclusivo da bridge. Pode ser personalizado e deve conter apenas letras e números.
- nome de usuário: Nome de usuário autorizado a se conectar ao MQTT de terceiros.
- senha: Senha para conexão com MQTT de terceiros. Não pode ficar vazio.
- proto_ver: Número da versão do Protocolo MQTT. Atualmente oferece suporte apenas a mqttv4. O padrão é mqttv4.
- endereço: Endereço de acesso do MQTT de terceiros.
- ID do cliente MQTT: Identificador do cliente MQTT. Pode ser personalizado e deve conter apenas letras e números.
webhook:
- url: URL da interface que rastreia eventos de dispositivos de terceiros online e offline.
- método: Método da interface que rastreia os eventos de conexão e desconexão de dispositivos de terceiros.
- caminho: Caminho da interface que acompanha os eventos de conexão e desconexão de dispositivos de terceiros.
- body_template: Um modelo de string para o conteúdo enviado à interface de terceiros para eventos de dispositivo online e offline. Você pode modificar as chaves para atender aos requisitos específicos da sua interface.
Verificação da configuração: As informações a seguir indicam que a configuração foi concluída com sucesso. Se o retorno for uma falha, verifique se o endereço e a porta estão configurados corretamente e se a rede está conectada.
{"result":{"code":0,"message":"success"},"data":null}
Consultando a bridge
Digite o comando curl no seu terminal para consultar o status da Ponte MQTT.
Exemplo:
curl -X GET "http://10.94.98.15:38080/bridges/v1/resources"
Modificando a bridge
Digite o comando curl no seu terminal para consultar o status da Ponte MQTT. Ao modificar, verifique se o ID do MQTT e o ID do webhook não podem ser alterados. Para outras descrições de parâmetros, consulte a descrição de parâmetros do comando de configuração da bridge.
Exemplo:
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"
}
}
'
Ativando ou desativando a bridge
Insira o comando curl no seu terminal para ativar ou desativar a função de bridge. Quando desativada, as mensagens MQTT não poderão ser encaminhadas para o broker MQTT da plataforma de terceiros.
Exemplo:
curl -X PUT "http://10.94.98.15:38080/bridges/v1/resources/switch" -H "Content-Type: application/json" -d '{
"enabled": true
}
'
Vinculando o dock a um sistema de terceiros
Consulte o tutorial Acesso ao servidor em nuvem para vincular o dock a um sistema de terceiros.
Vinculando o dock ao FlightHub 2
Consulte o manual do usuário do FlightHub 2 ->Gerenciamento da organização->Gerenciamento do dispositivo ->Gerenciamento do dock para vincular o dock a uma organização no FlightHub.
Verificando a bridge
Verificação do Mosquitto:
- Abra dois terminais e assine o tópico 'thing/product/+/osd' tanto no FlightHub 2 quanto no broker MQTT de terceiros.
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"
- Em um terceiro terminal, publique a mensagem "test" no tópico. Se o "test" aparecer em ambos os terminais inscritos, a configuração da bridge será bem-sucedida.
mosquitto_pub -h <FlightHub 2 Broker IP> -p <FlightHub 2 Broker Port> -t "thing/product/sn1/osd" -m "test"
Verificação do FlightHub 2: Se os dados MQTT recebidos pelo broker de terceiros corresponderem aos dados da interface local do FlightHub 2, a bridge será bem-sucedida.
Observações
1. Estratégia para usar a função de transmissão ao vivo com o sistema de terceiros e o FlightHub 2
O sistema de terceiros tem prioridade mais alta. Ele pode assumir a transmissão ao vivo do FlightHub 2 depois que ela for iniciada. Quando o sistema de terceiros inicia a transmissão, o FlightHub 2 não pode iniciar uma transmissão ao vivo. Para ativar a transmissão ao vivo no FlightHub 2, use o seguinte comando para desativar a transmissão ao vivo do sistema de terceiros.
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"
}'
Observação: sn refere-se ao número de série do dock.
2. Após ativar a função bridge MQTT, o dock encaminhará automaticamente os arquivos de mídia da aeronave diretamente para o sistema de terceiros.
Consulte o tutorial de Gerenciamento de Mídia para configurar o endereço do bucket do sistema de terceiros.