22 dezembro 2015

Programe o módulo bluetooth HC-05 usando conversor FTDI


Você que acompanha o blog já sabe que pode utilizar o conversor FTDI FT232RL para programar um Arduino Mini. Mas ele não serve só pra isso. Você pode usar o conversor para efetuar a comunicação com outros dispositivos que utilizam a serial, como por exemplo o módulo bluetooth HC-05.

Módulo Bluetooth HC-05 e conversor FTDI 232RL

Neste post vamos mostrar como você pode programar o módulo HC-05 via comandos AT e enviar dados do celular para o computador sem usar o Arduino como intermediário.

Instalando o módulo FTDI no computador


Quando você conecta o conversor FTDI na porta USB do computador, geralmente a instalação dos drivers é feita de forma automática, com o computador reconhecendo dois dispositivos: USB Serial Converter e USB Serial Port:

Instalação driver FTDI

Essa porta serial que foi detectada, no caso a COM21, será utilizada pelo nosso programa de comunicação serial para se conectar diretamente ao módulo bluetooth.

Se a instalação dos drivers não ocorreu de forma automática, faço o download dos drivers neste link, depois coloque o dispositivo novamente na porta USB para continuar o procedimento.

Conexão do conversor FTDI ao módulo bluetooth HC-05


Antes de conectar e ligar o conversor ao módulo bluetooth, deixe o jumper de seleção de tensão do módulo FTDI na posição 3.3V, conforme indicado na imagem abaixo, pois esse é o nível de sinal aceito pelo HC-05. A alimentação do módulo bluetooth será feito pelo próprio conversor, por meio dos pinos GND e Vcc:

Circuito FTDI 232RL e módulo Bluetooth HC-05


O pino TX (transmissão) do FTDI vai ligado ao RX (recepção) do módulo bluetooth, e o RX vai ligado no TX.

Programando o módulo bluetooth com comandos AT


Para programar o módulo bluetooth, utilize o software de comunicação serial de sua preferência, escolhendo a porta COM que foi detectada anteriormente. Nós utilizamos o Termite (download), um software bem simples de usar e que nem precisa ser instalado: você pode simplesmente baixar a versão marcada com "program only", e rodar o executável.

Ao ligar o módulo HC-05, mantenha o pino KEY em nível alto (5V), para que o módulo entre em modo de programação. Neste modo, o led da placa irá piscar lentamente.

Na tela principal do Termite, clique em Settings, na parte superior do programa:

Termite - Tela inicial

Na tela de configuração, configure a porta serial e a velocidade de comunicação (baud rate, geralmente 9600). As outras configurações (data bits, stop bits, etc), são padrão e não precisam ser modificadas:

Termite - Settings

Clique em OK para salvar as configurações e na tela principal do programa clique no botão maior do lado esquerdo (connect), para abrir a porta serial e iniciar a comunicação com o módulo bluetooth.

Digite AT na parte inferior do Termite, e o módulo deve responder com um "ok", indicando que a comunicação foi feita com sucesso. Você pode então utilizar comandos como AT+NAME para mudar o nome do módulo bluetooth, ou AT+PSWD para mudar a senha:

Termite - Comunicação serial com HC-05

Para uma lista dos principais comandos suportados pelo módulo bluetooth, tanto o HC-05 como o HC-06, utilize a tabela abaixo:

Tabela comandos AT módulo Bluetooth

Enviando comandos do celular para o computador


Você pode testar a comunicação entre o celular e o computador via HC-05 utilizando um programa como o Bluetooth SPP (download Android). Para efetuar esse procedimento, o módulo não pode estar em modo de programação, portanto deixe o pino KEY desligado.

Carregue o Bluetooth SPP, faça a conexão com o HC-05 e selecione a opção CMD Line Mode

Bluetooth SPP Android

