Índice:

MQTT em placas Armtronix: 3 etapas
MQTT em placas Armtronix: 3 etapas

Vídeo: MQTT em placas Armtronix: 3 etapas

Vídeo: MQTT em placas Armtronix: 3 etapas
Vídeo: Marking The Script For Dimmer Board Operation 2024, Novembro
Anonim
MQTT em placas Armtronix
MQTT em placas Armtronix

Neste instrutível, gostaríamos de mostrar inicialmente como você pode usar um sistema baseado em Linux (Debian ou Ubuntu) e instalar o Mosquitto (Mqtt Broker) nele, também mostrar como usar o cliente Mqtt em seu telefone (Android) / baseado em Linux sistema, enviando e recebendo mensagens via Mqtt. Depois de nos familiarizarmos com isso, gostaríamos de mostrar como você pode configurar e conectar nossa placa com este corretor Mqtt instalado. Também gostaria de mostrar como você pode adicionar autenticação ao corretor Mqtt e algumas dicas e truques básicos para depurar. Então vamos começar ………..

Etapa 1: Instalando o Mqtt Broker:

Instalando o Mqtt Broker
Instalando o Mqtt Broker
Instalando o Mqtt Broker
Instalando o Mqtt Broker
Instalando o Mqtt Broker
Instalando o Mqtt Broker
Instalando o Mqtt Broker
Instalando o Mqtt Broker

Existem vários brokers Mqtt que você pode instalar. Alguns conhecidos são mencionados abaixo. Alguns deles são serviços baseados em nuvem.

  • HiveMQ
  • MosquittoCloud
  • MQTT
  • Adafruit.io

Estaremos mostrando a você como instalar o Mosquitto em um sistema baseado em Linux (Ubuntu 18.04). Para fazer isso, primeiro adicione o Mosquitto à lista de fontes do Ubuntu. Assim que o Mosquitto estiver disponível nos repositórios do Ubuntu, você poderá instalá-lo com apt-get.

Basta abrir um Terminal. Para abrir um Terminal, vá para o canto inferior esquerdo da área de trabalho do Ubuntu, clique em Mostrar aplicativo (grade 3X3 apontada). Uma janela será aberta. Lá você procura Terminal. Clique no terminal para ver uma janela aberta, conforme mostrado nas imagens a seguir.

  • Mostrar aplicativo (imagem 1).
  • Procure o terminal (imagem 2).
  • Janela do Terminal (Imagem 3).

Digite os seguintes comandos depois de abrir o Terminal

sudo apt-add-repository ppa: mosquitto-dev / mosquitto-ppa

sudo apt-get update

sudo apt-get install mosquitto

Você também pode instalar o cliente Mqtt. O comando para fazer isso será

sudo apt-get install mosquitto-clients

Algumas imagens para sua referência

  • Adicionando ppa (Imagem 4).
  • Atualizando repo (Imagem 5).
  • Instalando o Mosquitto (Imagem 6).
  • Instalando o cliente Mosquitto (Imagem 7).

Etapa 2: Teste MQTT (Mosquitto)

Testando MQTT (Mosquitto)
Testando MQTT (Mosquitto)
Testando MQTT (Mosquitto)
Testando MQTT (Mosquitto)
Testando MQTT (Mosquitto)
Testando MQTT (Mosquitto)

Para testar o mqtt via ubuntu (mesmo sistema ou outro sistema), você precisa instalar o cliente mqtt que foi instalado anteriormente pelo comando sudo apt-get install mosquitto-clients. Caso queira testá-lo usando um telefone celular (Android), você pode instalar o aplicativo MyMqtt da Play Store.

Mqtt funciona em algo chamado Tópicos. Para facilitar a compreensão, considere esses tópicos como uma pasta no disco rígido de um computador. Vamos tratar este computador como um servidor de computador (que no mundo mqtt é um corretor Mqtt). Neste servidor, consideremos ter uma pasta.

Nome da pasta: / Folder_one /

Agora vamos considerar duas pessoas de dois sistemas diferentes (PC / Laptop) acessando este servidor para ler arquivos ou para enviar / descarregar arquivos ou para fazer ambas as operações.

Nomearemos as duas pessoas / sistema como Sistema X, Sistema Y (Esses são clientes Mqtt no mundo Mqtt).

Agora, digamos que o System X envie / despeja algum arquivo (nome do arquivo: temperatura) na pasta “/ Folder_one /”, isso no mundo mqtt podemos chamar isso de publicação (enviamos alguma mensagem / carga em vez de arquivo).

Agora, digamos que o Sistema Y deseja obter / ler este arquivo ou qualquer novo arquivo ou atualizar nesta pasta, a primeira coisa que ele precisa é saber o nome da pasta e o caminho, que em nosso caso é “/ Folder_one /”. Agora ele irá para esta pasta e ler / receber aquele arquivo (nome do arquivo: temperatura). Saber o caminho / tópico e verificar se há mudanças no arquivo / novos arquivos no mundo Mqtt é inscrever-se nesse tópico.

