No primeiro post sobre o Android e Arduino (leia aqui), eu mostrei como usar um celular com Android para enviar comandos e controlar as portas do Arduino através do bluetooth.
 
Hoje vou mostrar o caminho inverso, ou seja, como enviar dados do Arduino Uno R3 para o Android, também usando o programa Microcontroller BT, disponível no Google Play.
 
Para isso, montei um circuito usando o nosso já conhecido sensor óptico reflexivo TCRT5000 (leia aqui um artigo referente à esse sensor), um módulo bluetooth JY-MCU e um potenciômetro. O Arduino enviará os dados recebidos do sensor (que funcionará como um contador incremental) e também do potenciômetro, gerando no Android uma tela como essa :
Tela final Android - Recebendo dados


Observe na montagem do circuito que eu utilizei 2 resistores no pino RX
do módulo Bluetooth. A função desses resistores é atuar como um divisor
de tensão, já que o módulo BT que estou utilizando trabalha com 3.3 v
no pino de sinal, e se ligarmos diretamente esse pino no Arduino, que
trabalha com 5 volts, corremos o risco de danificar o módulo BT.
Utilizei 2 resistores, um de 220 ohms e um de 330 ohms, que fizeram com
que a tensão do sinal vindo do Arduino caísse para aproximadamente 3
volts.

Você não tem resistores de 220 e 330 ohms ? Não tem problema. Acesse este link, digite 5 para a tensão de entrada, digite os valores dos resistores (R1 e R2)  que você possui, e pressione o botão Calcular para verificar no campo tensão de saída o valor correspondente, lembrando que por segurança esta deve ser, no máximo, de 3.3v.
Para o sensor óptico, utilizei um resistor de 10 K para o transistor (parte inferior/preta do sensor), e um resistor de 330 ohms para o led infravermelho (parte superior/azul) :
Circuito Arduino Android Bluetooth
Antes de partir para a configuração do Android, desconecte o Vcc do
módulo bluetooth e carregue o programa abaixo no Arduino. Por que
desligar o Vcc ? Porque o módulo bluetooth também utiliza a comunicação serial
com o Arduino, e isso pode gerar algum conflito na hora de
transferirmos o programa pelo computador :
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
 
// Programa : Envio de dados Arduino => Android  
// Autor : Arduino e Cia  
   
int contador = 0;  
int pinosensor = 7; //Ligado ao pino "coletor" do sensor optico  
int leitura; //Armazena o valor lido pelo sensor  
int pinpot = A0; //Ligado ao pino central do potenciometro  
   
void setup() 
{  
  pinMode(pinosensor, INPUT); //Define o pino do sensor como entrada  
  pinMode(pinpot, INPUT); //Define o pino do potenciometro como entrada   
  Serial.begin(9600);  

  //Envia o valor inicial zero do contador para o Android  
  Serial.write(201);   
  Serial.write(highByte(contador));  
  Serial.write(lowByte(contador));  
}  
   
void loop()  
{  
  //Le as informacoes do pino do sensor 
  leitura = digitalRead(pinosensor);  
  if (leitura != 1) //Verifica se o objeto foi detectado  
  {  
    contador = contador++; //Incrementa o valor do contador 

    //Loop caso o objeto pare sobre o sensor  
    while(digitalRead(pinosensor) != 1)  
    {  
      Serial.println(contador);  
      //Envia o valor atualizado do contador para o Android  
      Serial.write(201);  
      Serial.write(highByte(contador));  
      Serial.write(lowByte(contador));  
    }  
  }  

  //Envia as informacoes do potenciometro para o Android  
  int valor_pot = analogRead(pinpot);  
  Serial.write(202);  
  Serial.write(highByte(valor_pot));  
  Serial.write(lowByte(valor_pot));  
  delay(50);  
}  
Finalizada a transferência do programa para o Arduino, ligue novamente o Vcc do módulo bluetooth e, no Android, execute o aplicativo Microcontroller BT (disponível para download nesse link) :
 
Android - Bluetooth - Tela inicial
Aperte a tecla MENU no seu celular e escolha a opção NEW LAYOUT :
Android - Bluetooth - New Layout
Dê um nome ao seu layout. Escolhi “Arduino Monitor” :
Android - Bluetooth - Nome Layout
Após digitar o nome, o programa volta para a tela anterior, com o layout
em branco, e o nome do layout escolhido no canto superior esquerdo. Aperte novamente a tecla MENU do seu celular e escolha a opção EDIT MODE :
Android - Bluetooth - Layout vazio
Repare que o layout ficará na cor vermelha, indicando que você está no modo de edição. Na base da tela, arraste a aba até aparecerem os botões para criarmos o layout :
Android - Bluetooth - Botoes disponiveis
Clique no botão TextView e segure até que o mesmo seja transferido para a tela principal do layout. Faça isso 4 vezes, criando 4 botões texto. Seu layout inicialmente ficará assim :
Android - Bluetooth - Layout botoes texto
Clique no botão TEXTVIEW superior esquerdo, e configure-o com as opções abaixo. Clicando no ícone de edição, conforme destacado, você consegue alterar o texto do botão, que no meu caso eu configurei como “CONTADOR :“. Clique em DONE quando terminar de configurar :
Android - Bluetooth - Configurar botao texto Contador
 
Faça o mesmo com o botão inferior esquerdo. Utilizei o texto “Potenciometro” :
Android - Bluetooth - Botoes texto configurados
Vamos agora configurar os botões de texto que receberão os dados do Arduino. Clique no botão superior direito, referente ao sensor óptico e configure-o da seguinte maneira :
Android - Bluetooth - Botao texto dados sensor
O botão inferior direito receberá os dados lidos do potenciômetro  :
Android - Bluetooth - Botao texto dados potenciometro
 
Terminada a configuração do layout, sua tela estará parecida com essa :
Android - Bluetooth - Layout finalizado
Aperte a tecla “retornar”, do seu celular, e o layout voltará a ficar em cinza, indicando que você saiu do modo de edição. Aperte a tecla MENU do seu celular, e escolha a opção Connect. :
Android - Bluetooth - Connect
 
Selecione o dispositivo bluetooth, que deve estar previamente pareado com o
seu aparelho, e após alguns segundos o layout do programa ficará verde,
indicando que o mesmo está conectado ao módulo bluetooth no Arduino.
Observe no lado direito, no topo do layout, que o meu celular está
conectado ao dispositivo LINVOR e o programa está recebendo os dados referentes ao sensor óptico e ao potenciômetro :
Android - Bluetooth - Recebendo dados
Veja neste link um vídeo demonstrando o circuito apresentado neste artigo.
Avalie este post!