Nesse modo, você digita os dados na parte inferior da tela e eles irão aparecer no Termite.  O contrário também funciona: digite os dados no Termite, e os mesmos serão exibidos no Bluetooth SPP: 

Comunicação serial Termite - Módulo bluetooth HC-05

Na tela do Termite, os caracteres que foram enviados estão em azul, e os recebidos em verde. No celular, os caracteres recebidos estão nas linhas marcadas com Rxd, e os transmitidos nas linhas marcadas com Txd.

11 comentários:

  1. Pode se conectar com um dispositivo IOS? Iphone?

    ResponderExcluir
    Respostas
    1. Bom dia,

      Esse módulo bluetooth, pelo que eu pesquisei, não funciona com iPhone, IOS. Para isso você precisa de um módulo BLE. Vou ter um post sobre ele em breve. :)

      Abraço!

      Excluir
  2. Tentei dar comandos AT ao meu HC-05 usando um BaundRate de 9.600 pelo serial do IDE do arduino. Como não obtive resposta, fui alterando o BaundRate e com 38.400 os comandos começaram a responder. Mas ai surgiram coisas estranhas. Ao digitar AT+NAME ou AT+NAME? nada é retornado! mas quando eu digito AT+NAME=Paulo é retornado +NAME=Paulo, mas logo em seguida ao digitar AT+NAME ou AT+NAME? nada é retornado! (Mas constatei depois que o nome padrão HC-05 foi alterado para "Paulo").
    Agora o mais esquisito de tudo, ao digitar AT+UART, me é retornado "+UART=9600,0,0" mas como isso é possível se na IDE do arduino não houve comunicação a 9.600 e sim somente com 38.400???? tentei outra interface serial, dessa vez o "Termite 3.2" e nele acontece a mesma coisa, só consigo comunicação a 38.400 mas no HC-05 digitando "AT+UART" me é retornado "+UART=9600,0,0" como pode isso? e o que significa os dois zeros depois do 9.600 ???

    ResponderExcluir
    Respostas
    1. Tambem tenho o mesmo problema.
      Se alguem puder ajudar.

      Excluir
  3. Boa tarde, vou comprar o modulo FTDI para programar meus modulos hc-05, serve para o hc-06 tambem?

    Se eu tiver alguma dificuldade tem algum suporte que possa me ajudar.?

    ResponderExcluir
    Respostas
    1. Boa noite Rodrigo,

      Serve sim. Se precisar de algo, estamos aí.

      Abraço!

      Excluir
  4. Boa noite, estou tentando testar o módulo FTDI232 conectado a um FC-114 HC-06. Fiz a ligação conforme a figura acima, mas não consigo conectar ao PC. O módulo HC-06 não aparece no PC para ser adicionado e o Led de paridade fica piscando.
    Alguém sabe o que pode estar acontecendo?

    ResponderExcluir
  5. Olá. Poderia me esclarecer uma dúvida? Com esse módulo FTDI consigo programar um módulo BLE? (BLE é o RF-BM-S02). Gosto muito de seu blog e estou esperando ansiosa pela postagem do BLE. Obrigada =)

    ResponderExcluir
    Respostas
    1. Oi Ariane,

      Teoricamente sim, já que é uma comunicação RX/TX como o do modulo HC-05. Estou esperando chegar o meu BLE para escrever à respeito... :)

      Abraço!

      Excluir
  6. bom dia eu comprei o modulo wifi esp8266 tem como programar ele edepois tentar usar o modulo wifi junto com o arduino mega?
    sem usar esse conversor ttl?
    aguardo sua resposta obrigado e parabens pelo post to tirando como base para meu tcc de engenharia.

    ResponderExcluir
    Respostas
    1. Boa noite Hugo,

      Tem sim, você pode usar o mesmo esquema que eu fiz com o Uno, neste post:

      http://www.arduinoecia.com.br/2015/03/arduino-modulo-wireless-esp8266.html

      Abraço e obrigado! :)

      Excluir