Configurando Senha no Módulo Bluetooth HC-06 com Comandos AT

A segurança da informação é um ponto muito importante a ser considerado em sistemas de comunicação sem fio. Nesse tutorial vamos aprender como configurar uma senha no módulo Bluetooth HC-06 com comandos AT.

Veja também nosso tutorial:  Módulo Bluetooth HC-05 e HC-06 – Acionando um módulo relé via Bluetooth.

[toc]

kit arduino robótica educacional

Comunicação via Bluetooth

Nossa necessidade cada vez maior de conectividade nos leva a estarmos interligados a tudo. Até os aparelhos conversam entre si para realizar suas tarefas, através de protocolos de comunicação como o Bluetooth.

Telefones celulares, tablets, televisores, carros, e muitos outros dispositivos, contam com pelo menos uma interface para comunicação via rede, e o Bluetooth é uma delas.

Módulos Bluetooth

O Bluetooth é um padrão de comunicação sem fio, de curto alcance, com baixo custo e baixo consumo de energia. Essas características tornam essa tecnologia de comunicação uma ferramenta bastante interessante.

É muito comum encontrar projetos de Arduino usando comunicação Bluetooth, e o módulo HC-06 é um dos mais utilizados. A conexão é via comunicação serial e é realizada recebendo o endereço e o clock do outro dispositivo. O endereço é um número de 48 bits, recebido na fabricação, único para cada módulo Bluetooth.

A configuração do HC-06 é realizada por um conjunto de comandos Hayes, também conhecidos como comandos AT (attention, atenção no inglês). Trata-se uma linguagem de comandos desenvolvida para comunicação com modems. Os comandos AT são uma série de cadeias curtas de texto que podem ser combinadas para realizar operações como ligar, desligar ou para alterar configurações.

Mantendo seu Projeto Seguro

Para tornar a comunicação segura, os módulos HC-06 podem ser configurados com senha, evitando acessos indesejados. A senha pode ser alfanumérica e deve ter no mínimo 4 caracteres.

Mãos a obra – Parte 1 – Testando o Módulo Bluetooth HC-06

Nesta parte nós vamos apenas ligar o módulo e testar seu funcionamento. Não será necessário nenhum programa nessa primeira etapa. 

Componentes Necessários

Montando o Projeto

O modulo tem quatro pinos de comunicação, que devemos conectar ao Arduino. Suas funções são:.

  • VCC – Tensão de entrada, entre 3,6 a 6 volts
  • GND – O pino de O V do módulo, que é conectado ao GND do Arduino ou fonte
  • TXD – Pino de transmissão de dados
  • RXD – Pino de recepção de dados

A intenção nessa primeira parte é verificar o funcionamento do módulo HC-06. Dessa forma, precisamos apenas alimentar o VCC, e o GND. O circuito fica como a figura abaixo:

 

Circuito Módulo Bluetooth  HC-06 com Arduino
Circuito Módulo Bluetooth HC-06 com Arduino

Colocando para Funcionar

Agora, basta ligar seu Arduino e verificar no celular se ele aparece como um dispositivo Bluetooth. Você verá que o modulo já veio configurado com nome padrão, que aprenderemos a alterar.

 

Módulo Bluetooth HC-06 sendo reconhecido pelo celular Android
Módulo Bluetooth HC-06 sendo reconhecido pelo celular Android

 

Mãos a obra – Parte 2 – Configurando o modulo bluetooh HC-06

Nesta parte vamos configurar o módulo HC-06. A comunicação é serial, e no caso do Arduino Uno os pinos padrão para comunicação serial são os pinos 0 e 1. Entretanto, esses pinos também são os utilizados internamente quando gravamos um programa na memória do Arduino. Por isso, usaremos uma biblioteca especifica para comunicação serial e vamos usar os pinos 10 e 11 para as funções RX e TX.

Componentes Necessários

Montando o Projeto

O módulo HC-06 é configurado para funcionar sempre como escravo e sempre no modo AT. Não é necessário trocar a ligação elétrica para fazer as configurações.

O pino RX do módulo deve receber 3,3 V, e essa informação vem anotada no verso do módulo, como advertência.

 

Módulo Bluetooth HC-06
Módulo Bluetooth HC-06


Entretanto, a saída digital do Arduino fornece 5 V em nível alto. Por isso, adicionamos um divisor de tensão e tomamos a tensão reduzida para o pino RX.

O circuito fica como na figura abaixo. Atenção no posicionamento dos resistores. 

 

Circuito Módulo Bluetooth  HC-06 com Arduino
Circuito Módulo Bluetooth HC-06 com Arduino

 

Programando o Arduino

O código que vai fazer comunicação do Arduino com o módulo HC-06 é este:

#include <SoftwareSerial.h>

