Exemplo Bluetooth Analog Gauge com ESP32 - Tutorial de Exibição de Medidor Analógico
Visão Geral
O exemplo Bluetooth Analog Gauge oferece uma exibição clássica no estilo de medidor analógico, acessível pelo app DIYables Bluetooth STEM. Projetado para placas ESP32, com suporte a conexões BLE (Bluetooth Low Energy) e Bluetooth Clássico. Envie valores numéricos com faixa e rótulos de unidade configuráveis — perfeito para velocímetros, manômetros, voltímetros e qualquer aplicação que exija uma exibição com mostrador analógico.
Este exemplo suporta dois modos Bluetooth:
- ESP32 BLE (Bluetooth Low Energy): Funciona no Android e no iOS
- ESP32 Bluetooth Clássico: Funciona somente no Android. O iOS não suporta o Bluetooth Clássico. Use o BLE se você precisar de suporte ao iOS.

Recursos
- Exibição de Medidor Analógico: Visualização clássica no estilo de mostrador/medidor
- Faixa Configurável: Defina os valores mínimo e máximo do medidor
- Unidades Personalizadas: Exiba km/h, PSI, V, % ou qualquer string de unidade personalizada
- Atualizações em Tempo Real: Envie leituras ao vivo com movimento suave do ponteiro
- Callback de Solicitação: O app pode solicitar o valor atual sob demanda
- BLE e Bluetooth Clássico: Escolha o modo Bluetooth que melhor atende ao seu projeto
- Multiplataforma: O modo BLE funciona no Android e no iOS; o Bluetooth Clássico funciona no Android
- Opção de Baixo Consumo: O modo BLE consome menos energia que o Bluetooth Clássico
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) |
Código do ESP32
Passos Rápidos
Siga estas instruções passo a passo:
- Se esta é a primeira vez que você usa o ESP32, consulte o tutorial sobre como configurar o ambiente para ESP32 no Arduino IDE.
- Conecte a placa ESP32 ao seu computador usando um cabo USB.
- Abra o Arduino IDE no seu computador.
- Selecione a placa ESP32 apropriada e a porta COM.
- Navegue até o ícone Libraries na barra esquerda do Arduino IDE.
- Pesquise "DIYables Bluetooth" e encontre a biblioteca DIYables Bluetooth da DIYables
- Clique no botão Install para instalar a biblioteca.

- Você será solicitado a instalar algumas outras dependências da biblioteca
- Clique no botão Install All para instalar todas as dependências da biblioteca.

Escolha um dos dois modos Bluetooth abaixo, de acordo com a sua necessidade:
Código do ESP32 para Bluetooth Clássico (funciona com o app somente no Android)
Observação: O Bluetooth Clássico NÃO é suportado no iOS. Se você precisa de suporte ao iOS, use o código BLE abaixo.
- No Arduino IDE, vá em File Examples DIYables Bluetooth Esp32Bluetooth_AnalogGauge, ou copie o código acima e cole no editor do Arduino IDE
- Clique no botão Upload no Arduino IDE para fazer o upload do código para o ESP32
- Abra o Serial Monitor
- Veja o resultado no Serial Monitor. Ele deve ser parecido com o abaixo:
Código do ESP32 para BLE (funciona com o app no Android e no iOS)
- No Arduino IDE, vá em File Examples DIYables Bluetooth Esp32BLE_AnalogGauge, ou copie o código acima e cole no editor do Arduino IDE
- Clique no botão Upload no Arduino IDE para fazer o upload do código para o ESP32
- Abra o Serial Monitor
- Veja o resultado no Serial Monitor. Ele deve ser parecido com o abaixo:
App para Celular
- Se você estiver usando o código do ESP32 para Bluetooth Clássico, você precisa parear o ESP32 com o seu celular Android antes de abrir o app:
- Vá em Settings > Bluetooth no seu celular
- Certifique-se de que o Bluetooth está ativado
- Seu celular vai buscar os dispositivos disponíveis
- Encontre e toque em "ESP32_Gauge" na lista de dispositivos disponíveis
- Confirme a solicitação de pareamento (não é necessário PIN)
- Aguarde até aparecer "Paired" abaixo do nome do dispositivo
- Se você estiver usando o código do ESP32 para BLE, não é necessário parear. Basta ir para a próxima etapa.
- Abra o DIYables Bluetooth App
- Ao abrir o app pela primeira vez, ele vai pedir permissões. Conceda as seguintes:
- Permissão de Dispositivos Próximos (Android 12+) / permissão de Bluetooth (iOS) - necessária para buscar e conectar a dispositivos Bluetooth
- Permissão de Localização (somente Android 11 e anteriores) - exigida pelas versões mais antigas do Android para buscar dispositivos BLE
- Certifique-se de que o Bluetooth está ativado no seu celular
- Na tela inicial, toque no botão Connect. O app vai buscar dispositivos BLE e Bluetooth Clássico.

