CLP Duino Wantronics com Bluetooth

App para comunicação com CLP Duino Wantronics

Neste post vamos usar o CLP Duino Wantronics com Bluetooth, e vamos criar um app para controlar o CLP Duino Wantronics pelo celular usando o MIT APP Invertor.

No nosso caso, vamos apenas acionar os relés do circuito, de acordo com o sinal que recebemos do nosso módulo Bluetooth, entretanto é possível utilizar o CLP Duino Wantronics para enviar dados para o App, recebendo as informações no nosso celular, por exemplo, o nível de tensão de uma porta analógica, ou a temperatura de um sensor.

Primeiramente vamos escrever o código para o Arduino, e em seguida vamos ver como fazer o App.

Código Arduino

O código para gravação no Arduino é mostrado abaixo.

/**********************************************
 * CLP Duino Wantronics
 * 
 * 11 / 09 / 2021
 * 
 * Saídas do 2 ao 7
 * Entradas do 8 ao 13
 * 
 * by Wandery
 *********************************************/
void readBLE();

void setup() {
  pinMode (2, OUTPUT);
  pinMode (3, OUTPUT);
  pinMode (4, OUTPUT);
  pinMode (5, OUTPUT);
  pinMode (6, OUTPUT);
  pinMode (7, OUTPUT);

  Serial.begin(9600);
}
 
void loop() {
 while(Serial.available() > 0)
   {
    readBLE();
   }
}


void readBLE(){
  int i = 0;
  char buf;
  buf = Serial.read();

//Relé 1
  if (buf == 'A') {
    digitalWrite (2, HIGH);
    }
  if (buf == 'a') {
    digitalWrite (2, LOW);
    }

//Relé 2
  if (buf == 'B') {
    digitalWrite (3, HIGH);
    }
  if (buf == 'b') {
    digitalWrite (3, LOW);
    }

//Relé 3
  if (buf == 'C') {
    digitalWrite (4, HIGH);
    }
  if (buf == 'c') {
    digitalWrite (4, LOW);
    }

//Relé 4
  if (buf == 'D') {
    digitalWrite (5, HIGH);
    }
  if (buf == 'd') {
    digitalWrite (5, LOW);
    }

//Relé 5
  if (buf == 'E') {
    digitalWrite (6, HIGH);
    }
  if (buf == 'e') {
    digitalWrite (6, LOW);
    }

//Relé 6
  if (buf == 'F') {
    digitalWrite (7, HIGH);
    }
  if (buf == 'f') {
    digitalWrite (7, LOW);
    }
}

Lembrando que é possível através deste código criar outros códigos de forma que seja compatível com outras placas de desenvolvimento, como por exemplo o ESP32.

Em alguns modelos de módulo Bluetooth, pode ser necessário fazer uma configuração com comandos AT.

Criando o APP no MIT App Inventor

Nesta parte, vamos fazer um passo a passo de como criar o App no MIT App Inventor, e fazer os testes com o celular e a PCB.

A vantagem em se utilizar o MIT App Inventor, além de ser uma ferramenta gratuita permite a criação de Apps de forma mais fácil e rápida, apenas com estruturas de blocos, permitindo prototipação de forma mais rápida.

No link abaixo, temos o acesso ao MIT App Inventor:

https://appinventor.mit.edu/

Abaixo temos a tela inicial do site:

MIT App Inventor

Para começar a criar um projeto, clique em Create Apps!

Faça o login com uma conta de email do Google, e vá em projects, e adicione um novo projeto, no nosso caso será criado um projeto com o nome: CLP_Duino_Wantronics_com_Bluetooth:

tela inicial do projeto

Configurando o Bluetooth

Para configurar o Bluetooth, vamos precisar de dois componentes da paleta, o ListPicker, que se encontra na paleta de interfaces para o usuário, e o Bluetooth cliente, que se encontra na paleta de conectividade. Basta selecionar os componentes e arrastar para tela do App.

Adicionando componentes no MIT App inventor

Na Aba componentes, podemos mudar o nome dos componentes, e caso haja necessidade também podemos deletar um componente.

Em componentes, precisamos adicionar Screen1, e vamos alterar o nome de Screen1 para CLP Duino Wantronics com Bluetooth, para isso vamos em propriedades e em Titulo podemos mudar o nome da cena que será exibido no App. Também vamos mudar o alinhamento horizontal para o centro.

Podemos mudar o nome do componente ListPicker, por exemplo, para ListaBluetooth.

