terça-feira, 1 de dezembro de 2015

Mudando baud rate do módulo bluetooth HC-05

Eu precisava utilizar o módulo bluetooth num projeto, mas estava com problemas para configurar a velocidade de transmissão e outros detalhes do módulo. O módulo exato é o HC-05:

A dificuldade principal é que alguns posts ensinam a configuração para o módulo HC-06, que não tem modo master e é mais simples para configurar.

Para essa postagem, eu estarei usando, além do módulo bluetooth HC-05, um cabo FTDI e a Arduino IDE. Existem outras formas de fazer a configuração do módulo bluetooth, mas não será abordada nessa postagem.

Caso o módulo não tenha uma placa breakout. esse link tem o exemplo de como fazer uma...

O cabo FTDI usado tem como tensão de alimentação (VCC) 5V, e o sinal de comunicação do TX é de 3,3V. Como o módulo bluetooth é trabalha com uma tensão de 3.3V, o cabo FTDI tem um regulador de tensão pra cair a tensão de alimentação. Já há também uma inversão entre o TX  e o RX do cabo para o módulo bluetooth (e vice-versa) para que não haja problemas na hora de ligar. Abaixo segue uma figura com a adaptação feita do cabo:


Caso o cabo não faça a comunicação com 3.3V como esse cabo (ou seja, faça com 5V) será necessário implementar um divisor de tensão (recomendado é usar um resistor de 10k e outro de 20k, pois assim a corrente não será alta). Caso o cabo já seja de 3,3V, esse divisor não poderá existir!

Para a configuração do módulo bluetooth, serão utilizados comandos AT para mudar os parâmetros. Para o módulo HC-05, é necessário fazer uma mudança na breakout mencionada acima (será necessário checar outras breakouts..). Diferentemente do módulo HC-06, o HC-05 precisa que o pino KEY esteja em HIGH para  aceitar comandos AT. Abaixo a figura mostra a posição do pino KEY em destaque:
 A imagem a seguir mostra a adaptação feita para deixar o sinal de 3.3V no pino KEY




A partir de agora, já podemos conectar o cabo FTDI no PC e já abrir o monitor serial da Arduino IDE selecionando a porta COM ocupada pelo módulo (caso não saiba qual é a porta, vá em Ferramentas>Porta:  e veja qual está aparecendo..). Assim que o monitor serial estiver aberto, verifique se as configurações estão conforme a próxima imagem:



A partir desse ponto, já podemos digitar os comandos AT. Nesse link tem todos os comandos AT aceitos para o módulo HC-05. Mas para este caso usaremos apenas algums mais importantes para mudar o nome, a senha (para pareamento) e a velocidade de transmissão do módulo.

Os comandos utilizados serão os abaixo (sem as aspas):

"AT" - Para confirmar a comunicação. Se tudo estiver certo, o módulo responderá OK
"AT+NAME" - O módulo responderá com o seu nome atual
"AT+PSWD" - O módulo responderá com a sua senha atual
"AT+UART" - O módulo responderá com o seu baud rate atual
"AT+NAME=nome_escolhido" - Muda o nome do módulo para o nome escolhido
"AT+PSWD=senha-escolhida" - Muda a senha do módulo para a senha escolhida
"AT+UART=velocidade,stop bit, parity bit " - Muda a velocidade, o stop bit e bit de paridade do módulo. Para a velocidade, os possíveis valores podem ser: 4800, 9600, 19200, 38400, 57600, 115200, 23400, 460800, 921600, 1382400. Para o stop bit, os valores podem ser 0 (para 1 bit de stop bit) ou 1 (para 2 bits de stop bit) . E para o parity bit, os valores podem ser 0 (sem paridade), 1 (paridade ímpar) e 2 (paridade par).

Para o exemplo, primeiro checaremos cada um dos parâmetros, e depois mudaremos o nome para teste, a senha para 0000 e a velocidade para 115200, com 1 stop bit e sem bit de paridade. Depois checaremos os parâmetros novamente. Os comandos digitados serão os seguintes:

AT
AT+NAME
AT+PSWD
AT+UART
AT+NAME=teste
AT+PSWD=0000
AT+UART=115200,0,0
AT+NAME
AT+PSWD
AT+UART

A janela deverá ficar como essa debaixo:



Pronto! Agora o módulo bluetooth está com as configurações desejadas. Caso queira voltar o módulo às configurações de fábrica, basta digitar o comando AT+ORGL.