Exemplo de Chat Bluetooth para Arduino Nano ESP32 - Tutorial de Mensagens Bidirecionais via BLE
Visão Geral
Este exemplo implementa uma interface de mensagens de texto bidirecional no Arduino Nano ESP32 usando BLE (Bluetooth Low Energy) por meio do aplicativo DIYables Bluetooth STEM. Envie e receba mensagens de texto entre o Arduino e um smartphone em tempo real. Adequado para interfaces de linha de comando, controle remoto por texto, pontes seriais e depuração interativa.
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
- Mensagens Bidirecionais: Envie e receba mensagens de texto em tempo real
- Tratamento de Comandos: Processe comandos de texto recebidos do aplicativo
- Ponte Serial: Encaminhe mensagens entre o Serial Monitor e o Bluetooth
- Respostas Personalizadas: Responda automaticamente com ecos ou dados processados
- Suporte a Android e iOS: O BLE é compatível com as duas plataformas
- Sem Necessidade de Pareamento: O BLE conecta sem pareamento manual
- Baixo Consumo: O BLE consome menos energia que o Bluetooth Clássico
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Código Arduino Nano ESP32
Passos Rápidos
- Novo no Arduino Nano ESP32? Comece pelo guia de primeiros passos do Arduino Nano ESP32.
- Conecte o Arduino Nano ESP32 ao seu computador via USB.
- Abra a Arduino IDE.
- Selecione a placa Arduino Nano ESP32 e a porta COM correta.
- Clique no ícone Libraries na barra lateral esquerda.
- Pesquise por "DIYables Bluetooth" e selecione a biblioteca DIYables Bluetooth da DIYables.
- Clique em Install.

- Quando for solicitado a instalar as dependências, clique em Install All.

Código BLE
- Na Arduino IDE, abra File Examples DIYables Bluetooth ArduinoBLE_Chat, ou cole o código no editor.
- Clique em Upload para gravar o sketch na placa.
- Abra o Serial Monitor.
- A saída do Serial Monitor deve ficar assim:
Aplicativo Móvel
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 "Arduino_Chat" nos resultados da busca.
- Depois de conectar, volte à tela inicial e abra o aplicativo Chat.

Toque no ícone de configurações na tela inicial para mostrar ou ocultar aplicativos. Veja o Manual do Usuário do DIYables Bluetooth App para mais detalhes.
- Digite uma mensagem no campo de entrada do chat e toque em enviar.

Agora volte ao Serial Monitor na Arduino IDE. Você verá:
- O Arduino devolve a mensagem como eco, e a resposta aparece no chat do aplicativo.
Personalização Criativa - Adapte o Código ao Seu Projeto
Tratar Mensagens do Chat
Use o callback onChatMessage() para receber e processar mensagens do aplicativo. Defina palavras de comando personalizadas conforme necessário — o Arduino responde de acordo:
Adicione blocos else if extras para cada comando. Por exemplo, use LED_ON / LED_OFF para controlar um pino ou READ para disparar a leitura de um sensor.
Enviar Mensagens do Arduino
Ponte Serial para Bluetooth
Encaminhe mensagens entre o Serial Monitor e o Bluetooth:
Tratar Eventos de Conexão
Como Usar o Chat
Interface do Aplicativo
O aplicativo Chat do DIYables Bluetooth App oferece:
- Lista de Mensagens: Exibe as mensagens enviadas e recebidas com horário
- Entrada de Texto: Digite mensagens para enviar ao Arduino
- Botão Enviar: Toque para transmitir a mensagem
Fluxo de Comunicação
- Digite uma mensagem no aplicativo ? o Arduino a recebe pelo callback onChatMessage()
- O Arduino processa a mensagem e, opcionalmente, envia uma resposta com bluetoothChat.send()
- A resposta aparece na janela de chat do aplicativo
Exemplos de Programação
Tratador de Comandos com Controle de Relé
Sistema de Consulta de Sensores
Atualizações Periódicas de Status
Técnicas Avançadas de Programação
Análise de Comandos com Várias Palavras
Registro de Chat com Horários
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
- Tente reiniciar o Bluetooth no seu celular
2. Mensagens não são recebidas pelo Arduino
- Verifique o status da conexão Bluetooth no aplicativo
- Confirme que o callback onChatMessage está registrado corretamente
- Verifique o Serial Monitor em busca de mensagens de erro
3. As respostas do Arduino não aparecem no aplicativo
- Verifique se bluetoothChat.send() está sendo chamado
- Confirme que bluetoothServer.loop() aparece no loop principal
- Verifique o estado da conexão com bluetooth.isConnected()
4. O Serial Monitor mostra texto ilegível
- Confirme que a taxa de baud no Serial Monitor corresponde a Serial.begin(9600)
- Verifique se a placa correta está selecionada na Arduino IDE
5. A conexão cai com frequência
- Reduza a distância até o Arduino
- Verifique se há interferência de outros dispositivos BLE
- Garanta uma alimentação USB estável
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
- Pressione o botão de reset antes de fazer o upload
Ideias de Projetos
Comunicação
- Interface de comandos de texto para automação residencial
- Ponte serial para Bluetooth para depuração sem fio
- Sistema remoto de consulta de sensores
- Quiz interativo ou jogo de perguntas e respostas
Sistemas de Controle
- Controle de relé por voz convertida em texto
- Roteador de comandos para vários dispositivos
- Gerenciador de configuração por comandos de chat
- Relator da versão do firmware
Registro e Monitoramento
- Registro de eventos com horários
- Sistema de notificação de alarmes
- Gerador de relatórios de status
- Chatbot de diagnóstico
Integração com Outros Aplicativos Bluetooth
Combine com o Bluetooth Monitor
Use o chat para comandos e o monitor para saída contínua:
Combine com o Bluetooth Table
Comandos de chat para controlar quais dados são exibidos na tabela:
Próximos Passos
Depois de concluir o exemplo do Bluetooth Chat, explore:
- Bluetooth Monitor — Transmissão unidirecional de mensagens de status
- Bluetooth Slider — Controle de valores analógicos
- Bluetooth Table — Exibição de dados estruturados
- Multiple Bluetooth Apps — Combine o chat com outros widgets do aplicativo
Suporte
Para obter mais ajuda:
- Consulte a documentação de referência da API
- Visite os tutoriais da DIYables
- Fóruns da comunidade Arduino