Exemplo de Vários Aplicativos Bluetooth para Arduino Nano ESP32 - Tutorial BLE Tudo-em-Um
Visão Geral
Este exemplo demonstra como executar 9 widgets de aplicativos Bluetooth ao mesmo tempo em um único Arduino Nano ESP32 usando BLE. Com BLE (Bluetooth Low Energy), o sketch combina Monitor, Chat, Slider, Joystick, Temperature, Plotter, Table, Analog Gauge e Rotator em um único sketch. Todos os widgets compartilham uma única conexão BLE e podem interagir entre si. Adequado para painéis completos, projetos IoT complexos e para aprender vários tipos de widgets de uma só vez.
Observação: O Arduino Nano ESP32 suporta apenas BLE — o Bluetooth Clássico não é suportado. O DIYables Bluetooth App funciona em Android e iOS com BLE.
Recursos
9 Widgets em Um: Monitor, Chat, Slider, Joystick, Temperature, Plotter, Table, Analog Gauge, Rotator
Interação entre Widgets: O slider atualiza o medidor e a tabela; o joystick atualiza a tabela, etc.
Conexão BLE Única: Todos os widgets compartilham uma conexão de forma eficiente
Atualizações em Tempo Real: Cada widget é atualizado no seu próprio intervalo configurado
Painel Completo: Veja todos os dados de um único dispositivo
Suporte a Android e iOS: O BLE é compatível com as duas plataformas
Sem Necessidade de Pareamento: O BLE conecta sem pareamento manual
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
DIYables Bluetooth - Multiple Apps Example
Waiting for Bluetooth connection...
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2
Aplicativo Móvel
Instale o DIYables Bluetooth App no seu smartphone: Android | iOS
Observação: O DIYables Bluetooth App funciona em Android e iOS com BLE. Não é necessário fazer pareamento manual.
Abra o DIYables Bluetooth App.
Na primeira abertura, conceda as seguintes permissões:
Dispositivos Próximos (Android 12+) / Bluetooth (iOS) — necessário para procurar e conectar a dispositivos Bluetooth
Localização (somente Android 11 e anteriores) — exigida pelas versões mais antigas do Android para procurar dispositivos BLE
Verifique se o Bluetooth está ativado no seu dispositivo.
Toque em Connect na tela inicial. O aplicativo vai procurar dispositivos BLE.
Toque em "DIYables Multi-App" nos resultados da busca.
Depois de conectar, a tela inicial exibe todos os widgets de aplicativos disponíveis. Os 9 widgets inicializados no sketch do Arduino vão responder e funcionar — os outros widgets na tela inicial vão aparecer, mas não vão funcionar com este sketch.
Abra qualquer um dos widgets a seguir para interagir com o Arduino: Monitor, Chat, Slider, Joystick, Temperature, Plotter, Table, Analog Gauge, Rotator.
Alterne entre os widgets livremente — todos compartilham a mesma conexão BLE.
Agora volte ao Serial Monitor na Arduino IDE. Você verá:
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
Bluetooth connected!
Monitor: System running, uptime: 5s
Chat message: Hello
Slider value: 128
Joystick: X=0.50, Y=-0.30
Temperature: 22.50 °C
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2
Como Funciona
Inicialização dos Aplicativos
Cada widget é criado com sua própria configuração e seus próprios callbacks:
// All apps share the same Bluetooth serverDIYables_BluetoothServer bluetoothServer(bluetooth);// Create individual appsDIYables_BluetoothMonitor bluetoothMonitor(bluetoothServer);DIYables_BluetoothChat bluetoothChat(bluetoothServer);DIYables_BluetoothSlider bluetoothSlider(bluetoothServer, 0, 255, 1);DIYables_BluetoothJoystick bluetoothJoystick(bluetoothServer, false, 5);DIYables_BluetoothTemperature bluetoothTemp(bluetoothServer, -10.0, 50.0, "°C");DIYables_BluetoothPlotter bluetoothPlotter(bluetoothServer);DIYables_BluetoothTable bluetoothTable(bluetoothServer);DIYables_BluetoothAnalogGauge bluetoothGauge(bluetoothServer, 0.0, 100.0, "%");DIYables_BluetoothRotator bluetoothRotator(bluetoothServer, ROTATOR_MODE_CONTINUOUS);
Interação entre Aplicativos
Os aplicativos podem interagir entre si. Quando um widget recebe uma entrada, ele pode atualizar outros widgets:
O exemplo cria uma tabela com 10 linhas que mostra os dados de todos os aplicativos:
Linha
Rótulo
Descrição
0
Status
Status da conexão/execução
1
Uptime
Tempo desde a inicialização
2
Slider 1
Valor atual do slider
3
Slider 2
Valor do segundo slider
4
Joystick X
Posição X do joystick
5
Joystick Y
Posição Y do joystick
6
Temperature
Temperatura atual
7
Gauge Value
Porcentagem atual do medidor
8
Rotator Angle
Ângulo de rotação atual
9
Messages
Contagem de mensagens do chat
Personalização Criativa - Adapte o Código ao Seu Projeto
Adicionar ou Remover Widgets
Inclua apenas os widgets necessários para o seu projeto:
// Minimal setup: just Monitor and SliderDIYables_BluetoothMonitor bluetoothMonitor(bluetoothServer);DIYables_BluetoothSlider bluetoothSlider(bluetoothServer, 0, 100, 1);// That's it! The app will only show these two
Lógica Personalizada entre Aplicativos
// Example: Temperature alarm via Monitorvoid checkTemperatureAlarm(float temp) {if (temp > 40.0) { bluetoothMonitor.send("⚠️ HIGH TEMP ALERT: " + String(temp, 1) + "°C"); bluetoothChat.send("Temperature alarm triggered!"); }}
Solução de Problemas
Problemas Comuns
1. Dispositivo não aparece no aplicativo
Confirme que a placa está ligada e que o sketch foi carregado
Verifique se o Bluetooth está ativado no seu celular
No Android 11 e anteriores, ative também os serviços de localização
2. Alguns widgets não aparecem no menu
Todos os widgets inicializados vão aparecer automaticamente
Verifique se cada objeto de widget foi criado corretamente
O aplicativo descobre os widgets disponíveis a partir do Arduino
3. As atualizações parecem lentas
Cada widget tem intervalos de atualização diferentes por design
A largura de banda do BLE é limitada; atualizações rápidas demais podem causar congestionamento
Reduza a frequência de atualização dos widgets que não precisam de dados em tempo real
4. As atualizações entre widgets não funcionam
Verifique se as funções de callback estão registradas corretamente
Verifique se os nomes das linhas da tabela coincidem exatamente (diferencia maiúsculas de minúsculas)
Confirme que o objeto do widget de destino está acessível dentro do escopo do callback
5. Problemas de memória ou travamentos
Executar 9 widgets usa bastante memória
Remova os widgets não usados para liberar recursos
Reduza o número de linhas da tabela, se necessário
6. O upload falha ou a placa não é reconhecida
Instale o pacote de placa Arduino Nano ESP32 mais recente pelo Board Manager
Tente outro cabo ou outra porta USB
Ideias de Projetos
Painel IoT completo
Painel de controle de robô (joystick + monitor + sliders)
Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!