Microcontroladores: Módulos de Portas Seriais Bluetooth

Estes módulos foram adquiridos na Goodluckbuy e chegaram em junho de 2011. Só consegui testar na semana passada (imagine a quantidade de coisas atrasadas que tenho aqui) e agora estou registrando.
Slave USD 10.40
Master USD 10.40

Os dois módulos são praticamente idênticos. Mudam alguns componentes na placa base e a programação na placa bluetooth (que você não pode mudar facilmente). O que basicamente diferencia o Master é a presença do botão ( o retângulo rotulado “K1” na placa). Note que o segundo chip é uma memória flash de 1MB (MXIC MX29LV800 no slave). Essas coisinhas minúsculas tem firmware, que é diferente em cada papel. Não adianta colocar os componentes que faltam no módulo slave e esperar que funcione como master.

Na maior parte dos casos você pode ignorar os pinos STATE e WAKE/ON/OFF. Só os pinos VCC, GND, TXD e RXD são indispensáveis.

Para entender o propósito e aplicação desses módulos, basta assimilar o seguinte:

  • O master só pode se comunicar com um (e apenas um) slave;
  • O slave pode se comunicar com um (e apenas um) master ou um (e apenas um) computador com suporte bluetooth, que nesse caso atua como master;
  • Não pode haver comunicação entre dois slaves ou dois masters. É preciso um de cada. Salvo engano, é uma limitação do protocolo BT;
  • Tanto o master quanto o slave podem ser conectados fisicamente a qualquer coisa que ofereça uma porta serial RS232 TTL. Isso pode ser um computador com um adaptador USB – serial TTL ou microcontroladores e dispositivos prontos que tenham portas seriais, mesmo se forem “caixas pretas”. Se a porta é RS232, deve funcionar;

Funcionamento do módulo master
É preciso prestar atenção ao LED:

  • Piscando rapidamente (várias vezes por segundo): O master nunca foi pareado com um slave;
  • Piscando devagar (aprox. uma vez por segundo): O master “lembra” de ter pareado com um dispositivo, mas não está pareado no momento;
  • Aceso: pareado

Uma vez que o master nunca tenha sido pareado com um slave, o pareamento ocorrerá automaticamente quando um slave for ligado no alcance dele. Ele sempre lembrará desse slave pelo seu endereço MAC e não pareará com nenhum outro que apareça, a não ser que se aperte o botão, que apagará o MAC gravado (você pensou que o botão servia para parear, né? Eu também!).

Funcionamento do módulo slave

  • LED piscando: a porta não está “aberta” ainda. Simplesmente parear não adianta;
  • LED aceso: porta serial aberta

Uso no PC

Você pode usar tanto o master quanto o slave no PC, desde que use um adaptador USB ou algo do gênero. A vantagem de usar esses módulos no PC é que o computador nem precisa saber o que é BT, livrando você de se envolver com configurações do stack, pareamento, etc. Nada de mexer com Bluesoleil ou com o stack padrão do Windows. Só é preciso instalar o driver do adaptador que você escolheu, que vai criar uma porta serial que você vai usar. Mas para o caso de você querer economizar um módulo, eis o que eu fiz:

  • Liguei o slave nas proximidades do computador;
  • No meu PC rodando XP e já preparado para comunicação bluetooth eu iniciei o Bluesoleil e mandei procurar novos dispositivos;
  • Achou um de propósito deconhecido (simbolizado com uma interrogação);
  • Mandei fazer o pairing e usei como passcode (no chute) “1234”. Funcionou;
  • Feito o pairing, fiz um “Refresh Services” e o Bluesoleil mostrou que havia uma porta serial disponível;
  • Pedi para usá-la e uma porta COM6 foi criada no meu PC (O bluesoleil informa qual é a porta).

Depois de tudo isso o LED do slave ainda pisca vermelho. É normal. No PC você vai agora abrir um programa para se conectar a essa porta serial criada. Você ira se comunicar com o que quer que seja que esteja conectado fisicamente ao slave.