Considerando o exemplo acima, System X está publicando em “/ Folder_one” e System Y assinou “/ Folder_one”

Observe também que o System X também pode assinar “/ Folder_one” e o System Y também pode publicar em “/ Folder_one”. Da mesma forma, até mesmo o sistema Server (The Mqtt Broker) pode publicar / assinar “/ Folder_one” instalando o cliente Mqtt nele, como fizemos atualmente. A outra coisa a lembrar é que para publicar ou assinar um tópico, você precisará saber o endereço IP do Mqtt Broker.

Primeiro, iremos testá-lo através do cliente ubuntu, que está instalado no mesmo sistema que o corretor. Abriremos duas janelas de terminal, uma delas publicará e a outra se inscreverá nela. Para o exemplo, usaremos / Folder_one como o tópico. Antes de publicar / assinar um tópico, você precisará encontrar o endereço IP do Ubuntu. Para fazer isso, clique no canto superior direito da tela, selecione a configuração wi-fi, a partir daí você será capaz de encontrar o endereço IP do sistema ubuntu (atualmente o IP do broker). Atalho de tela compartilhado para referência (Imagem 8).

Ou para encontrar o endereço IP do corretor, você pode encontrar o endereço IP instalando ferramentas de rede usando o seguinte comando no terminal

sudo apt install net-tools

Instalando o net-tools (Imagem 9). Após isso basta digitar o comando ipconfig você obterá uma lista de interface de rede com o mac e endereço IP

sudo ipconfig

O endereço IP do meu sistema é 192.168.1.67 (Imagem 10)

Publicar

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m pub_to_folderone

Aqui, mosquitto_pub é o comando, seguido pelo elemento identificador de parâmetro -h que é o endereço IP do host / corretor (em nosso caso 192.168.1.67), seguido por -t que é o nome do tópico para o editor (em nosso caso / Folder_one), seguido por -m que significa a mensagem / carga a ser enviada que (em nosso caso é pub_to_folderone).

Subscrever

mosquitto_sub -h 192.168.1.67 -t / Folder_one

Mensagem enviada pelo editor: pub_to_folderone

Exemplo para publicação

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m “hi test mqtt”

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m “mqtt funcionando”

Exemplo de resposta recebida ao inscrever-se no tópico

mosquitto_sub -h 192.168.1.67 -t / Folder_one

Mensagem enviada pelo editor:

  • pub_to_folderone
  • oi teste mqtt
  • mqtt trabalhando

Pub Sub em duas janelas de terminal separadas lado a lado (Imagem 11)

Testando Mqtt no Android (my mqtt)

Instale o aplicativo mymqtt da Play Store em seu telefone Android (Imagem 12)

Abra o aplicativo e clique no canto superior esquerdo (Imagem 13, Imagem 14).

Clique em Configurações e insira o endereço IP do corretor, a porta por padrão é 1883. Atualmente não estamos usando um corretor mqtt autenticado, então o nome de usuário e a senha estarão em branco. Basta salvá-lo e clicar novamente no canto superior esquerdo do aplicativo (<Configurações) a gaveta será aberta novamente (Imagem 15).

No topo da gaveta, ele mostrará o endereço IP do corretor e a porta à qual o aplicativo está conectado (Imagem 16).

Agora adicione o tópico que deseja inscrever clicando em Inscrever-se. Aqui estaremos adicionando tópico como / Folder_one (Imagem 17, Imagem 18).

Depois de fazer isso, a partir do sistema ubuntu, usando o terminal, publicaremos no tópico. Ao publicar, você deve obter a carga útil / mensagem publicada neste aplicativo móvel. Por exemplo, publicar carga útil como “ARM -Automation Robotics & Mechatronics”. O comando é conforme mencionado anteriormente.

mosquitto_pub -h 192.168.1.67 -t / Folder_one -m “ARM -Automation Robotics & Mechatronics”

publicando a partir do sistema ubuntu (Imagem 19).

Mensagem publicada recebida no painel (Imagem 20).

Agora vamos publicar do telefone Android (My mqtt) e se inscrever no sistema ubuntu. Para este exemplo, estamos usando o tópico “/ mymqtt_to_pub”.

Para fazer isso, primeiro abra um terminal em seu sistema ubuntu e inscreva-se no tópico “/ mymqtt_to_pub” usando o seguinte comando (Imagem 21)

mosquitto_sub -h 192.168.1.67 -t / mymqtt_to_pub

Agora vá para a gaveta do aplicativo mymqtt e clique em publicar. Adicione o tópico de publicação (no nosso caso é “/ mymqtt_to_pub”) e envie uma mensagem como se fosse “oi Ubuntu”, pressione o botão enviar (Imagem 22, Imagem 23).

A mensagem deve aparecer na janela do seu terminal do sistema Ubuntu (Imagem 24).

