Arduino - BLE
Neste tutorial, vamos aprender:
- Como usar a tecnologia Bluetooth Low Energy (BLE) com Arduino
- Como enviar dados do Arduino para um aplicativo de smartphone através do BLE
- Como receber dados no Arduino vindos de um aplicativo de smartphone através do BLE
- Como controlar o Arduino a partir de um aplicativo de smartphone através do BLE.

O escopo deste tutorial:
- Troca de dados entre o Arduino e um aplicativo de smartphone através do BLE. A comunicação entre dois Arduinos via BLE será abordada em outro tutorial.
- Uso do popular módulo Bluetooth Low Energy HM-10.
- Demonstração do aplicativo Bluetooth Serial Monitor no Android, mas qualquer aplicativo Android/iOS pode ser usado.
- Controle de vários dispositivos conectados ao Arduino através do aplicativo de smartphone, com exemplos que incluem um LED e um servo motor.
Vale observar que este tutorial aborda especificamente o Bluetooth Low Energy (BLE, Bluetooth 4.0). Se você procura informações sobre o Bluetooth Clássico (Bluetooth 2.0), consulte um tutorial semelhante Arduino - Bluetooth.
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 HM-10
O HM-10 é um módulo BLE Serial que funciona como um conversor de Serial para Bluetooth Low Energy. Ele executa as seguintes ações:
- Recebe dados do pino Serial RX e os transmite para um dispositivo pareado, como um smartphone, via BLE
- Recebe dados do BLE (do dispositivo pareado) e os envia para o pino Serial TX.
Especificamente, ao usar um Arduino para se comunicar com um aplicativo de smartphone (Android/iOS), acontece o seguinte:
- O Arduino se conecta ao módulo Bluetooth HM-10 através dos pinos Serial/SoftwareSerial
- O módulo Bluetooth HM-10 é pareado com um aplicativo de smartphone
- O Arduino envia dados para o aplicativo de smartphone enviando-os para a Serial/SoftwareSerial
- O Arduino recebe dados do aplicativo de smartphone lendo-os da Serial/SoftwareSerial
- Nenhum código BLE adicional é necessário no Arduino.
Pinagem

O Módulo BLE HM-10 tem 6 pinos:
- Pino BKR: para controlar o comportamento do módulo. Ignore este pino se você for iniciante.
- Pino RX: pino de dados Serial, conecte este pino ao pino TX do Arduino. Os dados recebidos por este pino serão enviados para o Bluetooth.
- Pino TX: pino de dados Serial, conecte este pino ao pino RX do Arduino. Os dados recebidos via BLE serão enviados para este pino como dados seriais.
- Pino GND: pino de alimentação, conecte este pino ao GND da fonte de alimentação.
- Pino VCC: pino de alimentação, conecte este pino aos 3.3V da tensão de alimentação
- Pino STATE: indica os estados de funcionamento:
- Pisca no modo de espera - repete um pulso de 500ms;
- Aceso no estado de conexão - nível alto.
- Precisamos usar apenas 4 pinos: VCC, GND, RX, TX
- Alguns fabricantes produzem o HM-10 com apenas quatro pinos.
※ Nota:
Sobre o Aplicativo Bluetooth Serial Monitor
O aplicativo Bluetooth Serial Monitor é um aplicativo móvel que imita a aparência do Serial Monitor da Arduino IDE. Ele permite a comunicação com uma placa Arduino através do Bluetooth sem a necessidade de código adicional no sketch do Arduino. Para usá-lo, siga estes passos:
- Conecte o Arduino a um módulo Bluetooth HM-10
- Baixe e instale o Aplicativo Bluetooth Serial Monitor no seu smartphone
- Abra o aplicativo e conecte-o ao módulo Bluetooth HM-10
Com esses passos concluídos, você pode enviar e receber dados do Arduino como se estivesse usando o Serial Monitor da Arduino IDE, sem a necessidade de modificar seu código Arduino existente nem adicionar qualquer código específico de Bluetooth.
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Tabela de Ligação
| Pinos do Arduino | Pinos do Bluetooth HM-10 |
|---|---|
| RX (Pino 0) | TX |
| TX (Pino 1) | RX |
| 5V | VCC |
| GND | GND |
| BKR (NÃO conectado) | |
| STATE (NÃO conectado) |
※ Nota:
O código Arduino pode usar outros pinos substituindo o objeto Serial por uma alternativa como Serial1, Serial2 ou SoftwareSerial (se disponível).
Como Programar para Bluetooth
Nenhum código especializado de Bluetooth é necessário, apenas código Serial.
Arduino envia dados para o Aplicativo Bluetooth no Smartphone
Para transmitir dados de uma placa Arduino para um aplicativo Bluetooth em um smartphone, o seguinte código Arduino pode ser usado. Este exemplo demonstra o envio da mensagem “Arduino here, command me!” do Arduino para o aplicativo do smartphone a cada segundo
Passos Rápidos
Para usar o código e conectar uma placa Arduino a um smartphone via BLE, siga estes passos:
- Instale o Aplicativo Bluetooth Serial Monitor no seu smartphone.
- Conecte o módulo Bluetooth HM-10 à placa Arduino de acordo com o diagrama de ligação fornecido.
- Abra a Arduino IDE, copie o código fornecido acima e faça o upload para a placa Arduino. Se você não conseguir fazer o upload do código, 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.
- No seu smartphone, abra o Aplicativo Bluetooth Serial Monitor e selecione o modo BLE.

- Pareie o smartphone com o módulo Bluetooth HM-10.

- Observe o resultado no aplicativo Android.

- Observe o resultado no Serial Monitor da Arduino IDE.
Se você seguir os passos e executar o código, verá que os dados exibidos no Serial Monitor da Arduino IDE e no aplicativo Android serão iguais.
Aplicativo Bluetooth Envia Dados para o Arduino
O código abaixo executa as seguintes ações:
- Envia dados do aplicativo Bluetooth para a placa Arduino
- A placa Arduino lê os dados recebidos e depois envia uma resposta de volta ao dispositivo Bluetooth.
Passos Rápidos
Aqui estão os passos para usar o código com o Arduino e um aplicativo Android:
- Abra a Arduino IDE e cole o código fornecido acima.
- Clique no botão Upload para carregar o código na placa Arduino.
- Abra o Serial Monitor na Arduino IDE.
- Abra o aplicativo Android e pareie-o com o módulo Bluetooth HM-10 seguindo as instruções fornecidas em um exemplo anterior.
- Depois de conectado, digite "LED ON" ou "LED OFF" no aplicativo Android e pressione o botão "SEND".

- A placa Arduino receberá os dados e imprimirá uma resposta na porta Serial. Esses dados serão enviados para o aplicativo Bluetooth.
- Verifique o resultado no aplicativo Android.

- Verifique o resultado no Serial Monitor da Arduino IDE
Ao concluir os passos acima, você perceberá que as informações exibidas no Serial Monitor da Arduino IDE e no aplicativo Android serão as mesmas
Código Arduino - Controlar LED com Aplicativo de Smartphone via BLE
O código de exemplo Arduino a seguir utiliza os comandos “ON” e “OFF” recebidos através do Aplicativo 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 Aplicativo de Smartphone via BLE
O código Arduino a seguir recebe um valor de ângulo do Aplicativo Bluetooth Serial Monitor para controlar o ângulo de um servo motor.
Você pode ver as instruções com mais detalhes no tutorial Arduino controla Servo Motor via Bluetooth/BLE
Se o aplicativo Bluetooth Serial Monitor for útil para você, dê a ele uma avaliação de 5 estrelas na Play Store. Obrigado!