Como usar com Arduino – Módulo Bluetooth HC-05 / HC-06

Como usar com Arduino – Módulo Bluetooth HC-05 / HC-06

img00_como_usar_com_arduino_modulo_bluetooth_hc_05_hc_06_uno_mega_2560_nano_wireless_wifi_sem_fio_android_automacao

– Descrição:

Módulo Bluetooth possibilita transmitir e receber dados através de comunicação sem fio. Este módulo pode ser utilizado para criação de comunicação wireless para troca de informações entre dispositivos.

OBS: para esta prática foi utilizado o Módulo Bluetooth HC-05, contudo, os passos mencionados aqui são válidos para o Módulo Bluetooth HC-06.

– Especificações e características (HC-05):

– Modelo: HC-05
– Tensão de operação: 3,6V – 6VDC
– Frequência de operação: 2,4GHz
– Nível de sinal lógico: 3,3V
– Protocolo bluetooth: v2.0+EDR
– Banda: ISM
– Modulação: GFSK
– Segurança: autenticação e criptografia
​- Modo de funcionamento: master / slave
– Temperatura de operação: -40° ~ 105° celsius
– Alcance do sinal: ~10m
– Senha padrão (PIN): 1234

– Aplicações:

Projetos com Arduino ou outras plataformas microcontroladas em que seja necessário utilizar comunicação sem fio de baixo custo.

– Proposta da prática:

Utilizar o Módulo Bluetooth HC-05 / HC-06 em conjunto com o Arduino para acionamento de um LED através do aplicativo instalado no smartphone Android.

– Lista dos itens necessários:

01 – Arduino com Cabo USB
01 – Módulo Bluetooth (HC-05 ou HC-06)
01 – LED Difuso 5mm Vermelho
01 – Resistor de 150Ω
01 – Resistor de 220Ω (R1 do  divisor de tensão)
01 – Resistor de 330Ω (R2 do  divisor de tensão)
01 – Protoboard
08 – Cabos Jumper macho-macho

– Aplicativo para o smartphone:

Download via Play Store

Download direto do APK

Site do desenvolvedor do aplicativo

– Esquema de ligação da prática:

img01_como_usar_com_arduino_modulo_bluetooth_hc_05_hc_06_uno_mega_2560_nano_wireless_wifi_sem_fio_android

OBS: veja que no esquema de ligação há um divisor de tensão (R1 = 220Ω e R2 = 330Ω) para o pino RXD do módulo bluetooth. Como o módulo trabalha em nível lógico 3.3V, utilizamos o divisor de tensão para reduzir os 5V de sinal que sai do Arduino.

– Tutorial de instalação e configuração do ambiente de programação do Arduino:

Arduino – Instalação e Configuração da IDE no Windows

– Código:

– Resultado final:

Gostou desta prática? Então deixa seu comentário, dúvida ou sugestão aí embaixo!

Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop

Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.

Obrigado e até a próxima!

Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.



Postagem anterior:
Próxima postagem:
Postagem feita por

Formado em Engenharia da Computação, Técnico em Eletroeletrônica, Fundador e Diretor da MasterWalker Electronic Shop. Se preocupa com o aprendizado dos seus clientes e daqueles interessados em aprender sobre Arduino e plataformas embarcadas em geral.

