- Materiais requisitados
- Diagrama de circuito
- Configuração inicial dos módulos HC05
- Teste de comunicação Arduino para Arduino Bluetooth
Os módulos Bluetooth HC-05 são os módulos Bluetooth indispensáveis para qualquer projeto Arduino! É fácil conectar e codificar no IDE do Arduino. Na maioria dos projetos, normalmente conectamos o HC05 a um Arduino e o usamos para nos comunicarmos sem fio com outro dispositivo inteligente, como um telefone celular. Isso é bastante simples e construímos muitos projetos interessantes com ele, como Robô Controlado por Bluetooth, Controle de Voz Bluetooth, Automação Doméstica Bluetooth, etc. No entanto, você já precisou conectar dois HC-05s juntos? Não é tão fácil conectar um HC05 a um smartphone, mas há algumas etapas adicionais envolvidas. Este tutorial irá guiá-lo através deste processo. Vamos começar!
Materiais requisitados
- 2x Arduino (qualquer modelo serve; estou usando um Arduino Uno R3 e um Arduino Nano)
- 2 módulos Bluetooth HC05
- Tábua de pão
- Jumper Wires
- 2x resistor de 1kΩ
- 2x resistor 2.2kΩ
Diagrama de circuito
Este é o diagrama de circuito básico. Conecte 2 desses circuitos, um para o mestre e um para o escravo. Para as conexões, tudo o que estamos fazendo aqui é conectar o HC05 ao Arduino. O pino do receptor (Rx) do HC05 opera na faixa de 0 V a 3,3 V e o Arduino opera na faixa de 0 V a 5 V. Portanto, usaremos resistores (R1 e R2) para criar um divisor de tensão para reduzir a saída de 5V do Arduino para 3,3V, de modo a não danificar o módulo HC05.
Estou usando 1kΩ para R1 e 2,2KΩ para R2, mas você pode usar qualquer valor de resistor, desde que R2 seja aproximadamente o dobro do valor de R1 (R2 ≈ 2R1). Da mesma forma, repita o circuito para mestre e escravo, o Arduino Master Bluetooth Circuit e o Arduino Slave Bluetooth Circuit são mostrados abaixo.
Configuração inicial dos módulos HC05
Esta é a etapa adicional necessária para conectar dois módulos HC05 juntos. Precisamos alterar algumas configurações dentro do módulo Bluetooth HC05, para fazer isso, temos que ir para o modo de comando AT do módulo HC05 e enviar comandos para ele através do monitor serial do IDE Arduino. Para fazer isso, precisamos escrever um código Arduino para enviar comandos por meio do monitor serial para o HC05.
O código para configurar o módulo HC05 pode ser encontrado na parte inferior desta página, a explicação do código é a seguinte
Adicione a biblioteca SoftwareSerial a este código.
#include < SoftwareSerial.h>
Defina os números dos pinos de transmissão (Tx) e recepção (Rx). Estou usando o pino 2 para Tx e pino 3 para Rx.
#define tx 2 #define rx 3
Dê algum nome à conexão Bluetooth (aqui estou usando configBt) e, em seguida, diga à biblioteca SoftwareSerial qual pino é Tx e qual pino é Rx. A sintaxe é bluetoothName (Rx, Tx);
SoftwareSerial configBt (rx, tx); // RX, TX
Para configurar o módulo Bluetooth, o Arduino precisa enviar comandos a uma taxa de bauds de 38400 bauds. Da mesma forma, definimos a taxa de baud da conexão Bluetooth também para 38400 baud. Defina o Transmit (Tx) para o pino de saída e Receba (Rx) para o pino de entrada
void setup () { Serial.begin (38400); configBt.begin (38400); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Dentro do loop eterno, temos a parte principal do código. A ideia aqui é enviar tudo o que for digitado na caixa de texto do monitor serial para o HC05 por meio do pino Tx do Arduino. Em seguida, exiba tudo o que é produzido pelo HC05 no monitor serial.
void loop () {if (configBt.available ()) // se o HC05 está enviando algo… { Serial.print (configBt.readString ()); // imprime no monitor serial} if (Serial.available ()) // se o monitor serial está exibindo algo… {configBt.write (Serial.read ()); // escrever no pino Tx do Arduino}}
Faça upload deste código no Arduino conectado ao módulo principal HC05 primeiro. Após fazer o upload do código, desconecte o cabo de alimentação do Arduino. Pressione e segure o botão no HC05. Agora conecte o cabo de alimentação do Arduino enquanto mantém pressionado o botão no HC05. Tudo bem, agora você pode soltar o botão no HC05. É assim que você entra no modo AT do HC05. Para verificar se você fez isso corretamente, certifique-se de que a luz vermelha no HC05 esteja piscando aproximadamente a cada segundo (piscando lentamente!). Normalmente, antes de o HC05 ser conectado a qualquer dispositivo Bluetooth, sua luz vermelha pisca em uma frequência muito alta (piscando rapidamente!).
Em seguida, abra o monitor serial (o botão do monitor serial está no canto superior direito do IDE do Arduino). No canto inferior direito da janela do monitor serial, se você ainda não tiver feito isso, certifique-se de definir a configuração de final de linha para “Ambos NL e CL” e a taxa de baud para 38400. Agora, digite AT no monitor serial, se tudo correr bem, você obterá um “OK” do HC05 exibido na janela do monitor serial. Parabéns! Você efetuou login com êxito no modo de comando AT do módulo HC05.
Agora, digite os seguintes comandos na tabela abaixo para configurar o módulo HC05 mestre:
COMANDO (insira-o no monitor serial e pressione Enter) |
RESPOSTA (resposta do HC05, exibida no monitor serial) |
Função (o que este comando faz?) |
AT |
Está bem |
Teste |
AT + CMODE? |
Está bem |
Verifique o CMODE ou modo de conexão ----------------------------- CMODE: 0 é o escravo 1 é mestre |
AT + CMODE = 1 |
Está bem |
Defina o cômodos para 1, como estamos a configuração do mestre HC05 |
AT + ADDR? |
+ ADDR: FCA8: 9A: 58D5 Está bem * Este é o endereço do meu mestre HC05. Seu endereço será diferente! |
Retorna o endereço do HC05, anote isso pois vamos precisar dele mais tarde! |
Em seguida, conecte seu computador ao outro HC05, o escravo:
COMANDO (insira-o no monitor serial e pressione Enter) |
RESPOSTA (resposta do HC05, exibida no monitor serial) |
Função (o que este comando faz?) |
AT |
Está bem |
Teste |
AT + CMODE? |
Está bem |
Verifique o CMODE ou modo de conexão ----------------------------- CMODE: 0 é um escravo 1 é mestre |
AT + CMODE = 0 |
Está bem |
Defina o CMODE para 0 enquanto estamos configurando o escravo HC05 |
AT + BIND = FCA8,9A, 58D5 * Substitua o “:” no endereço HC05 mestre por “,” * Aqui estou usando o endereço do mestre HC05 que anotei na tabela anterior. Você deve usar o endereço do seu mestre HC05! |
Está bem |
Configurando o endereço do HC05 mestre ao qual este HC05 escravo se conectará automaticamente na inicialização |
AT + BIND? |
+ BIND: FCA8: 9A: 58D5 Está bem * Este é o endereço do meu mestre HC05. Seu endereço será diferente! |
Verifique o endereço de ligação do seu escravo. Se corresponder ao endereço do seu HC05 mestre, você está pronto para começar! |
Teste de comunicação Arduino para Arduino Bluetooth
Em primeiro lugar, alimente os módulos HC05 mestre e escravo. Após ligar e passar alguns segundos, olhe para a luz vermelha nos módulos HC05.
Velocidade de piscar da luz vermelha |
O que significa |
Piscando em uma frequência muito alta (piscando rápido!) |
Não é bom! Isso significa que seus módulos HC05 não estão se conectando entre si! É hora de solucionar o problema! |
Piscando em baixa frequência (piscando lentamente!) |
Agradável! Você conseguiu! Mas ainda temos que fazer mais uma verificação para ter certeza de que essa configuração funciona! Ir em frente! |
Quando suas luzes vermelhas estiverem piscando em baixa frequência (piscando devagar!), Você pode ter certeza de que ambos os HC05s estão conectados um ao outro, mas não testamos se os dados podem ser enviados e enviados entre o mestre e o escravo. Afinal, esse é o objetivo principal aqui.
Carregue o código abaixo em um dos Arduinos, este é o código para testar o transmissor (Tx), novamente o código completo para o transmissor e o receptor pode ser encontrado no final desta página.
Seguindo o código anterior, adicionamos a biblioteca SoftwareSerial a este código e definimos os números dos pinos de transmissão (Tx) e recepção (Rx). Em seguida, nomeamos a conexão Bluetooth e passamos os números dos pinos Tx e Rx para a biblioteca.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
Na função de configuração, estamos definindo a taxa de transmissão para o monitor serial Arduino e o Bluetooth novamente. Você vê a diferença aqui em comparação com o código anterior? Estamos usando uma taxa de transmissão de 9600 baud. Esta é a taxa de transmissão de comunicação predefinida padrão do módulo HC05 Bluetooth ao se comunicar com outros dispositivos Bluetooth. Portanto, observe que 38400 bauds é para configurar o HC05 com comandos AT e 9600 bauds é a taxa de bauds padrão do módulo HC05. Por último, como antes, configuramos o pino Tx como saída e o pino Rx como entrada.
void setup () { Serial.begin (9600); bt.begin (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Dentro do loop eterno, tudo o que estamos fazendo é transmitir um valor aleatório de “123” através do HC05.
loop void () {bt.write (123); }
Carregue este código para o outro Arduino, este é o código para testar o recebimento (Rx):
Exatamente igual aos códigos anteriores, configuramos a biblioteca SoftwareSerial.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
O código na função de configuração é exatamente o mesmo que o código para testar a transmissão (Tx).
void setup () { Serial.begin (9600); bt.begin (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
No loop eterno, só precisamos receber o que estamos enviando do Arduino transmissor. Se o buffer de recepção recebeu alguns dados do HC05, exiba o que for recebido no monitor serial.
void loop () {if (bt.available ()> 0) { Serial.println (bt.read ()); }}
Depois de fazer o upload dos respectivos códigos para cada Arduino, abra o monitor serial para o Arduino receptor. Certifique-se de escolher a taxa de transmissão como 9600 e a linha terminando como Newline no monitor serial. Se tudo estiver funcionando bem, você verá 123.
Nota: Se você conectou os Arduinos de transmissão e recepção ao mesmo laptop, certifique-se de escolher a porta COM correta em FERRAMENTAS> PORTA. Você deve estar conectado à porta COM do Arduino de recepção.
Se tudo correr bem, troque os módulos do HC05 para garantir que a comunicação possa acontecer nas duas direções e ESTAMOS FEITOS!