Configuração do módulo bluetooth HC-06

10
Configuração do módulo bluetooth HC-06 com Arduino O módulo Bluetooth HC-06 é usado para comunicação wireless entre o Arduino e algum outro dispositivo com bluetooth, como por exemplo um telefone celular, um computador ou tablet. As informações recebidas pelo módulo são repassadas ao Arduino (ou outro microcontrolador) via serial. O alcance do módulo segue o padrão da comunicação bluetooth, que é de aproximadamente 10 metros. Esse módulo funciona apenas em modo slave(escravo), ou seja, ele permite que outros dispositivos se conectem à ele, mas não permite que ele próprio se conecte à outros dispositivos bluetooth. Características e ligação ao Arduino O módulo possui 4 pinos : Vcc (alimentação de 3,6 à 6v), GND, RX e TX, os dois últimos utilizados para comunicação com o Arduino via serial. O nível lógico dos pinos RX e TX é de 3.3v, o que significa que, para o Arduino Uno, por exemplo, vamos precisar de um divisor de tensão no pino RX para evitar que o módulo seja danificado. Isso é necessário pois o Arduino Uno trabalha com nível de sinal de 5v. Você pode montar facilmente um divisor de tensão utilizando dois resistores e a calculadora desse link . Coloque o valor dos resistores que você possui nos

Transcript of Configuração do módulo bluetooth HC-06

Page 1: Configuração do módulo bluetooth HC-06

Configuração do módulo bluetooth HC-06 com Arduino

O módulo Bluetooth HC-06 é usado para comunicação wireless entre o Arduino e algum outro

dispositivo com bluetooth, como por exemplo um telefone celular, um computador ou tablet. As

informações recebidas pelo módulo são repassadas ao Arduino (ou outro microcontrolador) via serial.

O alcance do módulo segue o padrão da comunicação bluetooth, que é de aproximadamente 10 metros.

Esse módulo funciona apenas em modo slave(escravo), ou seja, ele permite que outros dispositivos

se conectem à ele, mas não permite que ele próprio se conecte à outros dispositivos bluetooth.

Características e ligação ao Arduino

O módulo possui 4 pinos : Vcc (alimentação de 3,6 à 6v), GND, RX e TX, os dois últimos utilizados

para comunicação com o Arduino via serial.

O nível lógico dos pinos RX e TX é de 3.3v, o que significa que, para o Arduino Uno, por exemplo, vamos

precisar de um divisor de tensão no pino RX para evitar que o módulo seja danificado. Isso é necessário

pois o Arduino Uno trabalha com nível de sinal de 5v.

Você pode montar facilmente um divisor de tensão utilizando dois resistores e a calculadora desse link.

Coloque o valor dos resistores que você possui nos camposR1 e R2, coloque a tensão de entrada (que

é de 5v), e clique em COMPUTE para mostrar a tensão de saída, que deve ser de no máximo 3.3v.

Page 2: Configuração do módulo bluetooth HC-06

No circuito abaixo, que vamos utilizar para configurar o HC-06, utilizamos um resistor de 470 e outro

de 680 ohms.

Nesse circuito, vamos utilizar as portas 6 e 7 do Arduino como RX e TX para comunicação com o

módulo.

Configuração dos parâmetros do módulo HC-06

A configuração do módulo bluetooth se dá por uma série de comandos AT, que vamos enviar pelo serial

monitor.

Page 3: Configuração do módulo bluetooth HC-06

O serial monitor se conecta ao Arduino via porta serial, que por sua vez se conecta ao módulo bluetooth

por uma segunda porta (pinos 6 e 7), que chamaremos deMinhaSerial. Essa nova serial foi criada

utilizando-se a biblioteca SoftwareSerial, uma biblioteca que permite que você defina outras portas

do Arduino como RX e TX.

Carregue este programa no Arduino:

1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334353637

//Programa : Modulo bluetooth HC-06 - Configuracao//Autor : Adilson Thomsen

//Carrega a biblioteca SoftwareSerial#include <SoftwareSerial.h>

//Define os pinos para a serial (RX, TX)SoftwareSerial MinhaSerial(6,7);String command = "";

