Integração MQTT

2026-10-16

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

  1. Consulte o manual de implantação da versão local do DJI FlightHub 2 para implantar a versão local do FlightHub 2.
  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.
  3. 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 bridge para 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 nuvemopen in new window 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:

  1. 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"
  1. 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ídiaopen in new window para configurar o endereço do bucket do sistema de terceiros.

Last Updated: