Interface entre Arduino e Android com Bluetooth: Aplicação Final

Olá galera, vamos continuar com o nosso tutorial sobre a Interface entre Arduino e Android com Bluetooth. Para acompanhar este artigo é necessário que você tenha lido o anterior.

 

Bom, no artigo anterior nós fizemos o design/layout, agora vem uma parte que é um pouco mais complicada, mas não é nenhum bicho de sete cabeças. Vamos lá, para começar iremos fazer algumas configurações, primeiramente vá aos componentes:

 

bluetooth-componentes
Figura 1 -  Componentes do aplicativo

 

E clique em BluetoothClient1. Em seguida, desmarque a opção Secure

 

bluetooth-secure

 Figura 2 - Opção Secure

 

Desativamos o Secure para que o módulo Bluetooth ou seu celular não fique pedindo senhas na hora do pareamento. Agora, nessa tela de componentes você irá clicar em ActivityStarter1 e no campo Action você deverá escrever essa linha de código:

 

 

bluetooth-action
Figura 3 - Campo de ação

  

Agora temos que clicar em Clock1 (também está nos componentes) e reduzir o tempo de 1000 para 100.

 

bluetooth-clock
Figura 4 - Ajustando o clock

 

Pessoal, essa parte de pequenas configurações realmente é um pouco chata, mas  acabou! Agora vamos dar vida ao nosso aplicativo, com códigos é demais... Bora lá!

 

Agora você precisa ir em BLOCKS e montar essa programação:

 

bluetooth-variavel
Figura 5 - Declarando uma variável

 

Adicione essa variável para armazenarmos o que vier do bluetooth. Acrescente:

 

bluetooth-programando-tela
Figura 6 - Programando o inicio da tela

 

Nesse código, temos uma função que quando iniciarmos o aplicativo e o bluetooth não estiver conectado, então, vai chamar a função de ativação. Acrescente:

 

bluetooth-programando-bt-conectar
Figura 7 - Programando o botão de conectar

 

Nesse pedação de código, temos o seguinte: Quando você clicar no botão de conectar e o app já estiver habilitado e conectado, então, ele vai desconectar e mudar o nome do botão para CONECTAR, e também vai abrir a lista (call ListPicker1.Open). Agora, se o bluetooth não estiver habilitado, vai aparecer um alerta na tela com a opção de habilitar. Entretanto, precisamos dar vida a esse alerta, então, vamos fazer essa função:

 

bluetooth-programando-alerta
Figura 8 - Programando o alerta

 

Essa função determina que se a sua escolha no alerta for sim, o aplicativo vai chamar a função de ativar o bluetooth (ActivityStarter1).

 

Agora vamos montar o nosso botão de envio, para acender e apagar o LED, para isso, monte esse código:

 

bluetooth-programando-bt-led
Figura 9 - Programando o botão do led

 

Bom, nesse pedaço temos o seguinte: se o botão para acender o LED for “clicado”, ele verifica se o bluetooth está conectado e se estiver, ele manda o caractere “a” pro Arduino. Já já vamos ver como isso irá funcionar dentro do código do Arduino.

 

Agora, acrescente ao seu código essa função:

 

bluetooth-programando-listpicker
Figura 10 - Programando o ListPicker

 

Esse pedaço de código irá ter a função de listar os dispositivos bluetooth disponíveis para pareamento. Antes de executar o ListPicker, acrescente também ao seu código essa função:

 

bluetooth-programando-listpicker
Figura 11 - Programando o ListPicker

 

Essa função vai ser executada, depois de termos a lista de dispositivos Bluetooth disponíveis para pareamento, então, se você escolher conectar em algum bluetooth disponível. O app vai conectar e aparecerá o alerta: “O bluetooth está conectado!!!!”, se você clicar para conectar e algum bluetooth da lista e ele não conectar, então, aparecerá o alerta “Não houve sucesso ao conectar!!!!”

 

Agora vamos programar nossa função TIMER, acrescente ao código:

 

bluetooth-programando-timer
Figura 12 - Programando a função TIMER.

 

Esse pedação de código é difícil de explicar, você já deve estar familiarizado com as estruturas condicionais, alertas, funções e etc... Então, tente olhar para esse pedaço de código e tente compreender. Enfim, esse pedaço de código, vai ter o papel de receber os bytes do Arduino, ou seja, estamos trabalhando com um ping e pong, eu mando uma ordem pro Arduino ele recebe e me manda de volta o resultado. Esse pedaço de código tem a função de receber do Arduino os caracteres “1on” e “1off” para termos uma noção se o LED está aceso ou não.

 

Dessa forma, se o Arduino nos mandar os caracteres “1on” o LED está aceso, e se ele nos mandar os caracteres “1off”, o LED está desligado.

 

Se você está lendo até aqui, você é um guerreiro e saiba que você é motivo de orgulho e felicidade pra mim, por estar lendo meu artigo. Boa notícia, o código do APP acabou, bora pro Arduino! Abra sua IDE e digite esse código:

 

 

Agora segue o esquema do módulo bluetooth HC-05 com o Arduino:

 

bluetooth-circuito
Figura 13 - Esquema do módulo no Arduino UNO

 

Bom, não quero que você apenas copie, cole e compile. Vamos tentar entender tudo. Primeiramente configuramos o pino do LED e acrescentamos um boolean. Na estrutura do void loop temos o seguinte, ele vai ler o status do LED, e se o LED estiver apagado, ele vai enviar os caracteres “1off” para o aplicativo. O aplicativo vai receber os caracteres “1off”, e aí vai acontecer tudo aquilo que expliquei e programamos no aplicativo. Bom ao ler o status do LED e o mesmo estiver aceso, então o Arduino vai enviar os caracteres “1on” para o aplicativo. Agora, se o aplicativo enviar o caractere ‘a’ pro Arduino, aí o Arduino vai ler o status do LED e se ele estiver apagado vai acendê-lo e mandar os caracteres “1on” de volta para o aplicativo. Caso contrário, ele vai apagar o LED e mandar os caracteres “1off” de volta para o aplicativo. E é assim que funciona essa comunicação, é um constante ping-pong.

 

Enfim, espero que tenham aprendido e gostado, muito obrigado por acompanhar e até a próxima.

Apaixonado pela área de TI desde pequeno, admirador do movimento open-source, amo software e hardware, principalmente a interação entre eles. Busco ensinar tudo que aprendo. Hoje, trabalho como freelancer em desenvolvimento de firmware, aplicativo mobile e criação de sites.