Enviando dados do Arduino para o Android usando bluetooth
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 :
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) :
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 :
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) :
Aperte a tecla MENU no seu celular e escolha a opção NEW LAYOUT :
Dê um nome ao seu layout. Escolhi “Arduino Monitor” :
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 :
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 :
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 :
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 :
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 :
Faça o mesmo com o botão inferior esquerdo. Utilizei o texto “Potenciometro” :
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 :
O botão inferior direito receberá os dados lidos do potenciômetro :
Terminada a configuração do layout, sua tela estará parecida com essa :
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. :
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 :
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 :
Veja neste link um vídeo demonstrando o circuito apresentado neste artigo.
Avalie este post!
Related Posts
70 Comments
Deixe um comentário Cancelar resposta
Publicidade
Posts recentes
Marcadores
16x2
20x4
128x64
android
arduino
atmega328
attiny85
bluetooth
blynk
componentes
dht11
display
display 7 segmentos
esp32
esp8266
ftdi
gsm
hc-05
HC-SR04
i2c
iot
IR
LCD
led
livros
matriz 8x8
max7219
modulo
modulos
motor de passo
motores
nodemcu
oled
raspberry pi
raspbian
rele
RFID
rtc
sensores
servo motor
shield
som
temperatura
wifi
wireless
Boa Noite, gostaria de saber se pode me ajudar, preciso configurar o bluetooth, para que quando ele perder o sinal ( quando eu me afastar a mais de um metro, do bluetooth / arduino ele acende um Led. ou teria como ao me afastar, perceber a queda de sinal em valores, e regular isso, como por exemplo, apos eu verificar que um determinado sinal, a um metro, fica com um valor, eu colocava no programa e quando atingisse esse valor, o led acenderia, ou apagaria.
Boa noite Eduardo,
O que você precisa é de algo que fique constantemente "conversando" com o celular via Bluetooth e, quando o sinal fosse perdido/alterado, o Arduino executaria algum comando, certo ?
Olha, eu creio que isso seja possível apenas via programação (no celular/tablet/etc), pois o mesmo precisaria enviar sinais, ou responder sinais, constantemente ao módulo bluetooth do Arduino.
Acho que os amigos aqui do blog podem te ajudar melhor, mas a princípio, eu vejo como "ideal", montar um programa específico para isso no Android.
Mesmo assim, se souber de algo ou precisar de ajuda com isso, entre em contato.
Abraços !
Amigo, como desligo o Vcc do bluetooth ???
Amigo manda o link deste app ou o para download do apk dele pois num to achando…
Nossa cara, você está de parabéns!!!
Ótimo post, vou implementá-lo amanha.
Abraço
Teste e funcionou td ok!! 100%
Obrigado cara. Gostaria de te ajudar com teu canal de youtube, como entro em contato com vc?
Abraço
Boa tarde,
Obrigado. Utilize o formulário de contato aqui no lado direito da página do site, ok ?
Abraço !
Amigos,
Uma dúvida, tenho um projeto que qualquer pessoa poderia se parear ao Arduino via bluetooth, e assim que isto acontecer, o Arduino envia uma mensagem para o celular da pessoa, seja uma imagem, um texto, etc. A minha dúvida, todos os celulares teriam que ter obrigatoriamente esta app Microcontroller ? Ou o cel recebe normalmente uma mensagem vinda do bluetooth do Arduino.
Abraços
Cleiton
Bom dia Cleiton,
Não. O cel recebe a mensagem do BT, e ela pode ser analisada/tratada por qualquer programa, seja o Microcontroller BT, o Bluetooth SPP, que eu também já utilizei, ou qualquer outro.
Abraço !
Galera,
Eu preciso que o celular receba um sinal do arduino, mais necessariamente são 3 sinais diferentes, e o celular ou vibrasse, ou tocasse de acordo com cada sinal. isso é possivel? Dá pra fazer com o Microcontroller BT?
Boa tarde,
O MMicrocontroller BT não tem essas funções. Você precisaria de um programa específico.
Abraço.
muito possivel !! estou realizandos testes finas e logo disponibilizarei na pley estore um apk que faça esse alerta ,Meu unico enrrosco e que n comcigo atuar com a condiçao de iqual no app , mas concigo atuar com maio meno! no e bem o que eu quero mas n comcigo ler corretamente o pacote de dados que o arduino emvia para o app … acho que tem algum bit de verificaçao indo junto com meu serial.print ! SE ALGUEM AI COMCEGUE ATUAR COM SERIAL.PRINT = VARIAVEL DEFINIDA NO APP E FUNCIONE NOS AJUDEM VLW
Assim como o colega mais acima comentou, o Microcontroller BT não está mais disponível no Google Play e o link que está no texto direciona para um outro aplicativo.
Realmente está bem difícil achar esse app, quem conseguiu baixá-lo poderia subir o apk para gente fazer download.
Prezados, bom dia.
Gostaria de um exemplo que enviasse a temperatura de um LM35 para o Microcontroller BT, porém com variável "float" (pelo menos uma cassa decimal).
Boa noite,
Se não me engano, o microcontroller só trabalha com valores inteiros.
Abraço !
Não da pra salvar o App criado não??? Fiz um mais não consigo encontrar ele.
Boa noite,
Somente na versão paga.
Abraço.
boa noite
Gostaria de enviar um arquivo de áudio pelo Arduíno e por sua vez gostaria de fazer o Android executar tal arquivo de áudio para isso preciso fazer alguma configuração a mais ?
obrigado
OI Lucas,
Belo projeto, mas sinceramente ainda não tenho ideia de como implementar isso. rs
Mas vou estudar uma solução. 🙂
Abraço !
Onde encontro a versão paga?
já procurei e nada.
Obg.
essa programação na qual foi apresentada acima, ela também se enquadra na programação para o bluetooth cz-hc-05?
Boa tarde,
Sim, pode ser utilizado no HC-05. Eu tenho um post em que falo sobre a configuração do HC-05 com comandos AT :
http://www.arduinoecia.com.br/2015/01/diferenca-bluetooth-hc-05-hc-06.html
Abraço !
Amigo, seria possível colocar na tela do microcontroller bt um botão para zerar a contagem quando necessário? se sim, como?
Boa tarde Gabriel,
Infelizmente não tenho essa informação, pois o aplicativo não está mais disponível para download no Google Play, mas creio que seja necessário mexer na programação.
Abraço.
desculpe eu nao havia percebido q voce ja tinha respondido obrigado!!!
shoooooowwww de bola!
Muito bom cara parebens, vc acha possivel enviar este dados via wifi ou ate mesmo internet para ser acessado de qquer lugar?
Obrigado
Boa tarde Eduardo,
É possível sim, eu tenho alguns exemplos de uso com ethernet shield e módulos wireless aqui no site.
Abraço !
Boa noite, estou desenvolvendo um trabalho de conclusão de curso onde parte do meu projeto preciso resolver a seguinte questão : fazer meu relógio , através de bluetooth ou algo melhor , se conectar ou com um app do smartphone ou enviar uma mensagem para o smatphone, pode me ajudar?
( Obs: me socorre, pfvr )
Agradeço desde já !
Boa noite Thayná,
Legal, o que você já tem do projeto ?
Abraço!
Então, depois de algumas pesquisas vi que o Bluetooth não seria muito viável pois tem uma distância muito curta, o que faria meu projeto em vão. Logo pensamos em usar o Rfid, mas não sabemos como colocá-lo no relógio sem perder a garantia ou se é possível colocar na pulseira do relógio. E desculpa se eu não estiver sendo clara, é que realmente não entendo nada sobre o assunto kkk
Boa tarde. Eu gostaria de saber se tem como usar o mesmo código, alterando algumas coisas, mas usando um módulo HC-05 bluetooth para enviar os dados de um GPS, para um APP no Android. Sabe se tem como? Poderia me ajudar?
Oi Juliana,
Tem como, mas não tenho nenhum post sobre isso ainda.
Abraço!
Pessoal, instalem o Aptoide que a partir dele é possível fazer o download do MicroController BT
Onde encontro a versão paga desse app?
Procurei na Play Store, mas não o encontrei.
Obg.
olá Boa Noite eu queria fazer essa mesma comunicação do arduino para o app, porém eu estarei utilizando outros componentes, a programação seria a mesma ou eu teria que criar uma outra programação dependendo do componente?
Boa noite,
Depende do componente.
Abraço!
estou começando a desenvolver projetos entre arduino e apps e durante os aprendizados entre forúns, video-aulas, etc surgiu uma dúvida.
Tenho um protótipo que desejo enviar os dados para o app onde serão visualizados pelo usuário, não pretendo fazer nenhum tipo de tratamento pelo app, apenas visualização msm, porém eu gostaria que a pessoa pudesse visualizar não só em sua residencia, mas no trabalho, no transito, etc.
Quais medidas devem ser tomadas e quais componentes são responsáveis para realizar tal feito ?
Lembrando que gostaria apenas de uma direção, pensei na possibilidade de enviar os dados para um servidor e através do app conectar com o server para adquirir as informações.
Bom é isso, espero que tenha ficado claro as informações
Desde já agradeço
Boa noite,
A ideia é essa mesmo: enviar para um servidor e de lá o usuário se conecta pelo App.
Eu inclusive postei recentemente um artigo mostrando como utilizar um GSM shiedl para enviar dados para um servidor e gravar no MySQL. Se puder, dê uma olhada, acho que vai te ajudar:
http://www.arduinoecia.com.br/2015/11/acessar-internet-arduino-gsm-shield-sim-900.html
Abraço!
Bom dia.
Gostaria de saber se consigo comunicar o arduino com GPS do meu android.
E retorna-se a posição que estou por um fone Bluetooth
Bom dia,
Não tenho essa informação no momento, mas vou pesquisar e postar aqui no site.
Abraço!
Oi!
Gostaria de saber se teria como postar aki o link do apk na versão pró, pois só se encontra a versão free que não salva o layout.
Bom dia,Eu gostaria de saber se é possível armazenar os dados recebidos do arduíno e gerar um gráfico com estes valores .
Boa noite,
É possível sim, recomendo você usar o Processing, tenho alguns posts sobre ele aqui no site.
Abraço!
Olá,
Preciso de um sistema que receba dados e os envia a longa distancia, para que possamos velos em um celular.
Caso eu use esse mesmo sistema, seria possível enviar os dados automaticamente para outro celular via SMS?
Boa noite,
Talvez o GSM Shield seja a solução para o seu caso. Dê uma olhada neste post, por favor: http://www.arduinoecia.com.br/2015/09/arduino-gsm-shield-sim900-efcom.html
Abraço!
Eu queria saber se é possível controlar a saúde de áudio de uma mesa de som com este aparelho via androide Bluetooth
olá,
Preciso que o arduino envie uma mensagem de alerta para um celular. É possivel fazer isto utilizando o modulo wi-fi ESP8266?
Oi Eduardo,
É sim, estou montando um post sobre isso… 😉
Abraço!
É possível enviar e receber dados utilizando apenas um arduino e um módulo bluetooth para controlar através do android?
Boa noite, queria montar um circuito com o arduino, um botão, um led, modulo bluetooth e um celular, para que quando eu aperte o botão eu possa acender o led e automaticamente mandasse o código para o celular via bluetooth, teria como me falar como faria com a programação?
É possivel enviar as informações do giroscopio do arduino para um smartphone que não tenha giroscopio, e dessa forma ele tenha condição de utilizar o smart em realidade virtual?
Boa tarde,
É possível sim, você só precisa criar uma aplicação parar interpretar esses dados, mas o envio é tranquilo.
Abraço!
Bom dia amigo, obrigado pelo seu trabalho, sempre me ajudando.
Vc poderia enviar o link do aplicativo microcontrolador BT, este leva para a página do desenvolvedor, mas não mostra o aplicativa certo para baixar,só vem propagandas, e o QR Code dele esta com erro de análise do pacote.Não esta disponivel Google Play.
Muito boa noite Amigo… ótima postagem vai me servir muito… preciso fazer umas perguntas se me permite, esse valor do potenciômetro é em relação a tensão? se sim qual a relação matemática feita? se não, como faço pra ler a tensão deste dispositivo… na realidade eu precisava de uma relação tensão e grau de giro do potenciômetro…
eu posso "simplesmente tirar" esse sensor óptico ? quero usar o potenciômetro como sensor de angulação e enviar o angulo e tensão para o android…
muito obrigado pela sua atenção!!!
Oi Rico,
Obrigado pela visita. O potenciômetro, nesse caso, vai gerar uma tensão entre 0 e 5V no pino analógico. Essa tensão vai ser, digamos assim, "transformada" em um valor entre 0 e 1024 para utilizarmos no programa.
Eu acho que o que você precisa é de um encoder rotativo. Dê uma olhada neste post, por favor: http://www.arduinoecia.com.br/2015/08/como-usar-encoder-rotativo-ky-040-arduino.html
Abraço!
Olá, amigos e amigas do Arduino e Cia. Primeiro, sem demagogia, quero parabenizá-los por seu site. Ele é muito útil, tanto para hobbystas, como para técnicos das áreas de robótica e eletrônica. Estou ainda engatinhando em mecatrônica, fui aluno de cursos de pós-médio na área de eletrônica e mesmo tendo até feito um cursinho em "C" , a questão da programação é difícil pra mim. Mas estou estudando e praticando tutoriais daqui , com o tempo, vou progredindo devagarzinho.
Queria pedir a ajuda de vocês no seguinte: estou com dúvidas em como programar uma comunicação bem básica entre um módulo Bluetooth HC-05 em modo master e um outro módulo igual, só que em modo slave. Tipo, eu meio que me equivoco no uso de serial.write(). E meu entendimento de algo, é meio fragmentado. Tipo, eu preciso ir do básico do básico, para depois ir para o médio e assim em diante. Vocês teriam no site algum exemplo bem básico disso ? queria algo simples mesmo, tipo, apertou um pushbutton do master e acende led no slave. Peguei um código que usa a biblioteca software serial, mas não entendi qual é o método de fato onde um bluetooth master manda um dado do tipo char para o bluetooth slave. Sei que parece uma dúvida até meio idiota, mas eu não sou bom com programação. No mais, é isso, desculpe a longa mensagem. Grato pela atenção de vocês. Sucesso !
ola meu amigo, gostaria de algo mais simples… gostaria de manter a comunicação bluetooth entre arduino uno e celular pelo shield HC-05, e quando essa comunicação fosse interrompida (por ex. por distanciamento excessivo, o celular disparasse uma msg visual e sonora… poderia me ajudar?
agradeço a atenção desde ja…
Email: [email protected]
face: Elias Khalil Saffi
Eu tenho uma dúvida. Eu consigo mandar algum arquivo para um cartão SD conectado no Arduino, sem que ele esteja conectado diretamente no PC… sei lá usando um módulo Bluetooth ou coisa parecida. Eu simplesmente conectaria (parearia) meu PC com o módulo, e enviaria dados para o cartão SD. Se a resposta for sim, como eu faria isso?? Obs: Não sei se o que perguntei foi algo absurdo, mas não custa nada perguntar.
Oi Stevam,
É possível sim, só não tenho um esquema pronto para te falar como seria exatamente.. Quem sabe em um próximo post sobre módulos bluetooth. 🙂
Abraço!
Adilson
Ola amigo…seria possivel criar um contador de objectos em que um usuário podesse se ligar por bluetooth ao arduino para consultar o número total, sempre que quisesse?
Obrigado
Boa sugestão de post. Vou verificar. 🙂
Abraço!
Adilson
Ola amigo… boa noite estava querendo instalar um sensor para medir RPM de um motor hidráulico utilizando arduino e visualizar esta informação de RPM na tela do meu smartfone seria possível com este código que vc desenvolveu realizar este procedimento retirando a parte do potenciômetro? e a distancia de conexão entre o celular e o modulo bluetooth é mais ou menos de quanto?
ola vc tem o linck para comprar o Microcontroller BT?
Bom dia,
Infelizmente o desenvolvedor tirou ele da loja. Atualmente, estou recomendando usar o app Blynk, inclusive tenho post sobre ele neste link:
https://www.arduinoecia.com.br/2018/01/blynk-controlar-arduino-usando-bluetooth.html
Abraço!
Adilson
Ola….parabens pela aula. Tenho uma dúvida e agradeço desde já se puder me ajudar. Tnho um projeto onde preciso enviar três valores de voltagem de um equipamento para um arduino nano (isso já foi resolvido). Agora, a parte da dúvida… o arduino deve enviar as 3 informações para um celular via bluetooth, sendo que estou montando um aplicativo com o app inventor (MIT). Creio que o caminho é: O arduino envia os dados pela linha serial e esses dados serão alocados na tela do aplicativo. Como fazer essa parte da alocação no app inventor? Acho que inclusive isso pode ser a idéia de um novo video para vocês.
Oi Ranilson,
Eu sei que existe uma biblioteca bluetooth que faz essa interface. Realmente é uma boa sugestão de post para o blog. Vamos analisar. 🙂
Abraço!
Adilson
Oi, isso é exatamente que estou procurando saber mas não achei o código do arduino.
Achei
Olá a todos, estou desenvolvendo um projeto de pesquisa com arduíno e preciso do apk Microcontroller BT para android, alguém tem baixado que possa me repassar? Desde já
agradeço.