Esse nome que aparece em componentes é muito importante, pois o mesmo se referencia ao nome do componente que vamos utilizar na hora da “programação” dos blocos, e quando forem adicionados mais componentes ficará muito difícil sua localização na hora de programar caso não estejam identificados adequadamente. Entretanto, é importante observar que o nome do componente não é a mesma coisa que o texto que aparece quando o mesmo é adicionado na área de interface com o usuário.

Escolhemos o componente ListPicker, pois quando clicamos nele, ele vai exibir a lista de bluetooths disponíveis para que possamos nos conectar.

Para programar o Bluetooth, vamos até a aba blocos, onde serão adicionados as funcionalidades do nosso App.

Mudando a para o modo programação em blocos

Programação de blocos para o módulo Bluetooth

Em blocos, vamos utilizar dois blocos do ListaBluetooth, um que no momento em que clicarmos na lista, vai exibir a lista de dispositivos disponíveis, e outro que vai fazer a conexão entre o celular e o dispositivo selecionado.

Adicionando os blocos do ListaBluetooth

Como dito anteriormente, temos duas situações, uma após clicar na lista, e outra depois de clicar em um elemento da lista. Quando for clicado na lista, devemos exibir todos os dispositivos disponíveis para conexão, e para isso devemos utilizar um bloco da lista, e outro bloco do módulo bluetooth. Lembrando que o bluetooth do celular deve estar ativado durantes os testes.

Leitura da lista do dispositivos disponíveis para conexão

Para finalizar a configuração do módulo bluetooth, depois de selecionado o dispositivo na lista devemos conectar o dispositivo selecionado ao bluetooth do nosso celular. Para isso devemos configurar o bloco BeforePicking, como mostrado na figura abaixo:

bloco que faz a conexão com dispositivo bluetooth

Adicionando os botões

Até o momento podemos visualizar os dispositivos disponíveis para conexão, e nos conectar, mas como vamos fazer para controlar o nosso CLP Duino Wantronics pelo celular? Para isso vamos adicionar botões, e também vamos adicionar funcionalidades para que os mesmos consigam enviar informações para o CLP Duino Wantronics.

Vamos voltar em designer, adicionar um componente de layout horizontal, para que possamos adicionar dois botões na mesma linha, um para ligar o relé, e outro para desligar o mesmo relé.

Adicionando botões para enviar comandos para o dispositivo a ser controlado

Observem o nome dado aos botões, isso vai facilitar muito na hora de programar os blocos.

Para programar os blocos, devemos verificar no código fonte do Arduino, qual o valor da letra recebida que irá fazer o acionamento do relé, e qual vai desligar o relé. A escolha de qual letra ou string será utilizada é livre, mas para facilitar a programação, foi atribuído em ordem alfabética uma letra para cada relé, por exemplo, a letra ‘A’ liga o relé 1, e a letra ‘a’ desliga o relé 1, a letra ‘B’ liga o relé 2, e a letra ‘b’ desliga o relé 2, e assim sucessivamente.

Programação dos botões

Voltando para o modo programação selecionamos o botão LigaRele1 e escolhemos o bloco, quando LigaRele1.Click, e selecionamos o bloco que chama o módulo Bluetooth.SendText, para que quando o botão for pressionado, seja enviado um texto, ou uma letra.

Em text, selecionamos um com duas aspas, que permite escolhermos o texto que será enviado.

Configurando o botão liga relé

Utilizando o mesmo princípio, vamos configurar o botão desliga do nosso App.

Configurando o botão desliga relé

Com o botão de liga e desliga já é possível testar o nosso App, para isso existem algumas maneiras. A melhor maneira para testar o App, é fazer o download do MIT App Inventor na App Store do Google, e ir no menu Coneect e clicar em AI Companion, e escanear o QR Code. Também é possível compilar o código, e instalar o App diretamente no celular, para isso utilize build, Android App (.apk).

Conclusão

Para concluir o projeto do CLP Duino Wantronics com Bluetooth, devemos adicionar as teclas restantes, e configurar cada letra a ser enviada de acordo com o código escrito em C que foi gravado no microcontrolador do Arduino.

Esse projeto é muito interessante, pois permite fazer controle de lâmpadas e outros dispositivos através do módulo Bluetooth e usando um celular, sem a necessidade de se utilizar fios e cabos de comunicação.

Além disso, o mesmo App e código pode ser aproveitado para outros dispositivos com pequenas alterações, como por exemplo para comunicação com ESP32, em um carrinho de controle remoto, ou até mesmo um robô.

No post, foi possível apenas o uso para acionamento de relés, mas também pode ser feito uma placa para coleta de dados, e o App receber esse dados e exibir na tela celular.

Resultados obtidos

Referências