void setup(){ //Inicia a serial Serial.begin(115200); Serial.println("Digite os comandos AT :"); //Inicia a serial configurada nas portas 6 e 7 MinhaSerial.begin(9600);}

void loop(){ if (MinhaSerial.available()) { while(MinhaSerial.available()) { command += (char)MinhaSerial.read(); } Serial.println(command); command = ""; }

if (Serial.available()) { delay(10); MinhaSerial.write(Serial.read()); }}

Carregue o serial monitor e configure as caixas no rodapé para sem fim de linha, e o baud rate

para 115200, conforme destacado abaixo. Aguarde a mensagem “Digite os comandos AT“:

Page 4: Configuração do módulo bluetooth HC-06

Para verificar se o módulo está respondendo aos comandos, digite AT (em maiúsculas mesmo) na parte

superior da tela e depois clique em ENVIAR:

Ao receber a mensagem OK, é sinal de que o comando AT foi processado corretamente pelo módulo e o

mesmo está respondendo. Na tabela abaixo temos os comandos AT suportados assim como a função de

cada um:

Comando Resposta Função

AT OK Teste de comunicação

AT+VERSION OKlinvorV1.8 Mostra a versão do firmware

AT+NAMExyz OKsetname Altera o nome do módulo

AT+PIN1234 OKsetPIN Altera a senha do módulo

AT+BAUD1 OK1200 Seta o baud rate em 1200

AT+BAUD2 OK2400 Seta o baud rate em 2400

AT+BAUD3 OK4800 Seta o baud rate em 4800

AT+BAUD4 OK9600 Seta o baud rate em 9600

AT+BAUD5 OK19200 Seta o baud rate em 19200

AT+BAUD6 OK38400 Seta o baud rate em 38400

Page 5: Configuração do módulo bluetooth HC-06

AT+BAUD7 OK57600 Seta o baud rate em 57600

AT+BAUD8 OK115200 Seta o baud rate em 115200

AT+BAUD9 OK230400 Seta o baud rate em 230400

AT+BAUDA OK460800 Seta o baud rate em 460800

AT+BAUDB OK921600 Seta o baud rate em 921600

AT+BAUDC OK1382400 Seta o baud rate em 1382400

Não recomendamos configurar a velocidade da serial (baud rate), com valor acima de 38400 para

utilização com Arduino. Velocidades acima desse valor só devem ser utilizadas em casos específicos,

com o hardware apropriado.

Testando a comunicação com o módulo bluetooth

Depois de configurado, é hora de testar o envio de comandos para acionar as portas do Arduino. Monte

o circuito abaixo, composto pelo módulo bluetooth agora ligado aos pinos 0 (RX) e 1 (TX) do Arduino,

e três leds nas portas 3, 4 e 5:

Desligue a alimentação do módulo bluetooth para transferir o programa:

1 2

//Programa : Modulo Bluetooth HC-06 - Leds//Autor : Adilson Thomsen

Page 6: Configuração do módulo bluetooth HC-06

3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041

//Armazena o caracter recebidochar buf;

void setup(){ //Define os pinos dos leds como saida pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); Serial.begin(9600);}

void loop(){ while(Serial.available() > 0) { buf = Serial.read(); //Caso seja recebido R, acende o led vermelho if (buf == 'R') { digitalWrite(3, HIGH); Serial.println("LED Vermelho ligado !"); } //Caso seja recebido G, acende o led verde if (buf == 'G') { digitalWrite(4, HIGH); Serial.println("LED Verde ligado !"); } //Caso seja recebido B, acende o led azul if (buf == 'B') { digitalWrite(5, HIGH); Serial.println("LED Azul ligado !"); }

}}

Nesse ponto podemos ligar novamente a alimentação do HC-06. Vamos enviar comandos para o

Arduino utilizando um celular com Android e o programa Bluetooth SPP, que você encontra nesse

link.

Instale o Bluetooth SPP no seu aparelho e carregue o programa, que ao inicializar já faz uma varredura e

mostra os dispositivos bluetooth detectados :

Page 7: Configuração do módulo bluetooth HC-06

Selecione o dispositivo ao qual você quer se conectar (no nosso caso, o dispositivo BUILDBOT), e na

tela seguinte clique em CONNECT :

Page 8: Configuração do módulo bluetooth HC-06

Se o dispositivo não estiver pareado, será solicitada a digitação da senha do módulo. Se a conexão

estiver OK, será apresentada esta tela :

Page 9: Configuração do módulo bluetooth HC-06

Selecione CMD line mode para entrar no modo de console, onde você poderá enviar comandos ao

módulo bluetooth. Nessa tela, digite o caractere R e selecione ENVIAR, no canto inferior direito. O

Arduino interpretará o caractere que foi recebido e irá acender o led correspondente:

Page 10: Configuração do módulo bluetooth HC-06

Veja na área destacada acima que a comunicação é bidirecional, ou seja, o Arduino também envia para

o celular uma string indicando que o comando foi recebido (Led Vermelho ligado!).

Envie o caractere G para acender o led verde ligado à porta 4, e B para acender o led azul ligado à porta

5.

http://buildbot.com.br/blog/configuracao-do-modulo-bluetooth-hc-06-com-arduino/?utm_source=e-goi&utm_medium=email&utm_term=Como+usar+Bluetooth+HC-06%2C+Drone+da+CNN%2C+Algoritmo+do+MIT+e+mais&utm_campaign=Main