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.

Estudante de análise e desenvolvimento de sistemas no Instituto Federal de São Paulo, desenvolvedor web, apaixonado por segurança da informação e admirador de movimentos open-source

Deixe um comentário

10 Comentários em "Interface entre Arduino e Android com Bluetooth: Aplicação Final"

Notificar
avatar
Ordenar por:   recentes | antigos | mais votados
raghu faria
Visitante
raghu faria

Cara, muito bom seu artigo, valeu demais. Estou com uma duvida, na programação, quando carrego o programa na IDE do arduino o led 13 fica piscando bem fraco, porem fica piscando. Quando abro o monitor serial, fica mostrando 1on e 1off o tempo todo..Tem como da uma ajuda?Obrigado

Geovane Santos
Visitante
Geovane Santos

BRILHANTE POSTAGEM MAS NAO ENTENDI AINDA A FUNCÃO DO "a"que seria enviado ao arduino,o fato de simplesmente ter 1on e 1off nao bastaria??

Igor Sousa
Visitante
Igor Sousa

Ótimo artigo, parabéns!

Jessica Gross
Visitante
Jessica Gross

Olá, estou fazendo um projeto e queria saber se você sabe como fazer um alerta caso o Bluetooth desconece sozinho depois que ultrapassou 5 metros?

Fabio_Souza_Embarcados
Visitante
Fabio_Souza_Embarcados

Olá Jéssica, você pode fazer algo com Beacon: http://makernews.info/featured/2015/09/BLE-nrf24l01-arduino.html

Vanderley Di Paula
Membro
Vanderley Di Paula

Boa noite Bruno .... cara achei excelente seus artigos, vc foca bem os detalhes muito bom mesmo, continuo aguardando seu proximo artigo, só uma coisa pra eu baixar este aplicativo no meu celular é só eu clicar no upload file ?? porem estou fazendo a programaçao pelo computador, como baixo para o celular ?? desculpe minha ignorancia, mas quem nao pergunta nunca saberá né rsrsrs

Alain Mouette
Visitante
Alain Mouette

Muito interessante!
Mas faltou a cereja do bolo: como fica a tela no Android ao ser executada a App?

Luiz henrique Campos
Visitante
Luiz henrique Campos

Ola Bruno ! Eu fiz tudo como vc mostrou mas não duas coisas no meu não funcionam: 1º no app. quando clico em conectar ele não conecta o bluetooth tenho que habilitar eu mesmo senão o app não liga e 2º quando vou testar o liga e desliga nada acontecem com o led... o que será que está errado? pois já revisei toda a programação e nada aparentemente está errado,
Me ajude por favor...

wpDiscuz