Professional Documents
Culture Documents
Registre-se
Acessar
#42
Início
Perfil
Garagistas
Área Técnica
Fórum
Blog
Galeria
Grupos
Sobre
Todas as Discussões
Meus tópicos
Adicionar
Uma rede sem fio local (e pessoal) porreta é sem dúvida a Bluetooth (BT). Hoje em nosso dia-a-dia é comum encontrar-nos com celulares, aparelhos de som,
cameras, etc., entrelaçados com a ajuda da famosa “luzinha azul”
http://labdegaragem.com/forum/topics/tutorial-controlando-o-arduino-via-bluetooth 1/22
26/02/2019 Tutorial: Controlando o Arduino via Bluetooth - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
No mundo do IoT e da automação em geral, é muito comum deparar-nos com controles remotos via celulares utilizando tecnologia BT. Isso é devido a
3 componentes básicos mas muito importantes:
Neste tutorial, vou desenvolver algumas idéias de como controlar as saídas de um Arduíno através de um celular de maneira a mover um Robot, acionar
lâmpadas em uma casa, etc.
No mercado é comum encontrar módulos de BT 3.0 “Master-Slave” como o HC-05 e “Slaves” como o HC-06.
Já mais recentemente, apareceram os HC-08 e HC-10 que trabalham com tecnologia BT 4.0 ou BLE (“Bluetooth Low Energy”). Os módulos BLE são os únicos
que podem ser conectados a um Iphone, pois infelizmente a Apple não fornece suporte a ao BT 3.0.
Para os projetos discutidos aqui, usarei um HC-06 que é bem popular e barato (Bye, bye, Iphone, vamos de Android!). O Módulo é alimentado com 5V o que
faz com que ele seja facilmente conectado a um Arduino UNO por exemplo, para receber e transmitir informações a outros dispositivos como um PC ou um
telefone celular. Seus pinos de transmissão e recepção podem ser conectados diretamente ao UNO, não havendo a necessidade de se utilizar divisores de tensão
como vimos no caso do ESP8266.
Na prática, o HC-06 deve ser ligado diretamente aos pinos 0 e 1 do Arduino (Serial):
Ao se usar a entrada serial por HW do UNO é muito importante lembrar-se que o HC-06 não pode estar fisicamente conectado aos pinos 0 e 1 durante a carga
do programa, isso porque o USB também usa essa mesma serial. Uma maneira simples de se contornar esse probleminha (se seu projeto não utiliza muitos
http://labdegaragem.com/forum/topics/tutorial-controlando-o-arduino-via-bluetooth 2/22
26/02/2019 Tutorial: Controlando o Arduino via Bluetooth - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
GPIOs do UNO) é usar uma porta serial por SW através da library SoftwareSerial (a mesma que usamos no caso do ESP8266). Em nosso caso aqui, usaremos
os pinos 10 e 11 do UNO (Tx, Rx respectivamente).
O passo seguinte será escrever um codigo bem simples para se poder testar, programar e inicializar o HC-o6:
Para iniciar, incluir a Library Software Serial, definindo a variável “BT” como a nova porta serial.
#include <SoftwareSerial.h>
SoftwareSerial BT(10, 11); // RX, TX
http://labdegaragem.com/forum/topics/tutorial-controlando-o-arduino-via-bluetooth 3/22
26/02/2019 Tutorial: Controlando o Arduino via Bluetooth - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
void setup()
{
Serial.begin(9600);
Serial.println("Type AT commands!");
BT.begin(9600); // HC-06 usually default baud-rate
}
Em seguida vem o corpo principal do código que simplesmente espera por dados vindos do BT e uma vez que eles chegem, os mesmos são escritos no Serial
Monitor. Da mesma maneira, se podem enviar comandos AT desde o monitor serial até o módulo HC-06.
void loop()
{
if (BT.available()) // Read device output if available.
{
while(BT.available()) // While there is more to be read, keep reading.
{
delay(10); //Delay added to make thing stable
char c = BT.read(); //Conduct a serial read
command += c; //build the string.
}
Serial.println(command);
command = ""; // No repeats
}
if (Serial.available())
{
delay(10); // The DELAY! ********** VERY IMPORTANT *******
BT.write(Serial.read());
}
}
Uma vez carregado o programa, faça alguns testes básicos. Por exemplo:,
OK! Módulo conectado ao UNO e funcionando. Hora de lançar mão do velho e bom celular Android!!!
Existem muitas apps na loja da Google que podem ser utilizadas. Vou sugerir duas delas, por serem as que usarei em meus tutoriais. Essas apps foram
desenvolvidas por mim utilizando o MIT Application2 tool (ver projeto aqui) e estão disponíveis sem custo na loja da Google:
1. MJRoBoT II BT Control
2. MJRoBot BT Digital Analog Voice Control
O App MJR0Bot II foi desenvolvido para comandar Robots. Ele basicamente envia um caracter para cada comando de direção, modos
AUTO/MANUAL, velocidade + e velocidade-. Alem de permitir o envio de mensagens em modo texto.
http://labdegaragem.com/forum/topics/tutorial-controlando-o-arduino-via-bluetooth 5/22
26/02/2019 Tutorial: Controlando o Arduino via Bluetooth - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
http://labdegaragem.com/forum/topics/tutorial-controlando-o-arduino-via-bluetooth 6/22
26/02/2019 Tutorial: Controlando o Arduino via Bluetooth - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
O App. MJRoBot Digital Analog Voice Control, envia comandos para acionamento digitais (ligar/desligar) tanto por botões como por voz e comandos
numéricos para controle de PWMs (0-255).
http://labdegaragem.com/forum/topics/tutorial-controlando-o-arduino-via-bluetooth 7/22
26/02/2019 Tutorial: Controlando o Arduino via Bluetooth - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
http://labdegaragem.com/forum/topics/tutorial-controlando-o-arduino-via-bluetooth 8/22
26/02/2019 Tutorial: Controlando o Arduino via Bluetooth - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
Faça o Download de qualquer uma das duas Apps, vá ao set-up do celular e procure o modulo BT fazendo a conexão (entre com o PIN 1234 ou algum
outro definido por você). Isso deverá ser feito uma única vez, pois o celular guardará os dados de conexão. Uma vez que o celular e o HC-06 estão
conversando, é só usar as APPs.
Acione o botão de BT, para que o app informe dos modulos disponíveis:
http://labdegaragem.com/forum/topics/tutorial-controlando-o-arduino-via-bluetooth 9/22
26/02/2019 Tutorial: Controlando o Arduino via Bluetooth - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
O App então mostrará “CONNECTED”, informando que está “pared” com o HC-06
http://labdegaragem.com/forum/topics/tutorial-controlando-o-arduino-via-bluetooth 10/22
26/02/2019 Tutorial: Controlando o Arduino via Bluetooth - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
A partir daí, é só ir acionando os botões do APP e observar no Monitor Serial, o que é que o APP está enviando.
Por exemplo, acionando “ON” e “OFF” sequencialmente para os 4 devices, no caso da APP MJRoBot Digital Analog Voice Control, o resultado seria:
dev1on
dev1off
dev2on
dev2off
dev3on
dev3off
dev4on
dev4off
Agora que já temos um App para o Android e sabemos como funciona um modulo BT, vamos colocar a mão na massa e criar algo de util!
http://labdegaragem.com/forum/topics/tutorial-controlando-o-arduino-via-bluetooth 11/22
26/02/2019 Tutorial: Controlando o Arduino via Bluetooth - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
http://labdegaragem.com/forum/topics/tutorial-controlando-o-arduino-via-bluetooth 12/22
26/02/2019 Tutorial: Controlando o Arduino via Bluetooth - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
http://labdegaragem.com/forum/topics/tutorial-controlando-o-arduino-via-bluetooth 13/22
26/02/2019 Tutorial: Controlando o Arduino via Bluetooth - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
A idéia será usar o App MJRoBot Digi/Ana/Voice Ctrl para acender e apagar os LEDS e também controlar a intensidade dos mesmos usando PWM.
Estaremos relacionando:
Ou seja, ao acionar o botão “ON” relacionado ao “Device 1”, a mensagem de texto “dev1on”será enviada ao Arduino. Ao receber essa mensagem, o LED
vermelho deverá acender e assim por diante.
Observe que os 4 pinos são pinos com capacidade de gerar PWM. Isso é importante para a utilização dos “sliders” da App, que enviarão valores para controlar a
intensidade dos LEDs via PWM:
Dev A0: "r/ 0-255" ==> LED Red ==> Pin 3 do UNO
Dev A1: "y/ 0-255" ==> LED Yellow ==> Pin 5 do UNO
Dev A3: "b/ 0-255" ==> LED Blue==> Pin 9do UNO
No caso dos controles deslizantes (“sliders”), antes dos valores para controle do PWM (0 a 255), um caracter será enviado para que o Arduino saiba de que
“slider” estará chegando o comando.
O Código:
Setup inicial:
#include <SoftwareSerial.h>
void setup()
{
BT.begin(9600);
Serial.begin(9600);
pinMode(dev1, OUTPUT);
pinMode(dev2, OUTPUT);
pinMode(dev3, OUTPUT);
pinMode(dev4, OUTPUT);
}
void loop()
{
while (BT.available()) //Check if there is an available byte to read
{
delay(10); //Delay added to make thing stable
char c = BT.read(); //Conduct a serial read
device += c; //build the string.
}
if (device.length() > 0)
{
Serial.println(device);
// Button control:
if (device == "dev1on") {digitalWrite(dev1, HIGH);}
else if (device == "dev1off") {digitalWrite(dev1, LOW);}
else if (device == "dev2on") {digitalWrite(dev2, HIGH);}
else if (device == "dev2off") {digitalWrite(dev2, LOW);}
else if (device == "dev3on") {digitalWrite(dev3, HIGH);}
else if (device == "dev3off") {digitalWrite(dev3, LOW);}
else if (device == "dev4on") {digitalWrite(dev4, HIGH);}
else if (device == "dev4off") {digitalWrite(dev4, LOW);}
http://labdegaragem.com/forum/topics/tutorial-controlando-o-arduino-via-bluetooth 15/22
26/02/2019 Tutorial: Controlando o Arduino via Bluetooth - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
// Voice control:
else if (device == "ligar um" || device == "Ligar 1") {digitalWrite(dev1, HIGH);}
else if (device == "desligar um" || device == "desligar 1") {digitalWrite(dev1, LOW);}
else if (device == "ligar som" || device == "Ligar som") {digitalWrite(dev2, HIGH);}
else if (device == "desligar som" || device == "Desligar som") {digitalWrite(dev2, LOW);}
else if (device == "ligar TV" || device == "Ligar TV") {digitalWrite(dev3, HIGH);}
else if (device == "desligar TV" || device == "Desligar TV") {digitalWrite(dev3, LOW);}
else if (device == "ligar quarto" || device == "Ligar quarto") {digitalWrite(dev4, HIGH);}
else if (device == "desligar quarto" || device == "Desligar quarto") {digitalWrite(dev4, LOW);}
// Slider control:
char colour = device[0];
int value = device[2];
Serial.print(" ");
Serial.println(value);
if ( colour == 'r')
{
analogWrite(dev1, value); // use value to set PWM for LED brightness
}
if ( colour == 'y')
{
analogWrite(dev2, value); // use value to set PWM for LED brightness
}
if ( colour == 'g')
{
analogWrite(dev3, value); // use value to set PWM for LED brightness
}
if ( colour == 'b')
{
analogWrite(dev4, value);
}
device=""; //Reset the variable
}
}
No vídeo abaixo, uma demonstração da porção programa acima (botões & Slider):
http://labdegaragem.com/forum/topics/tutorial-controlando-o-arduino-via-bluetooth 16/22
26/02/2019 Tutorial: Controlando o Arduino via Bluetooth - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
O controle de dispositivos IoT por voz é uma tendência nos dias de hoje. Conseguir este tipo de controle com o conjunto Arduino/HC-06/Android é
extremamente simples. Os dispositivos Android já possuem essa característica “de fábrica”. No App que desenvolvi, apenas acrescentei um botão que faz com
que o Android “escute” um comando e o envie em formato texto para o Arduino. O codigo se encarrega de “ler” a string que chega.
Em vermelho, ressalto no código alguns possíveis comandos de voz. Ao receber por “Ligar TV” por exemplo, o LED verde (correspondente ao device 3)
acenderá (em vez do LED podíamos ter uma relé que ligaria a TV).
Bom, acredito que já é possível ver o enorme potencial do controle de “coisas” usando BT/Android/Arduino. Em meus próximos posts estarei desenvolvendo
Robots que poderão ser controlados remotamente como vimos aqui.
MJRoBot.org
Curtir
3 membros curtem isto
Tweetar
Compartilhar Facebook
Curtir 2
Exibições: 29742
http://labdegaragem.com/forum/topics/tutorial-controlando-o-arduino-via-bluetooth 17/22
26/02/2019 Tutorial: Controlando o Arduino via Bluetooth - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
▶ Responder esta
J.Antonio
▶ Responder
▶ Responder
Bom dia, Parabéns pelo post me ajudou muito. Você sabe quala distância que pega o Hc-08?
Neste anuncio diz aproximadamente 100m. Pode me dar sua opinião Obrigado.
http://www.vinitronica.com.br/pd-1db7d9-modulo-bluetooth-ble-4-0-hm...
▶ Responder
http://labdegaragem.com/forum/topics/tutorial-controlando-o-arduino-via-bluetooth 18/22
26/02/2019 Tutorial: Controlando o Arduino via Bluetooth - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
▶ Responder
Excelente trabalho !!
Estou usando seu artigo como referencia para o carrinho de controle remoto
Muitíssimo obrigado por compartilhar seu (honestíssmo) app Android (MJRoBot BT Remote Control (Beta))
[ ]´s
▶ Responder
http://labdegaragem.com/forum/topics/tutorial-controlando-o-arduino-via-bluetooth 19/22
26/02/2019 Tutorial: Controlando o Arduino via Bluetooth - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
O aplicativo que mencionou no teste, com o controle de voz, não acho mais. Tem com indicar outro para esses testes?
Obrigado
▶ Responder
Permalink Responder até Rene Javier Arraya Aviles em 25 agosto 2018 at 16:49
Tenho um projeto de TCC da faculdade, envolvendo o Bluetooth. Vai ser comando a distancia (Smartphone) de um micro-ondas. A tecla matricial do
micro-ondas deve ser acionada a partir do meu smartphone. Gostaria de umas dicas, para tornar este trabalho perfeito. Desde já agradeço, Rene.
▶ Responder
RSS
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
Registre-se
ou acesse
Or sign in with:
Destaques
http://labdegaragem.com/forum/topics/tutorial-controlando-o-arduino-via-bluetooth 20/22
26/02/2019 Tutorial: Controlando o Arduino via Bluetooth - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
Registre-se no
Lab de Garagem
Clicando aqui
Não é
cliente?
Então vem.
Invista na
Previdência para ter
um futuro tranquilo
http://labdegaragem.com/forum/topics/tutorial-controlando-o-arduino-via-bluetooth 21/22
26/02/2019 Tutorial: Controlando o Arduino via Bluetooth - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
Convide um
amigo para fazer
parte
Entrar no bate-papo
http://labdegaragem.com/forum/topics/tutorial-controlando-o-arduino-via-bluetooth 22/22