May 30 2012

Como configurar o Módulo Bluetooth BTM5 com Arduino

Nesse artigo será mostrado como configurar o módulo Bluetooth com comandos AT.

Introdução

O Bluetooh é uma tecnologia que permite uma comunicação simples e rápida entre equipamentos por ondas de rádio de baixo alcance. A idéia do Bluetooth começou a surgir no ano de 1994 onde a empresa Ericsson percebeu a necessidade de criar um equipamente de comunicação entre dispositivos em baixa distância que eliminasse cabos de conexão em tranferências simples de arquivos e de dados. Nos anos seguintes essa tecnologia foi se popularizando no mundo e hoje em dia podemos ver o Bluetooth em muitos equipamentos do nosso cotidiano.

Para computadores ou notebooks que não possuem essa tecnologia de fábrica, é possivel usar um adaptador bluetooth para USB (também conhecido como dongle bluetooth).

O bluetooth foi projetado para funcionar em todos os países e por isso foi necessaria a utilização de uma frequência de rádio aberta, que no caso é a de 2,45GHz

Adaptador Bluetooth para USB

Existem três classes de equipamentos, sendo que essas classes definem o alcance maximo de cada dispositivo.

Classe 1: Alcance de até 100 metros.
Classe 2: Alcance de até 10 metros.
Classe 3: Alcance de até 1 metro.

 

Redes Bluetooth

Quando dois ou mais dispositivos Bluetooth se comunicam através de uma conexão eles formam uma rede chamada de Piconet. Cada Piconet pode ter no maximo 8 elementos, sendo um MASTER e outros 7 SLAVES. O dispositivo master é o responsavel pelo sincronismo e pela procura dos dispositivos e também pelo controle das tranmissões de dados. Ja os dispositivos slaves são mais simples, pois eles são apenas procurados pelo master que esta fazendo a solicitação de pareamento.

É possivel ligar mais de 8 dispositivos em uma rede Bluetooth e essa técnica é dada pela sobreposição de dois ou mais Piconets. O nome dado a essa nova rede é Scatternet. Um dispositivo slave pode fazer parte de mais de um piconet simultaneamente, isso ja não é possivel para um dispositivo master, que é o controlador do piconet.

Projeto

Para execução desse projeto foi utilizado:

 

O módulo vem com configurações pré-estabelicidas de fábrica, como velocidade de comunicação, nome do dispositivo, senha de pareamento, e etc. que podem ser alteradas via comandos AT por meio de comunicação serial com o computador. Obs. Importante: Essa configuração NÃO é possivel via comunicação Bluetooth. Deve ser feita necessariamente por meio de cabos de conexão (fisicamente). Nesse projeto, para fazer a conexão serial entre o computador e o módulo bluetooth , será utilizado o próprio Arduino como conversor USB-TTL.

 

Os comandos AT de configuração, ao serem enviados devem ser seguidos obrigatoriamente por um <CR> (Carrige Return) e um <LF> (Line Feed). Todos esses comandos ao serem recebidos com sucesso pelo módulo, são respondidos com uma mensagem de confirmação “OK”. Segue abaixo uma tabela com os comandos e suas funções:

O módulo que esta sendo apresentado aqui, trabalha com nível de tensão de 3.3 Volts, e ai começa um impasse  pois as saidas lógicas do arduino operam com 5 volts, o que irá danificar o módulo se a saída do Arduino for ligada diretamente.

Para contornar esse problema, podemos montar um divisor de tensão para converter as saídas lógicas de 5 Volts para 3.3 Volts.

Um divisor de tensão nada mais é que um circuito simples que tem como função criar uma tensão proporcional a outra. O circuito a seguir mostra um divisor de tensão:

Os resistores são ligados em serie, e de acordo com os seus valores, podemos regular a tensão de saída. Abaixo a fórmula utilizada para se calcular a saída.

Para enviar os comandos AT, é necessario colocar o módulo em estado de configuração. Para isso basta alimentar o módulo com o botão onboard pressionado ou enviando um bit alto (3.3V) para o pino MODE. Usaremos o FTDI do próprio arduino duemilanove como conversor USB-TTL para fazer a comunicação serial com o módulo.

Para utilizar o FTDI do Arduino é necessario retirar o microntrolador da placa. Como o TX do Arduino é o RX do FTDI e o RX do Arduino é o TX do FTDI, consequentemente, deverá ser ligado: TX/TX e RX/RX. Segue abaixo uma imagem para deixar mais claro esse raciocinio (essa imagem ja contém o divisor de tensão).