- Encontre e toque no seu dispositivo nos resultados da busca para conectar:
- Para o Bluetooth Clássico: toque em "ESP32_Gauge"
- Para o BLE: toque em "ESP32BLE_Gauge"
- Depois de conectado, o app volta automaticamente para a tela inicial. Selecione o app Analog Gauge no menu de apps.

Observação: Você pode tocar no ícone de configurações na tela inicial para ocultar/mostrar apps na tela inicial. Para mais detalhes, veja o Manual do Usuário do DIYables Bluetooth App.
- O medidor analógico vai exibir o valor atual com um ponteiro em movimento

Agora volte ao Serial Monitor no Arduino IDE. Você verá:
- Veja o ponteiro do medidor se mover em tempo real no app
Personalização Criativa - Adapte o Código ao Seu Projeto
Configurar a Faixa e a Unidade do Medidor
Defina a faixa de exibição e a unidade:
Enviar o Valor do Medidor
Tratar Solicitações de Valor do App
Tratar Eventos de Conexão
Como Usar o Medidor Analógico
Interface do App
A interface do medidor analógico no DIYables Bluetooth App mostra:
- Mostrador/Ponteiro: Medidor analógico clássico com ponteiro em movimento
- Exibição Numérica: Mostra o valor atual exato
- Rótulo da Unidade: Exibe a string da unidade configurada
- Marcações da Escala: Mostra a escala graduada do mínimo ao máximo
Configurações de Unidade Comuns
- Velocidade: DIYables_BluetoothAnalogGauge(0.0, 200.0, "km/h")
- Pressão: DIYables_BluetoothAnalogGauge(0.0, 100.0, "PSI")
- Tensão: DIYables_BluetoothAnalogGauge(0.0, 5.0, "V")
- Porcentagem: DIYables_BluetoothAnalogGauge(0.0, 100.0, "%")
- RPM: DIYables_BluetoothAnalogGauge(0.0, 8000.0, "RPM")
Exemplos de Programação
Voltímetro
Manômetro (BMP280)
Sensor de Corrente (ACS712)
Velocidade a Partir de um Encoder
Técnicas Avançadas de Programação
Movimento Suave do Ponteiro
Retenção de Pico
Escalonamento Automático da Faixa
Ideias de Integração com Hardware
Sensores Analógicos
Qualquer sensor com saída analógica pode acionar o medidor: potenciômetros, sensores de força, sensores flex e muito mais.
Sensores I2C/SPI
Use sensores I2C como o BMP280 (pressão), o INA219 (corrente/potência) ou sensores SPI para medições de alta velocidade.
Sensores de Pulso/Frequência
Encoders de velocidade, medidores de vazão e sensores de RPM, usando contagem baseada em interrupções.
Células de Carga (HX711)
Medição de peso com o amplificador HX711 para balanças de cozinha ou pesagem industrial.
BLE vs Bluetooth Clássico - Qual Escolher?
| Recurso | BLE (Esp32BLE_AnalogGauge) | Bluetooth Clássico (Esp32Bluetooth_AnalogGauge) |
|---|---|---|
| Suporte ao iOS | ? Sim | ? Não |
| Suporte ao Android | ? Sim | ? Sim |
| Consumo de Energia | Baixo | Maior |
| Alcance | ~30-100m | ~10-100m |
| Taxa de Dados | Menor | Maior |
| Pareamento Necessário | Não (conexão automática) | Sim (pareamento manual) |
| Melhor Para | Dispositivos a bateria, multiplataforma | Alta taxa de transferência, somente Android |
Solução de Problemas
Problemas Comuns
1. Não consigo encontrar o dispositivo no app
- Certifique-se de que o ESP32 está ligado e que o sketch foi carregado
- Para o BLE: Garanta que o Bluetooth e a Localização do seu celular estão ativados
- Para o Bluetooth Clássico: Pareie o dispositivo primeiro nas configurações de Bluetooth do celular
- Verifique se o esquema de partição correto está selecionado (Huge APP)
2. O medidor mostra 0 ou um valor incorreto
- Verifique a ligação e as conexões do sensor
- Verifique a leitura do sensor primeiro no Serial Monitor
- Garanta que o valor está dentro da faixa configurada
- Verifique a configuração de unidade e faixa no construtor
3. O ponteiro do medidor não se move suavemente
- Aumente a frequência de atualização (intervalo menor na verificação com millis())
- Aplique suavização/filtragem nas leituras do sensor
- Verifique se há ruído no sensor ou leituras instáveis
4. Valores fora da faixa do medidor
- Ajuste a faixa com setRange(min, max) para corresponder à saída do seu sensor
- Valores fora da faixa serão exibidos, mas podem ser limitados ao mínimo/máximo
- Considere o escalonamento automático para faixas desconhecidas
5. A conexão cai com frequência
- Aproxime-se do ESP32 (reduza a distância)
- Para o BLE: Verifique se há interferência de outros dispositivos BLE
- Para o Bluetooth Clássico: Garanta uma alimentação estável para o ESP32
6. Sketch grande demais / espaço insuficiente
- No Arduino IDE, vá em Tools > Partition Scheme e selecione "Huge APP (3MB No OTA/1MB SPIFFS)" ou "No OTA (Large APP)"
- O esquema de partição padrão oferece apenas ~1,2MB para o código do app, o que não é suficiente para as bibliotecas de Bluetooth
- Esta configuração oferece ~3MB ao sacrificar a partição de OTA (atualização pelo ar)
Dicas de Depuração
Adicione uma depuração completa:
Ideias de Projetos
Veículos e Movimento
- Velocímetro para carrinho RC ou bicicleta
- Tacômetro de RPM para motores
- Medidor de força G para aceleração
- Indicador de ângulo de inclinação
Elétrica e Energia
- Voltímetro (monitor de tensão de bateria)
- Amperímetro (consumo de corrente)
- Wattímetro (uso de energia)
- Medidor de nível de bateria
Ambiental
- Medidor de pressão barométrica
- Velocidade do vento (anemômetro)
- Medidor de índice UV
- Medidor de nível sonoro (dB)
Industrial
- Exibição de balança de peso
- Medidor de vazão
- Indicador de nível de tanque
- Medidor de torque
Integração com Outros Apps Bluetooth
Combine com o Bluetooth Temperature
Medidor para uma métrica, temperatura para outra:
Combine com o Bluetooth Table
Medidor para o visual, tabela para os detalhes:
Próximos Passos
Depois de dominar o exemplo Bluetooth Analog Gauge, experimente:
- Bluetooth Temperature - Para uma exibição dedicada de temperatura
- Bluetooth Plotter - Para a visualização de tendências ao longo do tempo
- Bluetooth Table - Para uma exibição estruturada de vários valores
- Multiple Bluetooth Apps - Combinando o medidor com outras exibições
Suporte
Para obter ajuda adicional:
- Consulte a documentação de referência da API
- Visite os tutoriais da DIYables
- Fóruns da comunidade Arduino