No Seven, usando o stack do próprio Windows, o processo foi mais enrolado. Vou deixar registrado aqui porque pode ser útil:

  • Mandei procurar dispositivos. O Seven encontrou o “linvor”;
  • Cliquei com o botão direito e pedi Propriedades;
  • Cliquei em Serviços;
  • Habilitei “Serial Port (SPP) ‘Dev B'” (é o único que aparece). O Windows diz que é COM15;
  • Até aí, eu estava achando estranho porque faltava parear;
  • Abri o programa de comunicação, pedi para abrir a mesma COM15. Foi nesse momento que o Seven me perguntou se eu dava permissão de acesso a Bluetoth. Eu autorizei e só então foi perguntado o passcode. Entrei “1234”.

Daí em diante passou a funcionar.

Note que essas diferenças de comportamento são “de matar” se você precisar dar suporte, o que já justifica plugar um módulo BT especifico no computador.

Comandos

Quando o módulo não está pareado, você pode mandar alguns comandos AT para ele. Esses comandos variam dependendo da empresa que criou o firmware e muito do que você vai encontrar por aí (inlcuindo os links que vou fornecer) não funciona com estes módulos específicos. Os seguintes foram comandos que funcionaram comigo:

Comando AT+NAME : muda o nome com que o módulo se apresenta. Default desses módulos: “linvor”.

Exemplo: AT+NAMEBTslaveGLB

Resposta: OKsetname

Muda o nome para “BTslaveGLB”

OBS: Talvez seja necessário apagar algum cache no bluesoleil para que a mudança fique visível;
Comando AT+PIN: muda o PIN (senha do pareamento)

Exemplo: AT+PIN1234
Resposta: OKsetPIN

Muda a senha BT para 1234

Comando AT+VERSION : Diz a versão do firmware. Pode ser útil para checar se dois módulos são “compatíveis” quando algo não estiver funcionando;

Exemplo: AT+VERSION
Resposta: OKlinvorV1.5

Links úteis