Sera mostrado abaixo uma sequência de passos para conectar o módulo bluetooth com o computador. Aqui será utilizado um adaptador Bluetooth da Shark.

Os passos a seguir foram executados em um sistema operacional Windows 7.

Abra o painel Bluetooth que esta no TrayIcon após a instalação do driver pelo proprio Windows 7

Clique em Adicionar Dispositivos.

Selecione o módulo Bluetooth e clique em proximo.

Clique em Entrar código de pareamato do dispositivo.

Coloque o código de pareamento que foi configurado pelos comandos AT (o padrão de fábrica é 1234. Dependendo do seu módulo também pode ser 0000 ou 1111).

Se tudo estiver OK, aparecerá a seguinte tela:

Para enviar os comandos AT, pode-se usar qualquer programa de terminal serial (hyperterminal do Windows por exemplo). Abaixo tem o resultado da execução de alguns comando AT e suas respectivas respostas. A velocidade padrão de fábrica de comunicação é de 115200 ou 38400 dependendo do modelo. Caso seu módulo bluetooth não responda, tente outras velocidades.

Abraço,

Allan Romanato

12 Comments

  • By jr, June 4, 2012 @ 7:23 pm

    segui o passo-a-passo mas não consegui nem a pau,ele não responde para o docklight ,configurei a porta,a taxa de comunicação em 38400,fiz o divisor de tensão,alimentei o pino mode com 3,3 ,tentei ligar a alimentação pressionando o botão do módulo e nada
    e agora ???

  • By Allan, June 28, 2012 @ 11:12 pm

    Vc envio o CR e o LF depois de cada comando?

  • By jj, August 8, 2012 @ 8:55 pm

    Segui todos passos estou usando o atmega1280. Como posso proceder na hora de remover o uc, estou tentando comunicar com meu android não consigo de jeito nenhum. Oo dispositivo parea porem não consigo enviar comandos para acender um LED. Ele não acende, uso o s2 bluetooth…cheguei a alimentar sem resistor o módulo, não sei como testar para ver se esta ok.

  • By admin, August 9, 2012 @ 3:02 pm

    JJ, se você tirou os resistores do pino RX do bluetooth, provavelmente vc queimou alguma coisa. Para se comunicar com Android, seu Arduino deve iniciar a Serial com velocidade de 38400 e o módulo bluetooth também tem que estar configurado via comandos AT nessa velocidade.

  • By Iwan Oliveira Silva, October 1, 2012 @ 3:20 pm

    Quanto é possível transmitir com o Bluetooth com o Arduino? dá pra transmitir uma imagem?

  • By Rodrigo, December 2, 2012 @ 12:20 am

    Olá
    Meu problema é o seguinte, eu consigo parear o modulo bluetooth com o android para realizar a experiencia com o led mas quando eu envio o comando ele não responde. Eu fiz toda a programação com a velocidade de 38400 e nada.É necessário eu realizar a configuração AT nesse caso????

  • By anderson, January 29, 2013 @ 7:04 pm

    ola. parabens pelo artigo!
    gostaria de saber se este modulo bluetooth pode comunicar ao mesmo tempo com dois devices diferentes? como exemplo, receber caracteres de um celular e de um computador ao mesmo tempo, ou seja, abrindo duas portas seriais virtuais (spp) os dois sinais sao enviados nos mesmos pinos rx e tx.
    obrigado!

  • By Mussa, February 16, 2013 @ 4:36 pm

    Comprei esse módulo, porem não tive sucesso.
    Conectei com o módulo, pareei porem não consigo me comunicar com o módulo.
    o máximo que eu consigo é quando eu vario a tensão de entrada do TX e Rx
    ele repete o sinal que envio.

    se tiverem uma soluçõa e puderem ajudar.

  • By junior, June 2, 2013 @ 11:57 am

    O circuito está mostrando os resistores no RX do arduino,e deveria estar no RX do módulo bluetooth :)

  • By Webtronico, June 3, 2013 @ 10:00 am

    Junio, é que no exemplo acima foi retirado o ATmega da placa Arduino e está sendo usado apenas o chip da USB para comunicação. Por isso a ligação foi feita entre RX/RX e TX/TX. Ta explicado no texto.

  • By carlos gilson, July 6, 2013 @ 8:33 pm

    Boa noite amigos tudo Bem gostaria de saber se eate modulo que vc aprezenta pode se comonicar ddertamente com o modulo converso usb rs232

Other Links to this Post

  1. WebTronico Blog » Como utilizar o Módulo Bluetooth BTM5 em modo Slave com Arduino — May 31, 2012 @ 10:19 pm

RSS feed for comments on this post. TrackBack URI

Leave a comment