Tutorial rápido de como criar aplicações utilizando o módulo bluetooh modelo HC-05. Esse é um excelente módulo para fazer uma comunicação sem fio com seu arduino de modo rápido e fácil. Tudo que você vai precisar para esse tutorial é:
> Arduino Leonardo.
> Módulo bluetooth HC-05.
> Alguns jumpers.
Antes precisamos saber algumas especificações sobre o módulo que vamos utilizar.
Especificações:
-
Chipset: HC-05 (versão com 6 pinos)
-
Versão protocolo Bluetooth: v2.0+EDR
-
Frequência: 2.4GHz
-
Velocidade de transferência máxima: 2.1Mbps.
-
Modo de operação: Master ou Slave.
-
Profile Bluetooth: Porta Serial
-
Alimentação: +3.3VDC 50mA
-
Temperatura: -20 ~ +75
-
Tamanho: 26.9mm x 13mm x 2.2 mm
-
Senha padrão (para pareamento): 1234
Antes de usarmos o módulo Bluetooth devemos aplicar algumas configurações iniciais, como por exemplo, a troca do nome, baud rate, senha padrão entre outras informações que irão ser de extrema importância para o projeto. Essas configurações devem ser feitas através dos comantos AT o circuito inicial para elas deverá ser como o esquema abaixo:
void setup() { Serial.begin(9600); Serial1.begin(38400); pinMode(4, OUTPUT); digitalWrite(4, HIGH); Serial.println("Digite os comandos AT"); } void loop() { if(Serial.available()) { Serial1.write(Serial.read()); } if(Serial1.available()) { Serial.write(Serial1.read()); } delay(500); }
Compile o código e envie para o Arduino, após feita a gravação vamos iniciar a configuração. Abra o monitor serial do Arduino deixe setado o baudrate como 9600 e Both NL & CR e teste com os seguintes comandos:
-
AT ( Testa o modo AT no modulo a resposta deverá ser OK)
-
AT+VERSION? (Devolve a versão do Firmware)
-
AT+NAME? (Devolve o nome do modulo)
-
AT+ PSWD? (Devolve a Password do modulo)
Para trocarmos as informações como, nome do módulo, baud rate e senha, usamos os comandos abaixo:
AT+NAME=cursodearduino (Seta o nome do módulo para ‘cursodearduino’).
AT+UART=57600,0,0 (Seta o baud rate para 57600).
AT+PSWD=4321 (Seta a senha para 4321).
Para que as alterações tenham efeito no hardware você deve remover a fonte de energia do arduino e liga-lo novamente.
A partir desse momento podemos desligar o pino WAKEUP/KEY do módulo e deixar como na configuração abaixo.
O código abaixo recebe e envia comandos através do módulo e serve para acender e apagar um led conectado ao pino 13 enviando os caracteres:
“d” = desligar .
“l” = ligar.
/* # Autor: Fernando Krein Pinheiro # Data: 31/11/2014 # Linguagem: C # ========= IMPORTANTE =========== # O codigo esta livre para usar, # citar e compartilhar desde que # mantida sua fonte e seu autor. # Obrigado. */ char caracter; void setup() { Serial.begin(19200); Serial1.begin(9600); pinMode(13,OUTPUT); } void loop() { if(Serial1.available()) { caracter = Serial1.read(); Serial.print("Recebi;"); Serial.println(caracter); if(caracter == 'l') { digitalWrite(13,HIGH); } if(caracter == 'd') { digitalWrite(13,LOW); } } }
Faça um teste vocễ mesmo. Baixe o aplicativo para seu celular android para fazer a comunicação com o módulo bluetooth. Para os testes desse tutorial eu utilizei o app Bluetooth Terminal disponível no google play.
Caso queira fazer um projeto parecido mas que use uma lampada você poderá unir esse tutorial com outro no qual utilizo o módulo relé em uma breve explicação.
Até a proxima!
Bom dia,
Parabéns pelas ótimas explicações.
Estou utilizando o módulo HC-05 porém ele não fica visível para que seja feito o pareamento com outro dispositivo.
Saberia me dizer o motivo?
Obrigado.
Como faço isso no Uno?
Eu consigo deixar o modulo sem senha?
Esta apresentando o seguinte erro::
Arduino: 1.6.7 (Windows 7), Placa:”Arduino/Genuino Uno”
C:\Users\Marcio J. Melo\Documents\Arduino\ALTERANOMESENHABLUETOOTH\ALTERANOMESENHABLUETOOTH.ino: In function ‘void setup()’:
ALTERANOMESENHABLUETOOTH:4: error: ‘Serial1’ was not declared in this scope
Serial1.begin(38400);
^
C:\Users\Marcio J. Melo\Documents\Arduino\ALTERANOMESENHABLUETOOTH\ALTERANOMESENHABLUETOOTH.ino: In function ‘void loop()’:
ALTERANOMESENHABLUETOOTH:14: error: ‘Serial1’ was not declared in this scope
Serial1.write(Serial.read());
^
ALTERANOMESENHABLUETOOTH:16: error: ‘Serial1’ was not declared in this scope
if(Serial1.available())
^
exit status 1
‘Serial1’ was not declared in this scope
O primeiro código não compila no Arduino. Infora: ‘Serial1’ was not declared in this scope
Tenho um modulo bluetooth hc-05 e não estou conseguindo fazer a comunicação via monitor serial.
Liguei dessa seguinte forma:
wakeup (bluetooth) -> 3,3v
vcc (bluetooth) -> 5v
rxd (bluetooth) -> pino 6
txd (bluetooth) -> pino 7
Onde tenho o divisor de tensão igual realizado no esquema, mas sem o sensor.
Queria saber o que poderia estar de errado, pois já alterei a velocidade, dentre outras coisas e não recebo o “ok” do comando AT.
nao vai
Arduino: 1.8.0 (Windows 7), Placa:”Arduino/Genuino Uno”
C:\Users\Familia\Desktop\COMO CRIAR UNIPACK\Piscar_LED\Piscar_LED.ino: In function ‘void setup()’:
Piscar_LED:15: error: ‘Serial1’ was not declared in this scope
Serial1.begin(9600);
^
C:\Users\Familia\Desktop\COMO CRIAR UNIPACK\Piscar_LED\Piscar_LED.ino: In function ‘void loop()’:
Piscar_LED:22: error: ‘Serial1’ was not declared in this scope
if(Serial1.available())
^
exit status 1
‘Serial1’ was not declared in this scope
Este relatório teria mais informações com
“Mostrar a saida detalhada durante a compilação”
opção pode ser ativada em “Arquivo -> Preferências”
‘Serial1’ was not declared in this scope
Amigo,
tentei fazer exatamente o procedimento, mas esta dando um erro no escopo, poderia me ajudar?
Olá, eu o meu AT comands não funciona
você poderia me auxilar?