SoftwareSerial myserial(11, 10); // RX, TX

void setup() {
  delay(500);
  Serial.begin(9600);
  Serial.println("Digite os comandos AT :");
  myserial.begin(9600);
}

void loop() {
  if (myserial.available())
    Serial.write(myserial.read());
  if (Serial.available())
    myserial.write(Serial.read());
}

Enviando Comandos para o Módulo

Após carregar o código na placa Arduino, o monitor serial será responsável por gerar uma interface com o módulo HC-06, mostrando os comandos de configuração e mostrando a resposta dos parâmetros.

É fundamental colocarmos a velocidade de comunicação do monitor serial igual à do código carregado na placa Arduino.

Serial.begin(9600);

Além disso, selecionar o meio de envio para “Ambos, NL e CR”:

 

Monitor Serial
Monitor Serial

 

O módulo HC-06 não responde a todos os comandos AT. Abaixo está a lista que ele aceita.

Comando Resposta Descrição
AT+VERSION HC-06-VERSÃO Informa a versão do firmware
AT+NAMENOVONOME Oksetname Muda o nome do dispositivo para NOVONOME (sem espaço depois do comando)
AT+PINNOVOPIN   Muda a senha para NOVOPIN (sem espaço depois do comando)
AT+BAUDX   Altera a taxa de transmissão do módulo para a opção X (leia abaixo)

O nome padrão é ‘HC-06’, e a senha padrão é ‘1234’.

Uma informação muito importante: alterando a taxa de transmissão, o código de comando AT que estava em funcionamento para de funcionar. Lembre que essa é a taxa de transmissão entre o Arduino e o módulo bluetooth. Se alterar o baudrate, vai ser necessário corrigir o código com a nova taxa e gravar no Arduino novamente. Os valores e velocidades respectivas são: 1 (1200 bps), 2 (2400), 3 (4800), 4 (é o padrão – 9600), 5 (19200), 6 (38400), 7 (57600) e 8 (115200).

Entendendo a fundo

Software 

A biblioteca utilizada é responsável pela comunicação serial do Arduino com outros dispositivos.

#include <SoftwareSerial.h>

Em seguida, é criado o objeto que vai se comunicar, nos pinos 11 e 10, onde o primeiro é o RX e o segundo o TX.

SoftwareSerial myserial(11, 10); // RX, TX

Quando a comunicação estiver estabelecida, e o módulo tiver algo na porta serial para enviar, o Arduino recebe os dados e imprime no monitor serial.

if (myserial.available())
  Serial.write(myserial.read());

Quando algo for escrito no monitor serial, o comando é enviado ao módulo. Quando digitamos um comando e teclamos enter, o módulo recebe o código AT e executa. A resposta será enviada ao Arduino, através da estrutura anterior.

if (Serial.available())
  myserial.write(Serial.read())

Hardware

– Montando um Divisor de tensão

Para confecção do filtro de tensão que colocamos no pino TX do HC-06, vamos usar um aplicativo que nos fornece calculadoras e técnicas que podem ser úteis em desenvolvimento.

Usando o aplicativo EletroDoid, que esta disponível para sistemas de celular Android, selecionamos a aba divisor de tensão, como na figura:

 

Aplicativo EletroDoid
Aplicativo EletroDoid

Em seguida, configuramos o divisor alimentando com os dados do nosso projeto os campos Vin, que em nosso projeto é 5 V, e Vout, que é 3,3 V. Deixe a carga em RL desabilitada, desconsiderando a resistência do pino de entrada do módulo

.

Cálculo Circuito divisor de Tensão
Cálculo Circuito divisor de Tensão

O aplicativo cria uma associação de resistores, como a que usamos em nosso projeto. Então é só ajustar os valores dos resistores que se encontram disponíveis, na sua coleção ou para comprar. Nesse tutorial, foram utilizados resistores de 1k e 2k Ohm.

Uma funcionalidade interessante desse aplicativo é que a calculadora já considera os resistores em valores comerciais. Os resistores não são fabricados em todos os valores possíveis, mas em uma quantidade de valores normatizada, que depende da sua série: E6, E12, e E24. O número depois do “E” apresenta a quantidade de valores em que o resistor é fabricado naquela série. E24, possui 24 valores numéricos e seus múltiplos. Por exemplo: um valor comercial da série E24 é 4,7 Ohm. Então existem resistores com valores múltiplos desse: 47, 470, 4,7k, 47k, e em diante.

Considerações Finais

Vimos como personalizar seu dispositivo Bluetooth, dando um nome a ele e criando uma senha, restringindo o acesso a usuários não autorizados. Esperamos que tenha gostado e que consiga fazer bom uso!

Deixe suas dúvidas nos comentários. Sugestões e críticas também são sempre bem vindos. Até o próximo!

Privacy Preference Center