Arduino - Bluetooth HC-05

De TuxTI

Exemplo Simples de Comunicação entre Computador e Arduino

É um exemplo básico de como ascender o led do Arduino pela conexão bluetooth. Transfira o código abaixo para o Arduino antes de conectar o módulo bluetooth, tem que ser antes pois se o Bluetooth estiver conectado, ele vai tentar transferir o código para o bluetooth.

char val; // Variável que recebe os caracteres enviados para o Bluetooth
int ledpin = 13; // o pino 13 corresponde ao LED que já existe no Arduino Uno
 
void setup() {
  pinMode(ledpin, OUTPUT);
  Serial.begin(9600);       // Inicia a comunicação Serial a 9600bps
}
 
void loop() {
  // Checa se tem dados para serem lidos
  if( Serial.available() ){
    val = Serial.read();         // Faz a leitura e registra o caractere em  'val'
  }
  // if 'H' was received
  if( val == 'H' ) {
    digitalWrite(ledpin, HIGH);  // Liga o LED 13
  } else { 
    digitalWrite(ledpin, LOW);   // Desliga o LED
  }
  delay(200);                    // espera 200 ms para próxima leitura
}

Agora conecte o módulo bluetooth ao Arduino da seguinte forma:

Pino VCC: Na alimentação 3.3V
Pino GND: GND
Pino TXD: Digital 0
Pino RXD: Digital 1

No Windows

Faça o pareamento do bluetooth no Windows com o módulo do Arduino, a senha padrão é a 1234 , isso é feito por meio do ícone do bluetooth que fica na barra de tarefas do Windows, próximo ao relógio, clique com o botão direito e clique em "Adicionar Dispositivo", quando pedir a senha de pareamento informe 1234.


Testando

Para testar, primeiro é necessário verificar em qual porta COM o Bluetooth está conectado. Para isso, clique com o botão direito em cima do ícone do bluetooh na barra de tarefas, clique com o botão direito no nome do bluetooth do Arduino, e selecione "Propriedades", vá para a aba "Hardware".

Agora você pode usar a ferramenta própria da IDE do Arduino para se conectar ao módulo, abra a IDE vá até a aba "Ferramentas" selecione a porta COM localizada no aplicativo do bluetooth e depois abra o "Monitor Serial". Procure um texto que termine com "COM8", sendo essa a porta COM em uso. Defina o baudrate em 9600bps e pressione a tecla H, e então o LED do Arduino vai piscar.

Agora é só criar aplicações mais avançadas ;)

Referência: http://robotosh.blogspot.jp/2012/07/arduino-jy-mcu-bluetooth.html

Comandos AT

O módulo Bluetooth HC-05 pode ser configurado por meio de comandos AT, abaixo seguem as instruções para ser executada essa tarefa.

Configurando o módulo

Importante, lembre-se de ligar o módulo na voltagem de 3V, se ligar em 5V o módulo pode queimar. Para entrar no modo de configuração todos os passos devem ser seguidos a risca. começando pela ligação dos pinos, eles devem ser conectados da seguinte forma:

KEY -> 3V (INICIA DESLIGADO)
VCC -> 3V (INICIA DESLIGADO)
GND -> GND
TXD -> Digital 1
RXD -> Digital 0 

Agora siga os passos:

1º - Ligue todos os pinos, exceto o KEY e VCC;

2º - Ligue o Arduino via USB ao computador

3º - Abra a IDE do ARDUINO, selecione a porta do Arduino e abra o Monitor da Serial

4º - Na tela do Monitor da Serial, selecione a opção de quebra de linha para Ambos NL & CR e coloque a velocidade de transmissão em 38400

5º - Ligue o pino KEY na saída 3V , e em seguida ligue o pino VCC em 3V, o LED do módulo bluetooth deve ficar piscando lentamente, em intervalos de 1 seg

6º - Digite AT no Monitor de Serial, se retornar OK, você fez certo, senão, repita todos os passos.


Caso tenha feito certo, agora você pode modificar as configurações do seu módulo bluetooth de acordo com os comandos do documento do link abaixo, uma versão resumida segue adiante.

http://tuxti.com.br/arquivos/arduino/bluetooth_hc05/hc05_comandos_at.pdf

Importante, você só liga o pino KEY em 3V para fazer a configuração do módulo, para utilizar ele, esse pino deve ficar desligado.

Alguns dos Comandos

AT+VERSION? -> Retorna a versão do programa.

AT+ORGL -> Restaura as configurações originais do módulo.

AT+ADDR? -> Retorna o Endereço do Módulo

AT+NAME=Novo_Nome -> Define um novo nome para o módulo

AT+NAME? -> Retorna o nome do Dispositivo

AT+ROLE=Modo_de_Oeração -> Define o modo de operação do módulo, conforme a lista abaixo:

0---- Slave
1---- Master 
2---- Slave-Loop
Padrão: 0