Existem 35 comentários para esta postagem
  1. Renato às 17:29

    Boa tarde. Estou estudando o módulo HC-12. Pergunto se um mesmo módulo HC-12 pode ora transmitir, ora receber? Caso negativo, seria possível colocar na placa do Arduino dois módulos, um para transmitir e o outro pra receber?

  2. Jose às 22:38

    Boa noite!!
    Quando envio o comando para acender o LED, ele dá uma piscada ao invés de ficar aceso?
    O que pode ser???

  3. Gabriel santos às 18:54

    Boa tarde, Euler.

    Poderia me ajudar?

    Estou a dois dias tentando ligar o led pelo modulo bluetooth e não estou conseguindo.
    Já remontei umas 3xs e nada de funcionar.
    Estou usando um arduino mega. Eu segui todos os passos do seu tutorial, o meu celular chega a parear com o HC-05, porem quando eu aperto o o botão para ligar o led, ele não acende.

    • Euler Oliveira Autor às 09:20

      Olá Gabriel.

      Agradeço pelo comentário!

      Fez testes com outros smartphones?

  4. Luiz Carlos Fagundes às 18:53

    Olá Euler.
    Estou tentando criar uma rede WIFI, de comunicação entre vários Arduino Slaves e seus Sensores, (Roteador WIFI) que passarão os valores destes Sensores para um Arduino coletor Master.
    Preciso conectar cada Arduino diretamente a um módulo ESP8266-01 com IP estático
    Esses Slaves serão requisitados pelo Master, cada um (por vez) para fornecer os status de seus Sensores.
    Programei-os completamente numa Rede RS485 e funcionou legal.
    Gostaria de substituir o RS485 pelo WIFI com o ESP8266-01.
    Poderia me ajudar na programação do RX e TX do Master com o ESP e do Slave com o ESP.
    Att
    Luiz

  5. Guilherme Ramires às 11:07

    Olá Euler, tentei testar seu projeto e estou com problemas na parte do *void loop()*, o bluetooth não recebe os dados enviados. Saberia me ajudar?

    • Euler Oliveira Autor às 12:17

      Olá Guilherme.

      Agradeço pelo comentário!

      Se fez conforme a prática deve funcionar, pois foi tudo testado e inclusive há um vídeo no final da publicação mostrando o funcionamento.

      Refaça tudo e confira minuciosamente o esquema de ligação.

  6. Sebastião às 11:39

    Puxa, muito obrigado pela resposta.
    Mas ainda não entendi no seu código, onde é feito o pareamento.
    Pretendo usar dois módulos bluetooth, um controlando o outro (motores DC).
    Poderia tirar esta última dúvida?
    Abraços.

    • Euler Oliveira Autor às 13:30

      O módulo Bluetooth é inicializado a partir da linha de código bluetooth.begin(9600); .

      Neste instante o mesmo passa a ser encontrado por qualquer dispositivo que possa se comunicar via Bluetooth. A senha de pareamento é padrão (1234). Vincular um mesmo controlador a 2 dispositivos Bluetooth eu acredito não ser possível.

      • Sebastião às 11:36

        Obrigado pela resposta.
        Mas, é possível, ao menos mudar a senha? Se sim, como faço?
        Abraços.

        • Euler Oliveira Autor às 17:18

          Recomendo que pesquise pelo datasheet do módulo bluetooth e verifique se há algum comando para troca da senha padrão.

  7. Sebastião às 11:24

    Olá Euler.

    Gostei muito do texto.
    Estou começando um TCC e gostaria de enterder como os módulos se reconhecem, para que não existam interferências de outros controles ou acionamento de outros equipamentos.
    Exemplo: para aqueles módulos RF 433/315 MHZ, de carrinhos de controle remoto, os controles interferem em outros carrinhos e os carrinhos podem ser controlados por mais de um controle.

    Se possível, me ajude com esta dúvida.
    Abraços.

  8. Vanderlei Schnoor às 10:59

    Euler, bom dia.
    Para usar o bluetooth para controlar três motores (dois para direção e um para subir e descer um guincho) e ligar / desligar um rele, seria usar a instrução If e ler os dados enviados por bluetooth? qual App você recomendaria para usar o celular como joystick de controle? como fazer os códigos de comando do joystick? Obrigado.

    • Euler Oliveira Autor às 13:27

      Olá Vanderlei.

      Agradeço pelo comentário!

      Não temos nenhum tutorial similar a este tipo de projeto que quer implementar.

      Recomendo que aprenda a utilizar os itens de forma isolada e em seguida implemente o seu projeto usando todos os itens e programe o seu próprio aplicativo.

  9. Jeff às 13:09

    Euler, muito obrigado pelos tutoriais! Sou iniciante em arduino e a partir desse tutorial consegui controlar um relé usando bluetooth.

    • Euler Oliveira Autor às 19:08

      Olá Jeff.

      Agradeço pelo comentário!

      Fico satisfeito em saber que este tutorial te ajudou.

      Vlw!!!

    • Euler Oliveira Autor às 11:08

      Olá Kayro.

      Agradeço pelo comentário!

      Nas especificações você pode ver a faixa de alimentação do módulo.

  10. Vinicius às 00:28

    Boa noite. Uma dúvida quanto ao uso do HC-06. Se eu ligar a energia dele, sem ligar o TX e o RX, ele acende o led e fica piscando em velocidade rápida. Só com essas conexões, ele não deveria apareceu no meu celular Android para parear? Pergunto isso pois fiz esse teste, e ele não aparece disponível para parear. Só comprei ele, desembalei e fiz essa ligação, se configuração alguma. Fiz algo errado?
    Obrigado.

    • Euler Oliveira Autor às 09:41

      Olá Vinicius.

      Agradeço pelo comentário!

      Chegou a ligar conforme mostrado neste tutorial? Se sim, conseguiu executar com sucesso?

      • Vinicius às 12:38

        Oi Euler

        Ainda não montei da forma como o tutorial pois ainda não consegui ir ao centro comprar o os resistores. Meu arduino e módulo HC-06 chegaram pelo correio terça, e quis ao menos ligar a energia dele e ver se conseguia ao menos realizar o pareamento entre smartphone e o módulo, mas não consegui.
        Não sei se foi falha minha, falta de configuração, ou problema com o módulo mesmo.

        Abraços,

        • Euler Oliveira Autor às 12:55

          Recomendo que faça a montagem por completo para em seguida prosseguir nos testes.

  11. Geraldo às 16:29

    Muito obrigado pela explicação, realmente tinha feito o calculo errado. Calculei como se o 330R fosse o R1 e o 220R o R2.

      • Fabio Sanches Do Nascimento às 10:54

        Olá, gostaria de comunicar entre arduinos, Pc e Bluetooth, seria possível ter diversas portas com no mesmo Arduino? Pelo menos 1 pro Pc, 1 Bluetooth e outra para as outras placas Arduino.

        • Euler Oliveira Autor às 11:10

          Olá Fábio.

          Agradeço pelo comentário!

          Pesquise sobre porta COM virtual e veja se atende ao que precisa.

  12. Geraldo às 15:09

    Na imagem do esquema, o pino vcc do modulo está no 3.3, com esses resistores o calculo do divisor de tensão ia dar 1.98. Mas se estivesse ligado no 5v com o divisor iria cair pra 3. E no modulo a informação e que o ideal é acima de 3.3v até 6v . Essa diferença influência? Me desculpe se eu disse alguma bobagem, e que estou começando agora.

    • Euler Oliveira Autor às 15:46

      Olá Geraldo.

      Agradeço pelo comentário!

      O divisor de tensão só daria próximo de 2V, caso R1 fosse 330R e R2 220R. No esquema montado é o inverso e está sendo reduzido um sinal de 5V que sai de D3, logo, no meio do divisor sai 3V que é conectado ao RXD do módulo.

      O valor de 1.98V seria encontrado só se a tensão de entrada do divisor fosse de 3.3V, o que não é o caso.

  13. Ian Cavalcante às 16:36

    Boa tarde,
    A contribuição de seu site foi de uma ajuda muito útil.
    Grato.
    Ian Cavalcante.

    • Euler Oliveira Autor às 16:48

      Olá Ian.

      Agradeço pelo feedback!

      Vlw!!!