Observe que o sistema ubuntu e o telefone Android devem estar na mesma rede ou a porta 1883 deve ser exposta e você deve saber o endereço IP do seu roteador / gateway para que o mqtt funcione. Se você deseja adicionar autenticação ao seu corretor mqtt, pode fazê-lo seguindo o link do blog mencionado abaixo https://medium.com/@eranda/setting-up-authenticat … Siga a partir da segunda etapa deste blog. Habilitamos a autenticação de nosso corretor e usaremos um corretor autenticado para nossas placas.

Etapa 3: Trabalhar com Armtronix Board e Mqtt

Trabalhando com Armtronix Board e Mqtt
Trabalhando com Armtronix Board e Mqtt
Trabalhando com Armtronix Board e Mqtt
Trabalhando com Armtronix Board e Mqtt
Trabalhando com Armtronix Board e Mqtt
Trabalhando com Armtronix Board e Mqtt

Atualmente para este instrutível, estamos usando nosso Wifi Single Dimmer Board que usa Triac para cortar a onda senoidal e, por sua vez, escurece a lâmpada ou controla a velocidade do ventilador. Também o conectamos por meio do tipo de autenticação mqtt.

Inicialmente configuramos a placa. As etapas para configurá-lo são mencionadas abaixo.

Ao ligar a placa, ela começará a hospedar um ponto de acesso Wifi.

Usando um telefone Android ou laptop, conecte-se a este AP (Imagem 25).

Uma vez conectado a este AP digite 192.168.4.1 abrindo um navegador (chrome / firefox) a partir do sistema / telefone conectado ao AP. Certifique-se de que não está usando sua conexão de dados (3G / 4G).

Ao digitar o IP, será aberta uma página onde deverá ser inserido o seguinte (Imagem 26).

  • SSID: nome do Wifi AP.
  • Senha: Senha SSID.
  • Modo IoT Mqtt ou Http (Selecione Mqtt).
  • Mqtt Broker IP (em nosso caso, é 192.168.1.67).
  • Nome de usuário e senha Mqtt, como estamos usando o tipo de autenticação, usamos Naren, xxxx
  • Mqtt publish topic: será sobre qual tópico o fórum também publica, usamos / testpub.
  • Mqtt subscribe topic: Este será o tópico em que o fórum ouvirá os comandos para acionar o triac, que usamos / testsub.
  • Nome do dispositivo: é o nome que você chama de alexa para acionar a placa, usamos corvi.

Após inserir os dados, clique no botão submit, ao fazer isso você obterá uma tela conforme a Figura 27, aguarde um tempo até que a placa deixe de hospedar o AP.

Observe que conectamos nossa placa via Uart ao monitor serial do Arduino IDE. Portanto, no lado esquerdo, você verá as mensagens de depuração que ele imprime via Uart (isso é apenas para sua referência).

Feito isso, você pode visualizar a tela de depuração. A maioria dos detalhes estará visível lá. Depois disso, ele se conectará com sucesso ao broker na tela de depuração (serial), você pode ver isso.

Conectado ao broker MQTT com autenticação. Inscrito no tópico 1.

Depois de imprimir isso, você pode agora começar a enviar comandos via mqtt no tópico em que ele se inscreveu, ou seja, / testsub /

Para esta placa, os comandos são:

  • R13_ON: Para ligar o triac em 100%.
  • R13_OFF: Para desligar o triac para 0%.
  • Dimmer: xx: Onde, xx é o valor de escurecimento e pode ser variado de 0 a 99.
  • Reset: Para limpar a configuração da placa.
  • Status: Imprime o status do dimmer do quadro no tópico de publicação do quadro.

Para enviar este comando de um sistema baseado em ubuntu onde o cliente mqtt está instalado, apenas digite-o conforme mostrado abaixo. Dois parâmetros adicionais são adicionados aqui por causa da autenticação - ou seja, -u que é o nome de usuário e -P é a senha, observe que eles diferenciam maiúsculas de minúsculas.

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testsub -m R13_ON

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testsub -m R13_OFF

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testsub -m Dimmer: 50

Nota: 50 é o valor do dimmer

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testsub -m R13_ON

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t / testsub -m Status

Para o status mais recente, o status é impresso no tópico de publicação do fórum, que em nosso caso é / testpub. Em nosso painel, qualquer alteração no dispositivo é impressa no tópico de publicação do fórum. Por exemplo, se passarmos Dimmer: 50 no tópico inscrito no quadro do que em executá-lo fisicamente, o quadro enviará uma mensagem informando o nível esmaecido no tópico de publicação. O exemplo é mostrado abaixo, Para se inscrever a partir do seu sistema ubuntu para o tópico de publicação do fórum, digite o seguinte comando

mosquitto_sub -h 192.168.1.67 -u Naren -P xxxx -t / testpub

a mensagem que recebemos é

DimmerIS50

alguns curtos de tela do mesmo estão abaixo (Imagem 28, Imagem 29)

Recomendado: