Arduino - Bluetooth
Neste tutorial, vamos aprender:
- Como usar Bluetooth com o Arduino
- Como enviar dados do Arduino para um app de smartphone via Bluetooth
- Como receber no Arduino dados do app de smartphone via Bluetooth
- Como controlar o Arduino pelo app de smartphone via Bluetooth

O escopo deste tutorial:
- O Arduino troca dados com o app de smartphone. A comunicação entre dois Arduinos via Bluetooth será apresentada em outro tutorial.
- O Módulo Bluetooth HC-05 é usado neste tutorial. Este módulo é amplamente usado e popular
- Você pode usar qualquer app Android/iOS. Este tutorial vai usar o app Bluetooth Serial Monitor no Android para demonstração.
- Você pode controlar qualquer coisa conectada ao Arduino pelo app de smartphone. Este tutorial vai usar LED e servo motor como exemplos.
Este tutorial é sobre o uso do Bluetooth Clássico (Bluetooth 2.0). Se você está procurando o Bluetooth Low Energy - BLE (Bluetooth 4.0), veja este tutorial semelhante: Arduino - Bluetooth Low Energy
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Módulo Bluetooth HC-05
O HC-05 é um módulo Bluetooth Serial. Ele funciona como um conversor Serial para Bluetooth. Ele faz o seguinte:
- Recebe dados do pino Serial RX e transmite os dados ao dispositivo pareado (como um smartphone) via Bluetooth
- Recebe dados do Bluetooth (do dispositivo pareado) e envia os dados para o pino Serial TX.
Mais especificamente, no contexto em que o Arduino se comunica com um app de smartphone (Android/iOS):
- O Arduino se conecta ao Módulo Bluetooth HC-05 pelos pinos Serial/SoftwareSerial
- O Módulo Bluetooth HC-05 é pareado com um app de smartphone
- O Arduino envia os dados para o app de smartphone simplesmente enviando dados para a Serial/SoftwareSerial
- O Arduino recebe os dados do app de smartphone simplesmente lendo dados da Serial/SoftwareSerial
- Nenhum código específico de Bluetooth é necessário no Arduino
Pinagem

