Este documento discute a comunicação Bluetooth entre um módulo Bluetooth JY-MCU e um Arduino. Ele explica como configurar o Bluetooth no Windows, desenvolver um aplicativo de exemplo para acender e apagar um LED com comandos Bluetooth e conclui que o Bluetooth pode ser uma alternativa mais barata ao Wi-Fi para conectividade remota com Arduino.
3. Introdução
Bluetooth é um protocolo padrão de comunicação primariamente projetado para baixo consumo de
energia com baixo alcance, (dependendo da potência: 1 metro, 10 metros, 100 metros) baseado em
microchips transmissores de baixo custo em cada dispositivo.
O Bluetooth possibilita a comunicação desses dispositivos uns com os outros quando estão dentro do
raio de alcance. Os dispositivos usam um sistema de comunicação via rádio, por isso não necessitam
estar na linha de visão um do outro, e podem estar até em outros ambientes, contanto que a
transmissão recebida seja suficientemente potente.
Classe Potência máxima permitida
(mW/dBm)
Alcance (Aproximadamente)
Classe 1 100 mW (20 dBm) até 100 metros
Classe 2 2.5 mW (4 dBm) até 10 metros
Classe 3 1 mW (0 dBm) ~ 1 metro
4. Introdução
Deve-se ressaltar que, na maioria dos casos, o alcance efetivo dos dispositivos de classe 2 é
estendido se eles se conectam a dispositivos de classe 1, se comparados com redes puras de classe
2. Isso pode ser obtido pela alta sensibilidade e potência de transmissão do dispositivo de classe 1. A
alta potência de transmissão do dispositivo de classe 1 permite a recepção da alta potência pelo
dispositivo de classe 2. Além disso, a alta sensibilidade do dispositivo de classe 1 permite a recepção
da baixa potência de transmissão de força dos dispositivos de classe 2, permitindo assim a operação
de dispositivos de classe 2 a grandes distâncias. Dispositivos que possuem um amplificador de
potência na transmissão têm uma sensibilidade de recepção melhorada, e existem antenas altamente
otimizadas que normalmente alcançam distâncias de 1 km usando o padrão Bluetooth classe 1.
Versão Taxa de Transmissão
Versão 1.2 1 Mbit/s
Versão 2.0 + EDR 3 Mbit/s
Versão 3.0 24 Mbit/s a.m.m. Mudança da Faixa de
Transmissão para 802.11
5. Ligue o vcc no 5v do Arduino, o GND no GND mesmo, no caso do TXD e RXD temos que tomar o seguinte
cuidado, o TXD vai ligado na saída 0 (DX) do Arduino, e o RXD vai ligado à saída 1 (TX), deve ser feito dessa
forma, se não ela não irá funcionar.
Após ligado corretamente, e o Arduino ligado à uma fonte de alimentação ou USB, o módulo Bluetoth deverá
ficar piscando um led vermelho, indicando que está aguardando uma conexão.
Comunicação Bluetooth no Windows
6. O adaptador que estou utilizando, é encontrado no seguinte link do site dealextreme: http://dx.
com/p/super-mini-bluetooth-2-0-adapter-dongle-vista-compatible-11866
Após realizar a instalação do driver bluetooth, no meu caso o adaptador se instalou com o driver
genérico do Windows 8. Surgirá um ícone na bandeja do sistema (próximo ao relógio).
Clique com o botão direito nesse ícone, e então clique
em "Ingressar em uma rede pessoal".
Comunicação Bluetooth no Windows
7. A tela de Dispositivos e
impressoras será exibida, então
clique em "Adicionar um
dispositivo Bluetooth" como
mostra o "Passo 1".
A tela de Adicionar Dispositivo
será exibida, busque pelo
dispositivo chamado "LINVOR",
então clique em Avançar, como
mostra o Passo 3 na imagem.
Comunicação Bluetooth no Windows
8. Então sabemos que o nome do dispositivo padrão é LINVOR a senha padrão (PIN) do dispositivo é
1234,clicamos em avançar e deixamos o sistema concluir a instalação.
Comunicação Bluetooth no Windows
9. Se tudo foi instalado corretamente, o dispositivo LINVOR será listado na seção de "Dispositivos e
Impressoras do Windows, (PS: no meu caso renomeei ele para FG), então clique com o botão direito
nele, e então em "Propriedades".
Comunicação Bluetooth no Windows
10. Então clique na aba "Hardware", e ali podemos ver a porta de comunicação que o dispositivo está
usando, no meu caso está conectado usando a COM11.
Comunicação Bluetooth no Windows
11. Agora precisamos do software PuTTY, que é encontrado no endereço: http://www.putty.org (procure
na seção de downloads por putty.exe).
Ao executar o programa, a seguinte tela será exibida:
Escolha o tipo de conexão Serial, informe o
nome da porta no campo "Serial line", deixe
a velocidade (speed) em 9600, e finalmente
clique em Open.
Então uma tela preta irá aparecer.
O módulo JY-MCU deverá parar de piscar,
e o LED permanecer ativo, então isto indica
que conseguimos uma conexão com o
mesmo.
PS: Os comandos digitados nesta tela não
serão exibidos como retorno.
Comunicação Bluetooth no Windows
12. Para nosso exemplo precisaremos:
- Arduino;
- Protoboard;
- Fios de conexão;
- LED;
- Resistor de 220 ohm;
Função: Fazer o LED acender e apagar com
comandos enviados via bluetooth.
Desenvolvendo nossa aplicação exemplo
13. Ligamos o catodo (lado mais curto do LED) no resistor, que este será ligado ao GND do Arduino.
O anodo (lado mais comprido, lado positivo do LED), é ligado diretamente à uma porta digital do
Arduino, no exemplo utilizaremos a porta 13.
Desenvolvendo nossa aplicação exemplo
14. int led = 13; //definimos a variável com o número da porta utilizado
void setup() {
pinMode(led, OUTPUT); //inicializamos a comunicação com o pino
Serial.begin(9600); //definimos a velocidade de comunicação com o módulo bluetooth
}
void loop() {
char c = Serial.read(); //capturamos o caractere inserido pela comunicação bluetooth
if (c == 'a') {
digitalWrite(led, HIGH); //liga o LED
}
if (c == 'b') {
digitalWrite(led, LOW); //desliga o LED
}
delay(1000); //timer pro LED permanecer aceso
}
Desenvolvendo nossa aplicação exemplo
15. Testando nossa aplicação:
Uma vez compilado e enviado para a placa o nosso código
(clicando no ícone com uma seta na barra de ferramentas
do IDE), abriremos o monitor serial.
Digite os comandos 'a' seguido de ENTER e 'b' seguido de
ENTER para ligar e desligar o LED (sem aspas).
Uma dica: caso o compilador dê um erro ao compilar,
alegando falha de comunicação, com a força DESLIGADA,
remova o cabo VCC (5V) do bluetooth. Ligue o Arduino na
USB e tente compilar novamente.
Para utilizar esta aplicação via Bluetooth, o nosso Arduino
não poderá estar ligado à entrada USB, ele deve ser
alimentado por uma bateria de 9V, ou até mesmo uma de
12V, e o módulo Bluetooth devidamente conectado
(lembre-se de religá-lo ao pino 5V do Arduino).
Então realizamos a conexão via PuTTY, como foi ensinado
anteriormente, e o comandamos remotamente pelo
terminal.
Desenvolvendo nossa aplicação exemplo
16. Conclusões
Shields wi-fi pra arduino são bem caros, e o Bluetooth pode ser uma boa alternativa, também é mais
fácil de se realizar a conexão, como visto no exemplo desse artigo.
O exemplo que demonstrei é extremamente simples, mas com a idéia passada pelo exemplo,
podemos abrir um leque para diversas idéias, como controle de automação residencial, ou até
mesmo um sistema que controla outro sistema.
A minha idéia nesse tutorial foi demonstrar como realizar uma conexão efetiva via Bluetooth com
Arduino, que no meu caso foi custoso encontrar uma solução correta com base no que havia
encontrado de tutoriais na internet. Também percebemos que o módulo JY-MCU utiliza uma simples
comunicação via Serial, sem precisar incluir pacotes como eu já havia visto em diversos tutoriais.
謝謝! (xièxie!)