Tutorial de Bluetooth com ESP32 - Bluetooth Clássico e BLE com o DIYables Bluetooth App
Visão Geral
Este tutorial mostra como implementar a comunicação sem fio entre o ESP32 e o DIYables Bluetooth App usando Bluetooth Clássico ou Bluetooth Low Energy (BLE). O ESP32 possui recursos de Bluetooth integrados, o que elimina a necessidade de módulos Bluetooth externos.
O ESP32 oferece suporte nativo aos protocolos Bluetooth Clássico e BLE, permitindo a conexão direta com o DIYables Bluetooth App em dispositivos Android e iOS, sem exigir hardware adicional.
Informação Importante: O ESP32 suporta modos Bluetooth duplos — tanto o Bluetooth Clássico quanto o BLE (Bluetooth Low Energy). O DIYables Bluetooth App oferece suporte completo ao Bluetooth Clássico e ao BLE no Android, e suporte ao BLE no iOS. Você pode escolher o protocolo adequado de acordo com os requisitos da sua plataforma e as especificações do seu projeto.

Recursos
- Suporte a Protocolo Duplo: Implementa os protocolos Bluetooth Clássico e BLE para máxima compatibilidade
- Alcance Sem Fio: Oferece comunicação sem fio de até 10 metros
- Compatibilidade Multiplataforma: Suporta os sistemas operacionais Android e iOS
- Métodos de Conexão Flexíveis: O Bluetooth Clássico usa o pareamento tradicional; o BLE oferece conexão automática
- Biblioteca Completa de Widgets: Inclui sliders, joystick, monitor, plotter, medidor (gauge), exibição de temperatura, chat, tabela, rotator e outros componentes de interface
- Opções de Eficiência Energética: O modo BLE é otimizado para aplicações de baixo consumo; o Bluetooth Clássico oferece compatibilidade com mais dispositivos
- Integração Simples: A instalação de uma única biblioteca gerencia todos os protocolos de comunicação
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables ESP32 S3 Starter Kit (ESP32 S3 included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Configuração do Software
Passos Rápidos
Siga estes procedimentos para configurar o ambiente de desenvolvimento:
- Para a configuração inicial do ESP32, consulte o guia de primeiros passos com o ESP32.
- Conecte a placa ESP32 ao computador por um cabo USB.
- Abra o Arduino IDE.
- Selecione a placa ESP32 e a porta COM correspondente.
Instale o Core da Placa
- Acesse Tools Board Boards Manager...
- Pesquise por "esp32"
- Instale o esp32 da Espressif Systems
Instale a Biblioteca DIYables Bluetooth
- Acesse o ícone Libraries na barra lateral esquerda do Arduino IDE.
- Pesquise por "DIYables Bluetooth" e localize a biblioteca DIYables Bluetooth da DIYables
- Clique em Install para adicionar a biblioteca

- Quando solicitado, instale as dependências de biblioteca necessárias
- Clique em Install All para concluir a instalação.

App para Celular
Compatibilidade de Plataformas: O DIYables Bluetooth App oferece suporte ao Bluetooth Clássico e ao BLE no Android, e suporte ao BLE no iOS. A capacidade de modo duplo do ESP32 permite escolher o protocolo de acordo com os requisitos da plataforma. Os dispositivos Android suportam os modos Bluetooth Clássico e BLE. Os dispositivos iOS exigem o modo BLE. As conexões BLE são estabelecidas automaticamente, sem procedimentos manuais de pareamento.
- Abra o DIYables Bluetooth App
- Conceda as seguintes permissões quando solicitado:
- Permissão de Dispositivos Próximos (Android 12+) / permissão de Bluetooth (iOS) - Necessária para a busca e a conexão de dispositivos Bluetooth
- Permissão de Localização (somente Android 11 e anteriores) - Exigida pelo sistema Android para a busca de dispositivos Bluetooth
- Verifique se o Bluetooth está ativado nas configurações do dispositivo
- Toque no botão Connect na tela inicial para iniciar a busca de dispositivos.

- Selecione o dispositivo ESP32 nos resultados da busca para estabelecer a conexão.
Exemplos
O ESP32 suporta os protocolos Bluetooth Clássico e BLE. Escolha a implementação adequada de acordo com os requisitos do projeto. Todos os exemplos são compatíveis com o hardware ESP32.
Exemplos de Bluetooth Clássico (Somente Android) e Exemplos de BLE (Android e iOS)
- ESP32 - Bluetooth Slider - Controle valores de slider
- ESP32 - Bluetooth Pin Control - Controle pinos digitais de saída
- ESP32 - Bluetooth Monitor - Comunicação serial sem fio
- ESP32 - Bluetooth Plotter - Visualização de dados em tempo real
- ESP32 - Bluetooth Analog Gauge - Exibição de medidor analógico
- ESP32 - Bluetooth Temperature - Monitoramento de temperatura e umidade
- ESP32 - Bluetooth Joystick - Entrada de joystick 2D
- ESP32 - Bluetooth Rotator - Entrada de controle rotativo
- ESP32 - Bluetooth Chat - Comunicação por mensagens de texto
- ESP32 - Bluetooth Table - Exibição de dados em tabela
- ESP32 - Bluetooth RTC - Sincronização do relógio de tempo real
- ESP32 - Bluetooth Multiple Apps - Integração de vários widgets
Solução de Problemas
| Sintoma | Causa Provável | Solução | |
|---|---|---|---|
| O dispositivo não aparece na busca do app | Modo Bluetooth incorreto ou firmware não está em execução | Verifique se o código usa o modo Bluetooth correto (Clássico ou BLE) e se o ESP32 está executando o código | |
| SerialBT.begin() ou BLE.begin() falha | Incompatibilidade do core da placa ou da biblioteca | Instale o core da placa ESP32 da Espressif Systems pelo Boards Manager | |
| A conexão é estabelecida, mas não há transferência de dados | Biblioteca DIYables desatualizada | Atualize a biblioteca DIYables Bluetooth para a versão mais recente pelo Library Manager | |
| Erro de compilação | BluetoothSerial.h ou BLEDevice.h não encontrado | Biblioteca DIYables Bluetooth não instalada | Instale a biblioteca DIYables Bluetooth pelo Library Manager |
| Erros de compilação relacionados à seleção da placa | Placa selecionada incorreta ou core ausente | Selecione a placa ESP32 e instale o core esp32 da Espressif Systems | |
| A conexão cai logo após ser estabelecida | Interferência ou problemas na fonte de alimentação | Garanta uma alimentação USB estável e mantenha o dispositivo a no máximo 10 metros de distância | |
| O Bluetooth Clássico falha no iOS | O iOS não suporta o perfil Bluetooth Clássico | Use o modo BLE para ser compatível com dispositivos iOS |
Observações
- Na implementação com ESP32, use os exemplos Esp32Bluetooth_ para o Bluetooth Clássico ou os exemplos Esp32BLE_ para o BLE. Os exemplos ArduinoBLE_ foram projetados para outras plataformas de hardware (por exemplo, Arduino Uno R4).
- O Bluetooth Clássico exige o pareamento manual nas configurações de Bluetooth do dispositivo antes da conexão com o app (somente Android).
- O BLE estabelece conexões automáticas, sem procedimentos manuais de pareamento, e suporta as plataformas Android e iOS.
- Mantenha uma alimentação contínua (USB ou externa) para garantir o anúncio Bluetooth persistente e a detecção do dispositivo.
- A compatibilidade com iOS exige o modo BLE, pois o iOS não suporta o Bluetooth Clássico para dispositivos acessórios.