Nos tutoriais anteriores, foram discutidos pacotes de protocolo MQTT e mecanismos de segurança MQTT. Agora é hora de começar a sujar as mãos. Para criar uma rede de comunicação na qual vários dispositivos IoT possam se comunicar entre si por meio de um agente MQTT, é importante configurar os dispositivos IoT como clientes MQTT. O MQTT é desenvolvido no topo da pilha TCP/IP, portanto, os dispositivos devem ter uma pilha TCP/IP com eles se quiserem se comunicar entre si por meio do corretor MQTT.
Neste tutorial, um Smartphone e um PC serão configurados como clientes MQTT. Para criar um cliente MQTT para smartphone Android, pode ser usado o aplicativo de painel MQTT, que é um aplicativo Android. Este aplicativo Android suporta o protocolo MQTT para se comunicar com outros clientes MQTT. Para configurar o PC como cliente MQTT, pode ser usada a lente MQTT, que é um complemento do Chrome que também suporta o protocolo MQTT. Depois que o celular e o PC estiverem configurados como clientes MQTT, eles poderão se comunicar via MQTT Broker.
Configurando o celular como cliente MQTT –
Para configurar um dispositivo móvel como cliente MQTT, qualquer aplicativo compatível com MQTT pode ser baixado ou um aplicativo personalizado que suporta o protocolo MQTT pode ser criado. Existem muitos aplicativos Android disponíveis na Google Play Store que podem ser usados para criar um cliente MQTT para telefone Android. Neste tutorial, o aplicativo IOT MQTT Dashboard é usado.
Baixe e instale o aplicativo. Após a instalação no telefone Android, abra o aplicativo. Será aberta uma janela do painel. Nessa janela, toque no sinal de adição.

Figura 1: Captura de tela móvel da atividade principal no painel IOT MQTT
Será aberta uma nova janela para estabelecimento de conexão.

Fig. 2: Captura de tela móvel da nova atividade de conexão no painel IOT MQTT
No campo ID do cliente, defina um nome exclusivo (uma string) para que, quando o cliente móvel se conectar ao broker MQTT, o broker MQTT possa facilmente identificar e enviar ou receber os dados do pacote apenas para esse cliente específico. Os dois clientes não devem ter o mesmo nome. Portanto, o nome do cliente deve ser exclusivo. O ID do cliente pode ter no máximo 24 bytes.
Após o campo ID do cliente, o corretor MQTT deve ser mencionado. Neste tutorial, o HiveMQ é usado como corretor MQTT. Qualquer outro corretor como Mosquitto, Eclipse Paho ou CloudMQTT também pode ser usado. O campo do servidor deve conter o nome de domínio ou endereço IP público do corretor/servidor MQTT. O domínio do corretor HiveMQ é-broker.mqttdashboard.com.
Em seguida, defina o número da porta do intermediário público no qual ele pode se comunicar. A porta 1883 é usada para nenhuma segurança, enquanto a porta 8883 é usada para permitir a segurança TLS/SSL de transporte. Aqui os dados são enviados na porta 1883, que é um canal não criptografado.
Em seguida, defina o nome de usuário e a senha para conectar-se ao corretor MQTT. Porém, não é obrigatório mencionar nome de usuário e senha. Como a porta 1883 é usada, que é uma porta não criptografada, não há necessidade de definir o SSL como 1 porque o SSL deve ser definido como 1 somente se o canal ou porta criptografado for usado.
Salve a configuração tocando no botão criar. O cliente móvel enviará uma solicitação ao corretor público e o corretor ouvirá essa solicitação e fornecerá uma conexão ao cliente MQTT.
Desta forma, o celular pode ser configurado como cliente MQTT. O cliente MQTT agora pode ser conectado ao corretor MQTT e o status de conexão ficará visível no aplicativo.
Configurando o PC como cliente MQTT –
Para configurar o PC como cliente, é usado um plugin de navegador – MQTTlens. Ele tem a capacidade de se conectar ao corretor MQTT e pode se comunicar com outros clientes MQTT. Este plug-in está disponível para o navegador Chrome e pode ser adicionado a ele na Chrome Web Store. A lente MQTT oferece suporte a algumas funcionalidades extras para iniciar a conexão com o corretor. Com esta conexão complementar do PC como cliente MQTT pode ser facilmente configurada.

Fig. 3: Captura de tela da extensão MQTTLens Chrome para configurar o PC como cliente MQTT
Depois de adicionar a extensão, uma janela do painel será aberta. Toque no sinal de adição para criar uma conexão.

Figura 4: Captura de tela da janela principal do MQTTLens
Uma janela pop-up será aberta para adicionar uma nova conexão.

Fig. 5: Captura de tela da nova janela de conexão do MQTTLens
No campo nome da conexão, escreva qualquer nome (não é obrigatório ser exclusivo). Assim como PC_CLIENT pode ser usado como nome de conexão. Em seguida, defina o nome de domínio do corretor MQTT para que o cliente PC possa iniciar a conexão com o corretor. Deve-se utilizar o mesmo broker (HiveMQ) utilizado nos demais dispositivos clientes (cliente móvel neste caso) pois a comunicação entre esses dois clientes será estabelecida através do broker MQTT que deverá ser igual para ambos os dispositivos. A seguir, defina a porta na qual o corretor público está conectado, ou seja, 1883.
Para identificar o PC como um cliente exclusivo, o próprio MQTTlens gera o ID do cliente exclusivo. Cada vez que o cliente estabelece conexão com o corretor, o cliente gera um ID de cliente aleatório. O MQTTlens possui facilidade de sessão limpa, conexão automática, keep alive e última conexão.
A sessão limpa é definida como 1 para que o servidor possa descartar qualquer informação e dados do cliente conectado anteriormente e, assim, tratar a nova conexão como limpa. Cada vez que o cliente PC se conecta ao servidor, ele trata a conexão como uma nova conexão e não armazena nenhuma assinatura e mensagem anterior.
A seguir, a conexão automática é 1 para conectar automaticamente o PC ao corretor. Os segundos Keep Alive são definidos para 120 segundos, que é o tempo máximo que o cliente e o corretor podem ficar conectados, mesmo que não estejam trocando dados entre si.
Os campos Nome de usuário e senha não são campos obrigatórios, mas podem ser definidos se desejado. Eles não estão definidos aqui. O próximo tópico de última vontade e a mensagem de última vontade podem ser definidos, se desejado. Quando o tópico de última vontade e as mensagens de última vontade são definidos, se o corretor MQTT estiver enviando uma mensagem para o cliente inscrito e a conexão entre os dois for fechada repentinamente, a mensagem será enviada como mensagem de última vontade para esse tópico. Se a última vontade não for definida, se a conexão entre o cliente e o servidor for desconectada repentinamente, o pacote de mensagens será perdido e o cliente não receberá nada.

Fig. 6: Captura de tela dos novos campos de conexão do MQTTLens
Salve as configurações clicando no botão ‘Criar conexão’. Após salvar a configuração, o cliente MQTT pode ser conectado ao broker MQTT e o status de conexão ficará visível no aplicativo.
Desta forma o PC atuará como cliente MQTT através do plugin do navegador. Agora o PC está definido como cliente MQTT e pode se conectar a outros clientes através do corretor MQTT.
Neste tutorial, um smartphone Android e um PC foram definidos como clientes MQTT com corretor HiveMQ sem segurança. O próximo tutorial discutirá como definir tópicos e mensagens do lado do editor e do assinante. Depois disso, os dois clientes podem se comunicar através do corretor MQTT (público).