Este tópico descreve como usar o MQTT.fx em um computador Windows para simular um dispositivo de gateway de nuvem MQTT, conectá-lo à IoT Platform e enviar dados.
Pré-requisitos
Adquirir uma instância Enterprise Edition. Este tutorial utiliza uma instância Exclusive Enterprise Edition na região China (Shanghai).
-
Baixe e instale o software MQTT.fx. Para obter instruções, consulte MQTT.fx.
Como softwares de terceiros recebem atualizações frequentes, sua interface pode apresentar diferenças.
-
Gere um certificado personalizado.
Este tutorial exige um certificado personalizado que inclua um certificado raiz (
root-ca.crt), uma chave privada do servidor (server.key) e um certificado de servidor (server.crt).Use o OpenSSL para gerar o certificado. Para mais informações, consulte Gerar um certificado personalizado.
Informações básicas
O MQTT.fx é um cliente MQTT baseado no Eclipse Paho e desenvolvido em Java, com suporte para Windows, macOS e Linux. Essa ferramenta permite verificar se um dispositivo consegue se conectar à IoT Platform e se comunicar por meio de tópicos.
Os dispositivos podem utilizar métodos como certificados personalizados, autenticação no lado do servidor e tópicos personalizados para estabelecer conexão e se comunicar com a IoT Platform.
Para mais detalhes sobre autenticação e comunicação de dispositivos em um gateway de nuvem MQTT, consulte Visão geral dos gateways de nuvem MQTT.
Conectar um dispositivo usando MQTT.fx (verificação unilateral)
Etapa 1: Criar um gateway de nuvem e um dispositivo
-
Criar um gateway de nuvem MQTT. Ao configurar o gateway, utilize o conteúdo do arquivo
server.keyno parâmetro Server-side Private Key e o conteúdo do arquivoserver.crtno parâmetro Server Certificate.Configure os demais parâmetros da seguinte forma: selecione MQTT em Protocol, mantenha o valor padrão 1883 em Custom Port Number, escolha one-party verification em Authentication Type, selecione No em Enable Data Parsing, marque No em Enable Device X.509 Certificate Authentication e defina Do not enable em Enable OCSP.
-
Na lista de gateways de nuvem, copie e salve a Gateway URL.
Essa lista exibe informações como nome do gateway, protocolo, Gateway URL e status.
Adicionar dispositivos em lote. Para este tutorial, adicione apenas um dispositivo. Defina MQTT Username como
device_01e MQTT Password comohello123.
Etapa 2: Configurar a conexão do MQTT.fx
Abra o software MQTT.fx. Na barra de menus, clique em Extras e selecione Edit Connection Profiles.
-
Na página Edit Connection Profiles, configure os seguintes parâmetros.
-
Defina as informações básicas. Mantenha os valores padrão para os outros parâmetros.
Parâmetro
Descrição
Profile Name
Insira um nome personalizado.
Profile Type
Selecione MQTT Broker como tipo de conexão.
Broker Address
Insira o nome de domínio da Gateway URL salva anteriormente.
Broker Port
Defina o número da porta personalizada. O padrão é
1883.Client ID
Opcional. Um ID de cliente personalizado com até 64 caracteres. Para facilitar a identificação, use o endereço MAC ou o número de série (SN) do dispositivo.
-
Clique em User Credentials, marque a caixa de seleção Use Username/Password e defina User Name e Password.
O User Name e a Password devem corresponder ao MQTT Username e à MQTT Password do dispositivo adicionado.
Clique em SSL/TLS, marque a caixa de seleção Enable SSL/TLS e defina Protocol como TLSv1.2.
Selecione CA certificate file e indique o caminho para o seu arquivo
root-ca.crt.
-
Após configurar os parâmetros, clique em OK.
-
Clique em Connect.
Uma luz verde à direita indica que a conexão foi estabelecida com sucesso. No console da IoT Platform, acesse a página Devices > Devices da sua instância. O status do dispositivo
device_01aparecerá como online.
Conectar um dispositivo usando MQTT.fx (verificação por terceiros)
Etapa 1: Criar uma função de autenticação de dispositivo
Faça login no console do Function Compute. No painel de navegação à esquerda, clique em Services & Functions.
Na barra de navegação superior, selecione a região China (Shanghai). Na página Services, clique em Create Service.
No painel Create Service, insira um Service Name, como IoT_Service, e clique em OK.
Na página Functions, clique em Create Function.
-
Na página Create Function, configure os parâmetros abaixo e clique em Create.
Escolha Create with Built-in Runtime como método de criação. Em Function Name, insira
three_party_auth. Para Request Handler Type, selecione Event Handler. Em Runtime, escolha Python 3.6. -
Na página Function Details, substitua o código de exemplo pelo código a seguir e clique em Deploy Code.
A função de autenticação retorna o UserName como deviceName.
# -*- coding: utf-8 -*- import logging import json import time import enum import random import string class Request: def __init__(self, json_str): self.clientId = None self.username = None self.password = None self.certificateCommonName = None for key, value in json.loads(json_str).items(): setattr(self, key, value) class Response: def __init__(self): self.deviceName = None self.result = 'true' self.message = 'success' def handler(self, request): # Verify the validity of the username and password based on your business requirements. self.deviceName = request.username return json.dumps(self.__dict__) def handler(event, context): request = Request(event) return Response().handler(request)
Etapa 2: Criar um gateway de nuvem MQTT
-
Criar um gateway de nuvem MQTT. Durante a configuração do gateway, use o conteúdo do arquivo
server.keyno parâmetro Server-side Private Key e o conteúdo do arquivoserver.crtno parâmetro Server Certificate. Para o serviço e a função de autenticação de dispositivo do Function Compute (FC), selecione IoT_Service e three_part_auth, criados anteriormente.Configure os demais parâmetros assim: defina Protocol como MQTT, mantenha o valor padrão 1883 em Custom Port Number, escolha Third-party Verification em Authentication Type, selecione No em Enable Data Parsing, marque No em Enable Device X.509 Certificate Authentication, defina Enable OCSP como Disabled e configure Authorization para AliyunIOTAccessingFCRole.
-
Copie e salve a Gateway URL na lista de gateways de nuvem.
Essa lista apresenta dados como nome do gateway, protocolo, Gateway URL e status.
Etapa 3: Configurar a conexão do MQTT.fx
Inicie o software MQTT.fx. Na barra de menus, clique em Extras e escolha Edit Connection Profiles.
-
Na página Edit Connection Profiles, ajuste os parâmetros listados abaixo.
-
Preencha as informações básicas. Utilize os valores padrão para os demais campos.
Parâmetro
Descrição
Profile Name
Insira um nome personalizado.
Profile Type
Escolha MQTT Broker como tipo de conexão.
Broker Address
Informe o nome de domínio extraído da Gateway URL salva.
Broker Port
Especifique o número da porta personalizada. O valor padrão é
1883.Client ID
Opcional. Identificador personalizado de até 64 caracteres. Recomenda-se usar o endereço MAC ou número de série (SN) do dispositivo para facilitar a identificação.
-
Clique em User Credentials, ative a opção Use Username/Password e preencha User Name (por exemplo,
threeParty_device_001) e Password.NotaUser Name: Deve ter entre 4 e 32 caracteres, aceitando letras, dígitos, hifens (-), underscores (_), arrobas (@), pontos (.) e dois-pontos (:). Precisa ser único dentro do produto.
Password: Comprimento de 1 a 32 caracteres, permitindo letras, dígitos, hifens (-), underscores (_), arrobas (@), pontos (.) e dois-pontos (:).
Acesse a aba SSL/TLS, marque Enable SSL/TLS e configure Protocol para TLSv1.2.
Escolha CA certificate file e aponte o caminho do arquivo
root-ca.crt.
-
Concluída a configuração, clique em OK.
-
Clique em Connect.
Uma luz verde à direita confirma o sucesso da conexão. A IoT Platform utiliza o deviceName retornado pela função de autenticação do FC,
threeParty_device_001, como DeviceName do dispositivo. O sistema cria automaticamente o dispositivo, que passa a constar como online na página Devices > Devices do console da IoT Platform.
Enviar dados usando um tópico personalizado
No MQTT.fx, clique em Publish. No campo de texto Publish, insira o tópico personalizado:
/home/garden/fountain.No editor de payload, digite o conteúdo da mensagem e clique em Publish.
Acesse o console da IoT Platform. Na sua instância, vá até a página Maintenance > Log Service para consultar os logs de Device-to-Cloud Messages. Para mais detalhes, veja Consultar logs do lado da nuvem. Clique em Visualize para abrir os detalhes da mensagem, onde constam Topic, timestamp e payload.