May 31 2012

Como utilizar o Módulo Bluetooth BTM5 em modo Slave com Arduino

Esse projeto consiste em enviar via bluetooth o resultado da leitura de um sensor de temperatura para o computador. Também será mostrado como controlar um led no Arduino via bluetooth. Esses exemplos são apenas didáticos, e servem como referência para quem quiser criar projetos mais complexos, de automação, domótica, telemetria, etc.

A configuração do módulo bluetooth BTM5 por comandos AT,  assim como detalhes de conexão e pareamento foram abordados em outro artigo aqui no Blog. Vale a pena conferir clicando em Como configurar o Módulo Bluetooth BTM5 com Arduino

Materiais Utilizados:

A comunicação bluetooth com esse módulo é bem simples pois nada mais é do que uma comunicação serial. Primeiramente será apresentada a montagem do harware para leitura de um sensor de temperatura LM35 via bluetooth.

Como no Fritzing (programa para fazer o desenho acima) não existe o módulo bluetooth, ele foi representado como apenas um conector onde suas ligações foram feitas respectivamente da esquerda para direita. Os pinos do conector da esquerda para a direita são: VCC, GND, RX, TX.

OBS IMPORTANTE: O Vcc do módulo e as entradas lógicas funcionam em 3.3 Volts, portanto ligue o Vcc do módulo na saida 3.3V do Arduino e o RX do módulo deverá ser ligado ao TX do Arduino por intemédio de um divisor de tensão que irá diminuir a tensão lógica (todos esses detalhes de ligação estão devidamente exemplificados no artigo Como configurar o Módulo Bluetooth BTM5 com Arduino )

O pino MODE não será utilizado nesse projeto pois como padrão ele esta baixo (nivel lógico LOW) então o módulo funcionará normal e não em modo de configuração AT.

A imagem abaixo mostra o circuito real montado em uma protoboard.

O firmware a ser inserido no microcontrolador não poderia ser mais simples, pois é apenas um comando para escrever na porta serial que nesse caso é o módulo bluetooth.

/*
Firmware para fazer a leitura de um sensor de temperatura
e a tranmissão desse dado via Bluetooth
utilizando o módulo BTM-5.
Desenvolvido por: Allan Romanato
Data: 31/05/2012
*/

int sensor = 0;
int leitura = 0;
float temp = 0;

void setup(){
Serial.begin(38400); //Inicia Comunicação Serial
}

void loop(){
leitura = analogRead(sensor);
temp = (leitura * 0.00488);
temp = temp *100;
Serial.print("Temperatura lida: "); //Envia via Bluetooth
Serial.println(temp);
delay(5000);
}

O resultado da execução é mostrado a seguir em uma tela do terminal serial Docklight (poderia ser também vistos em um hyperterminal do Windows).

Aproveitando a deixa, agora será explicado como acionar um LED através de um comando enviado ao Arduino via bluetooth. Usaremos o LED padrão do Arduino que é ligado ao pino 13.  Nesse exemplo será colocado um led extra só para melhor visualização.

O LED extra deverá ser ligado a porta digital 13 do arduino por intermédio de um resistor de 330 ou 470 Ohms.

O que mudará um pouco nessa parte é que a porta serial deverá ser lida pelo Arduino e a informação recebida terá que ser interpretada pelo microcontrolador para depois o sinal ser enviado. No código a seguir será abordado leitura e escrita na serial (bluetooth).

/*
Firmaware responsavel por acender e apagar um led
via Bluetooth.
Desenvolvido por Allan Romanato
Data: 31/05/2012
*/

char receive;
int pin = 13;
void setup(){
pinMode(pin, OUTPUT);
Serial.begin(38400); //Inicia Comunicação Serial
}

void loop(){
if (Serial.available() > 0){ //Checa de a porta serial tem info.
receive = Serial.read(); //Faz a leitura da Serial.
if(receive == 'l'){
digitalWrite(pin, HIGH);
Serial.println("Led Ligado");
}
else if(receive == 'd'){
digitalWrite(pin, LOW);
Serial.println("Led Desligado");
}
}
delay(500); //Necessario para sincronizar.
}

Os resultados da execução do código acima são mostradas nas figuras a seguir:

Após o comando de ligar o LED

Após o comando de desligar o LED

 

Com a leitura do artigo pode-se concluir que quando utilizamos o Módulo Bluetooth BTM5 a comunicação sem fio se torna simples, pois é só enviar comandos para a porta serial que eles são interpretados automaticamente.

Abraço

Allan Romanato

6 Comments

  • By Caio Luiz Gomes, August 24, 2012 @ 12:32 am

    Tenho um Arduino Mega 2560, tentei configurar dessa sua forma, mas não consegui, primeiro que não posso tirar o chip pois o mesmo está soldado.
    Poderia me dá alguma ajuda?

    Att,

  • By javier correa, September 21, 2012 @ 7:51 pm

    Se vc olha as duas configuraçoes pra conetar o modulo BT tem trocadas o Tx e o Rx… qual e a necesaria pra pdoer configurar??
    Vc pdoe configurar ele com o arduino??

  • By Rodrigo, November 5, 2012 @ 3:06 pm

    Como eu faço para conseguir esse programa Docklight ou um semelhante que seja gratuito??

  • By Laese, March 9, 2013 @ 10:24 am

    É possível também configurar via bluetooth o nome dos módulos escravos com aplicativo android:
    https://dl.dropbox.com/u/101922388/BluetoothSanUSB/BT4SanUSB.apk
    Video em https://www.youtube.com/watch?v=V65-Vt91rug . Os programas e tutorial para arduino estão disponíveis no link: https://dl.dropbox.com/u/101922388/ModemBluetooth19200.zip

  • By Gabriel Kist, April 29, 2013 @ 12:41 pm

    Em todos os videos do youtube quando os caras conectam o usb no pc,
    e quando o modulo liga o bluetooth do computador encontra o modulo
    quando eu faço isso não aparece nada o que eu faço?

  • By wellington, August 7, 2013 @ 9:50 pm

    Olá tenho um modulo desse gostaria de energizar e ao pesquisar no celular não o encontro, preciso configurar quais pinos preciso alimentar
    VCC,GND – para que serve os pinos KEY,STATE.

    Grato
    Wellington

Other Links to this Post

RSS feed for comments on this post. TrackBack URI

Leave a comment