O Módulo Bluetooth HC-05 tem 6 pinos:
- Pino Enable/Key: este pino é usado para alternar entre o Modo de Dados (nível LOW) e o Modo de Comando (nível HIGH). Se não estiver conectado, ele fica no Modo de Dados por padrão
- Pino VCC: pino de alimentação, conecte este pino ao +5V da tensão de alimentação
- Pino GND: pino de alimentação, conecte este pino ao GND da fonte de alimentação
- Pino TX: pino de dados seriais, conecte este pino ao pino RX do Arduino. Os dados recebidos via Bluetooth serão enviados para este pino como dados seriais.
- Pino RX: pino de dados seriais, conecte este pino ao pino TX do Arduino. Os dados recebidos neste pino serão enviados ao Bluetooth
- State: o pino State está conectado ao LED da placa e pode ser usado como retorno para verificar se o Bluetooth está funcionando corretamente.
No entanto, para as funções básicas, só precisamos usar 4 pinos do Módulo Bluetooth HC-05 para conectar ao Arduino.
O Módulo Bluetooth HC-05 também tem dois componentes embutidos:
- Um LED: indica o status do módulo
- Piscando uma vez a cada 2 segundos: o módulo entrou no Modo de Comando
- Piscando repetidamente: aguardando conexão no Modo de Dados
- Piscando duas vezes por segundo: conexão bem-sucedida no Modo de Dados
- Botão: pode ser usado para controlar o pino Key/Enable e selecionar o modo de operação (Modo de Dados ou de Comando)
Como Funciona
O módulo Bluetooth HC-05 tem dois modos de operação:
- Modo de Dados: é usado para trocar dados com o dispositivo pareado
- Modo de Comando: é usado para configurar parâmetros.
Felizmente, o módulo Bluetooth HC-05 pode funcionar com o Arduino usando a configuração padrão, sem precisar configurar nada.
Configurações Padrão do HC-05
| Nome Bluetooth padrão | “HC-05” |
|---|---|
| Senha padrão | 1234 ou 0000 |
| Comunicação padrão | Slave |
| Modo padrão | Modo de Dados |
| Baud rate padrão do Modo de Dados | 9600, 8, N, 1 |
| Baud rate padrão do Modo de Comando | 38400, 8, N, 1 |
Sobre o App Bluetooth Serial Monitor
O app Bluetooth Serial Monitor é um aplicativo para celular com uma interface de usuário parecida com o Serial Monitor da Arduino IDE. Ele se comunica com o Arduino via Bluetooth. Você pode interagir com o Arduino por este app como se fosse o Serial Monitor no seu PC, sem adicionar nenhum código especial para o módulo Bluetooth no seu código Arduino, seguindo estes passos:
- Conecte o Arduino ao módulo Bluetooth HC-05
- Instale o app Bluetooth Serial Monitor no seu smartphone
- Abra o app e pareie-o com o módulo Bluetooth HC-05
E agora você pode enviar/receber dados do Arduino exatamente como no Serial Monitor da Arduino IDE. Você não precisa modificar o código Arduino existente nem adicionar nenhum código Bluetooth a um novo código Arduino.
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Tabela de Ligação
| Pinos do Arduino | Pinos do Bluetooth HC-05 |
|---|---|
| RX (Pino 0) | TX |
| TX (Pino 1) | RX |
| 5V | VCC |
| GND | GND |
| Enable/Key (NÃO conectado) | |
| State (NÃO conectado) |
※ Nota:
Você pode usar outros pinos do Arduino trocando o objeto Serial no código Arduino por outro Serial1, Serial2,... ou por SoftwareSerial, se disponível.
Como Programar para Bluetooth
Nenhum código dedicado ao Bluetooth é necessário. Só precisamos usar o código Serial.
Arduino envia dados para o App Bluetooth no Smartphone
Para enviar dados do Arduino para o app Bluetooth no smartphone, precisamos usar o seguinte código Arduino:
Neste exemplo, vamos enviar “Arduino here, command me!” do Arduino para o app Bluetooth no smartphone a cada segundo
Passos Rápidos
- Instale o app Bluetooth Serial Monitor no seu smartphone
- Ligue o módulo Bluetooth HC-05 ao Arduino conforme o diagrama de ligação acima
- Copie o código acima e abra-o na Arduino IDE
- Clique no botão Upload na Arduino IDE para carregar o código no Arduino. O upload do código para o Arduino pode falhar. Se isso acontecer, desconecte os pinos TX e RX do módulo Bluetooth, faça o upload do código e depois reconecte os pinos RX/TX.
- Abra o Serial Monitor na Arduino IDE
- Abra o app Bluetooth Serial Monitor no seu smartphone
- Selecione o modo Classic Bluetooth

- Pareie-o com o módulo Bluetooth HC-05

- Veja o resultado no app Android.

- Veja o resultado no Serial Monitor da Arduino IDE.
Você verá que os dados no Serial Monitor da Arduino IDE e no app Android são idênticos
App Bluetooth envia dados para o Arduino
O código abaixo faz o seguinte:
- O app Bluetooth envia dados para o Arduino
- O Arduino lê os dados e envia a resposta de volta ao Bluetooth:
Passos Rápidos
- Copie o código acima e abra-o na Arduino IDE
- Clique no botão Upload na Arduino IDE para carregar o código no Arduino
- Abra o Serial Monitor na Arduino IDE
- Abra o app Android e pareie-o com o módulo Bluetooth HC-05 (de forma semelhante ao exemplo anterior)
- Depois de conectar, digite "LED ON" ou "LED OFF" no app Android e clique no botão "SEND"

- O Arduino recebe os dados e imprime a resposta na porta Serial. Esses dados serão enviados ao app Bluetooth
- Veja o resultado no app Android

- Veja o resultado no Serial Monitor da Arduino IDE
Você verá que os dados no Serial Monitor da Arduino IDE e no app Android são idênticos
Código Arduino - Controlar LED com App de Smartphone via Bluetooth
O código de exemplo Arduino abaixo aceita dois comandos (“ON” e “OFF”) do app Bluetooth Serial Monitor para ligar/desligar o LED embutido.
Você pode ver as instruções com mais detalhes no tutorial Arduino controla LED via Bluetooth/BLE
Código Arduino - Controlar Servo Motor com App de Smartphone via Bluetooth
O código Arduino abaixo recebe o valor do ângulo do app Bluetooth Serial Monitor para controlar o ângulo do servo motor.
Você pode ver as instruções com mais detalhes no tutorial Arduino controla Servo Motor via Bluetooth/BLE
Se o app Bluetooth Serial Monitor for útil para você, por favor, dê a ele uma avaliação de 5 estrelas na Play Store. Obrigado!