21 comentários
  • Intruder_A6 - 194 Comentários

    Dá para usar o modulo slave sem precisar do master em micro com bluetooth ? Se for é realmente um dispositivo bem interessante. Acho que pode ser muito útil como uma serial sem fio.

  • Jefferson - 6.466 Comentários

    Se você quer dizer colocar o módulo slave em um micro que já tem bluetooth, sim, pode.

     

    Inclusive foi assim que testei o módulo slave, conectando com o adaptador BT do mesmo computador. E duas instâncias do mesmo programa de comunicação serial ligadas nas reepectivas portas.

  • Intruder_A6 - 194 Comentários

    Veja isto aqui => http://www.ebay.com/itm/New-Ultra-U12-40929-X-Connect-Wireless-USB-Data-Kit-/230760823279?pt=LH_DefaultDomain_0&hash=item35ba6ab9ef , comprei um destes para mim no ebay neste mesmo vendedor.
    Isto é um adaptador usb sem fio, que serve para ligar quase qualquer coisa (existem algumas restrições) USB 1.0 ou 2.0 no computador sem precisar de fio, mas nem tudo é perfeito, por exemplo: além do custo alto o alcance é pequeno (não consegui conexão com uma coluna de concreto no meio do caminho), mas se estiver no alcance dá para ligar até um HD externo USB e transferir arquivos com boa velocidade (no padrão USB2.0), praticamente como se estivesse conectado diretamente na interface USB do micro, e infelizmente precisa instalar um driver, acho que ele não funciona no Linux (não testei isto ainda).
    Este seu aparelho tem um funcionamento semelhante, mas tem uma grande vantagem, o protocolo é aberto (bluetooth), o que acaba sendo uma grande vantagem, seria ótimo se conseguisse algo parecido usando USB (bluetooth para USB ou USB para bluetooth). Imagino que até possa existir, mas até agora não encontrei nada.

  • Jefferson - 6.466 Comentários

    Esses módulos são programados para serem um link RS232 sem fio. Nada mais. Tem mais utilidade em aplicações comerciais e industriais que para o usuário comum, embora, teoricamente*, fosse possível até fazer a recuperação do firmware de um DVD player Mediatek via BT com eles.

    *Se já é difícil fazer o cabo com fio funcionar direito, imagine sem fio. 

     

     

  • Jefferson - 6.466 Comentários

    A DX tem o módulo slave um pouco mais barato.

     

    E para quem precisar conectar diretamente a uma porta RS232, a DX tem uma solução completa, por um preço razoável.

    null

    Falta entender qual é o seu papel. Como tem um botão eu suponho que seja master. Mas seria legal se pudesse operar nos dois.

    O problema é a demora da DX para postar.

    Mas barato mesmo é usar apenas a placa base, que custa apenas USD 6.60 na DX. Você basicamente só precisa lembrar que a aplaca opera a 3.3V, incluindo TX e RX. Lembrando que o Arduino também fornece essa tensão e se não me engano já reconhece 3.3V como HIGH.

    [img]https://ryan.com.br/blogs/quicktalk/wp-content/uploads/2012/03/sku_80711_1.jpg[/img]

  • Intruder A6 - 194 Comentários

    Fiquei realmente curioso, encomendei um para testar (o preço é muito baixo), um destes pode até servir como uma forma de ter uma interface serial numa máquina em que isto não está disponível (já tive este problema, atualmente tenho uma serial numa placa PCIE para monitorar um nobreak SMS antigo). O melhor é que ainda é sem fio e ainda usa um protocolo aberto, melhor impossível.
    Como é a fonte de energia dele ? é pela serial ?

    • Jefferson - 6.466 Comentários

      Não. Você precisa providenciar 3.3V para alimentação. Do lado do PC isso não é problema porque como você vai obrigatoriamente conectar através de um adaptador USB-SERIAL, os 3.3V devem estar disponíveis em algum dos fios do adaptador. Eu recomendo um como este.

       

      [img]https://ryan.com.br/blogs/quicktalk/wp-content/uploads/2012/03/cp2102-6pin-module_01.jpg[/img]

    • Jefferson - 6.466 Comentários

      hummm… posso ter entendido errado.

      Imagino agora que você tenha comprado apenas um slave, para ligar do lado do nobreak, e fazer o link com o PC usando um adaptador BT genérico.

      Nesse caso você vai precisar usar mais conhecimentos de eletrônica. Se o nobreak opera dentro da norma, a tensão na sua porta RS232 pode variar em todos os terminais de +12V a -12V. O módulo BT vai fritar se você tentar plugá-lo diretamente.

      E preciso instalar o módulo antes da seção RS232 do nobreak, quando o sinal ainda é TTL.

      Ou você pode usar a solução completa da DX.

       

  • Intruder A6 - 194 Comentários

    O conversor é este null,

    imagino que ele seja seja feito para conectar numa serial padrão.

    • Jefferson - 6.466 Comentários

      Sim, esse será o mais fácil de usar na sua aplicação. Porém é bem provável que você tenha que providenciar alimentação externa, porque a não ser que a porta serial do nobreak tenha uma capacidade de corrente acima do determinado pelo padrão, não irá conseguir alimentar um módulo BT.

      Perceba o conector de 4 pinos no fundo. Dois deles estão marcados + e -. Eu suponho que é por aí que a alimentação externa deverá entrar.

       

  • Julião - 11 Comentários

    Neste site tem algumas informações interessantes sobre o módulo Bluetooth que tem nessas placas: http://byron76.blogspot.com

  • ljunior - 1 Comentário

    Olá tenho mt curiosidade sobre o assunto, ja tenho os modulos mais queria saber se ha como fazer uma comunicação entre 2 uC cada com 1 modulo bluetooth, tipo para usar em uma automatização qualquer sem fio! Ja teve alguma experiencia sobre isso?? Ate breve!!

  • tomas - 1 Comentário

    Bom dia comprei dois modulos bluetooth estou querendo ligar numa placa de carrinho de controle remoto,um modulo na do controle e um na do carrinho,mas nao vai ter um visor.
    Gostaria de saber se tem como fazer eles se sincronizar sem pedir uma senha,mas so se conectaria o modulo que queria um certo nome.tem como? 

  • SanUSB Laese - 1 Comentário

    É possível realizar a configuração automática da taxa de transmissão do modem bluetooth para 19200 bps (mais rápido). O tutorial e os programas estão disponíveis no link:https://dl.dropbox.com/u/101922388/ModemBluetooth19200.zip e no link:https://dl.dropbox.com/u/101922388/sanusbee.zipLigações dos pinos:JY-MCU——–ArduinoRX————— PINO 3TX—————-PINO 2GND—————GNDVCC—————–5V

  • Diego - 1 Comentário

    Boa tarde

    Adquiri um modulo bluetooth slave e gostaria de saber como entro em modo AT, este esta ativo por default?
    Em outro módulo que adquiri que é máster tenho que alterar o estado do pino 34 para nível alto para que ele entre em modo AT.

    Grato pela atenção

  • wagner - 1 Comentário

    Jefferson, note que ambas as plaquinhas, master e slave, possuem o chip de memória flash 28LV800, é que no master está mais escondido de ler o código do chip.

    Também que na plaquinha “master” (figura abaixo) existe um resistor a mais que talvez esteja conectando +5V ao pino 18. Quem sabe você possa conferir com multimetro. Se estiver, então essa é a explicação que existe em alguns websites, que é o que converte a placa de slave (sem resistor) para master (com resistor). Veja que na plaquinha slave esse resistor não está instalado.

    • Jefferson - 6.466 Comentários

      Wagner,

       

      Desculpe, esqueci seu comentário na fila de moderação.

       

      Sim, eu percebi tudo isso. Mas os firmwares de ambos ainda podem ser completamente diferentes. Pode não ser o bastante fazer essas modificações para transformar um modelo em outro.

  • Will Lima - 1 Comentário

    srsrrs

    postei a pergunta no tópico errado!! Foi MAL!!

    Cara uma duvida,
    é possível fazer 2 módulos conversarem? Tipo tenho dois desse módulos será que consigo fazer os dois se comunicarem sem a necessidade de um celular ou notebook?

  • ALBERTO C GOMES - 1 Comentário

    OLÁ BOM DIA!

    SÃO REALMENTE MUITO DIDÁTICOS E ÚTEIS OS SEUS POSTS.
    GOSTARIA DE SABER SE EXISTE ALGUMA LITERATURA A RESPEITO DE COMO PROGRAMAR UM DISPOSITIVO MASTER E SLAVE PORQUE PRECISO UTILIZÁ-LOS EM UM PROJETO DE COMUNICAÇÃO SEM FIO, DEIXAR UM BT LIGADO SOMENTE A UM OUTRO BT NO CASO SLAVE.
    JA TENTEI PEGAR ALGUNS PROGRAMAS NA NET MAS NÃO CONSEGUI FAZER NENHUM FUNCIONAR!
    OBRIGADO E PARABENS PELO BELO TRABALHO!

    • Jefferson - 6.466 Comentários

      Você não “programa” esses dispositivos. Você os “usa”.

      Como vai fazer isso depende do resto do seu hardware. Se é um arduino você precisa saber programar comunicação serial em um arduino. Se for outro microcontrolador você precisa saber como usá-lo.

      Não escreva em maiúsculas. Isso é considerado GRITAR e portanto falta de educação.

Deixe um comentário para Jefferson Cancelar resposta

Você pode usar estas tags HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  

  

  

:) :( ;) O_o B) :lol: :huh: :S :D :-P 8-O :yahoo: :rtfm: :dashhead1: :clapping: more »