Olá pessoal! Hoje vamos tratar de dois módulos interessantes, o HC-05 e o HC-06. Ambos são módulos bluetooth comuns e fáceis de se encontrar no mercado. Neste artigo faremos uma comunicação serial entre estes dois módulos.
Requisitos
- Certifique-se que você tenha em mãos uma peça de cada um dos módulos comentados acima;
- Instale o software RealTerm, disponível aqui. Este software será utilizado para o envio dos comandos AT.
Conhecendo os Módulos HC-05 e HC-06
O módulo HC-05 é o módulo Master. O início da conexão sempre parte deste módulo. Já o HC-06 é o módulo Slave, que se conecta quando o Master desejar. Visualmente é fácil de identifica-los: o HC-05 tem 6 pinos e o HC-06 tem 4. O modelo HC-05 possui algumas variações no mercado, podendo apresentar o controle do pino KEY através de um botão na placa ou um pino externo. A função deles é praticamente a mesma: inicializar o módulo para a entrada de comandos AT. Este comportamento será aprofundado ao longo deste artigo.
Ambos os módulos interpretam como comandos os dados recebidos no período de 1 segundo. Portanto, digitar caractere por caractere é praticamente impossível neste curto espaço de tempo. Para facilitar a comunicação, foi escolhido o terminal RealTerm por ter a opção de mandar pacotes de caracteres de uma única vez, possibilitando assim a comunicação com os módulos. Cuidado ao ligar os módulos em interfaces seriais, pois os níveis lógicos de comunicação são 3,3V.
Configurando o módulo SLAVE (HC-06)

Para iniciar, alimente o módulo com a tensão indicada para o seu modelo (geralmente de 3,6V a 6V) e conecte-o a uma interface serial. Para este tutorial foram utilizados adaptadores seriais com saída TTL (0V – 5V). Logo, há a necessidade de atenuar o sinal lógico para 3,3V, a fim de não danificar os módulos. Para isto, pode-se utilizar um divisor resistivo para o pino RX do módulo:
Assim que o módulo estiver alimentado, seu LED piscará. Se o mesmo continuar piscando rápido significa que o módulo não está em comunicação com nenhum dispositivo. Caso ele permaneça ligado isso significa que o módulo está conectado a outro dispositivo; assim a configuração do módulo não poderá ser feita. Verificado isso, vamos testar a comunicação com este módulo. Para isto, abra o RealTerm, vá na guia ‘Port’, selecione o BaudRate 9600 e a porta na qual está conectado o módulo e por fim clique em ‘Open’.

Agora, vamos facilitar a visualização dos comandos no terminal. Seria interessante visualizar tudo que está sendo enviado e recebido, certo? Para isto, vá na guia ‘Display’ e marque a opção ‘Half Duplex’.

Pronto! Agora podemos enviar os comandos para o módulo. Como todos os dados devem chegar em menos de 1 segundo, utilizaremos a guia ‘Send’, que mandará vários caracteres em uma só transmissão. Digite o comando a ser enviado e clique no botão ‘Send ASCII’. Primeiramente vamos testar a conexão, mandando os caracteres “AT” (sem aspas):

Em verde vemos o comando enviado e em amarelo a mensagem recebida. Assim confirmamos a correta comunicação com o módulo. Caso não consiga a resposta ‘OK’, tente outros BaudRates (o módulo pode vir com alguma configuração diferente). Lembre-se também de verificar se o módulo não está conectado a outro dispositivo.
Agora vamos configurar as propriedades do módulo. Podemos alterar nome de descoberta do dispositivo, a senha de conexão e o BaudRate de comunicação. Para alterar a senha usamos o comando “AT+PINX” onde X deve ser um número de 4 dígitos. Já para a configuração de BaudRate deve-se utilizar o comando “AT+BAUDX” onde X é parametrizado segundo a tabela 1 a seguir:
Tabela 1 – BaudRates
OBS: Maiores velocidades não são indicadas pois pode ocorrer incompatibilidade com alguns adaptadores seriais.
Nos comandos a seguir vamos fazer as seguintes configurações:
- BaudRate: 9600;
- PIN: 0123.

Pronto! Seu módulo Slave já está configurado!
Configurando o módulo MASTER (HC-05)

Análogo ao módulo Slave o módulo Master também trabalha com nível lógico 3,3V. Faça o mesmo circuito atenuador para a conexão com a interface serial TTL. Nos módulos em que o pino KEY existe, ligue este pino a uma tensão de 3,3V. Dica: se você tiver em mãos apenas uma fonte 5V, utilize o mesmo divisor resistivo do atenuador exibido na figura 2 . O tutorial será baseado no módulo com botão.
Antes de ligar o módulo, pressione e segure o botão. Ligue a alimentação e apenas depois solte o botão. O LED deve começar a piscar lentamente, indicando que está pronto para receber os comandos.
Diferente dos módulos Slave este módulo finaliza os comandos com a inserção dos caracteres \r\n. Você não precisa escrevê-los no comando, o RealTerm faz isto automaticamente. Basta selecionar esta opção na aba ‘Send’:

Inicialmente este módulo entra com o BaudRate em 38400. Configure o BaudRate e envie o comando de teste “AT”:

Recebeu um OK? Ótimo, seu módulo está funcionando corretamente! Agora vamos resetar as configurações e começar do zero, para evitar erros. Usaremos os seguintes comandos:
- AT+ORGL: reseta o módulo para as configurações originais;
- AT+UART=38400,0,0: configura o BaudRate para 38400;
- AT+NAME=EmbarcadosMASTER: altera o nome de exibição. Você poderá vê-lo através de seu smartphone por exemplo;
- AT+PSWD=0123: configura PIN para 0123;
- AT+ROLE=1: coloca o módulo para operar como MASTER;
- AT+CMODE=1: configura o módulo para se conectar com qualquer dispositivo com o mesmo PIN;
- AT+INIT: inicia a aplicação.
Após o INIT não há resposta, a menos que você segure o botão pressionado ao enviar o comando. Notou que a senha utilizada foi a mesma do dispositivo Slave? Isto faz com que ambos se conectem automaticamente quando ligados. Após o comando INIT o LED piscará rapidamente até se conectar com o dispositivo Slave. Já o Slave, quando conectar-se com o Master, manterá seu LED ligado.
Pronto! Podemos agora desfrutar de uma comunicação serial sem fio.

Referências


