Neste artigo, conectaremos uma placa ESP32 a um telefone Android e comunicaremos dados via Bluetooth. Além disso, controlaremos um LED conectado aos pinos GPIO do ESP32 diretamente através do smartphone Android.
Conteúdo:
- O que é ESP32 Bluetooth LE
- Como programar o ESP32 para se comunicar via Bluetooth com smartphone Android
- Etapas para conectar ESP32 Bluetooth com telefone Android
- Diagrama de circuito
- Hardware
- Saída
- Conclusão
O que é ESP32 Bluetooth LE
ESP32 é uma placa microcontroladora que suporta Bluetooth Classic e Bluetooth Low Energy, também conhecido como Bluetooth inteligente. O BLE ou Bluetooth inteligente é específico para comunicação com eficiência energética ou projetado para comunicação de curto alcance ou pequenas transferências de dados.
A funcionalidade BLE do ESP32 permite que ele atue como servidor ou cliente em comunicações Bluetooth. Ele pode lidar com tarefas como serviços de leitura e escrita. Ele também pode criptografar conexões e estabelecer conexões de perfil de porta serial (SPP) para transmissão de dados no modo de passagem UART-BLE. O ESP32 Bluetooth suporta os protocolos 4.2, o que significa que é compatível com diferentes camadas como Camada Física (PHY) e Camada de Link (LL). Também possui suporte para Host Controller Interface (HCI), entre outros.
Verifique a tabela de diferenças para ESP32 Classic e BLE Bluetooth.
Recurso | Bluetooth clássico | Bluetooth de baixa energia (BLE) |
Tipo de comunicação | Comunicação sustentada e bidirecional | Explosões de dados intermitentes, principalmente unidirecionais |
Alcance Operacional | Pode atingir até 100 metros | Normalmente opera abaixo de 100 metros |
Uso de energia | Consome até 1 Watt | Varia de 10 miliwatts a 500 miliwatts |
Velocidade de transferência | As taxas de transferência de dados variam de 1 a 3 Megabits por segundo | Suporta 125 Kilobits por segundo a 2 Megabits por segundo |
Tempo de resposta | Latência em torno de 100 milissegundos | Resposta rápida com latência de 6 milissegundos |
Suporte de voz | Equipado com transmissão de voz | Não possui funcionalidade de transmissão de voz |
Confira estes artigos do ESP32 Bluetooth para saber mais sobre ele.
- ESP32 Bluetooth – Guia definitivo
- ESP32 – Bluetooth Clássico vs Bluetooth de baixa energia (BLE)
Como programar o ESP32 para se comunicar via Bluetooth com smartphone Android
Para programar o ESP32 para que ele possa se comunicar com um telefone Android usando o protocolo Bluetooth, é necessário configurar a biblioteca serial Bluetooth do ESP32. Para isso, é necessário ter uma configuração Arduino IDE com uma placa ESP32 instalada.
Depois de configurar o ESP32 Bluetooth, você deve instalar o aplicativo Android serial Bluetooth. Isso permitirá que você envie instruções de um telefone Android para o ESP32 usando comunicação serial Bluetooth.
Vamos dar uma olhada mais de perto em cada uma dessas etapas:
Etapas para conectar ESP32 Bluetooth com telefone Android
Para programar a placa ESP32 para comunicação Bluetooth, siga estas etapas:
Etapa 1: Instalando a placa ESP32 no Arduino IDE
Para instalar o ESP32 no Arduino IDE, basta seguir o guia fornecido neste artigo.
Instalando a placa ESP32 no Arduino IDE
Após a instalação, a placa ESP32 pode ser conectada e programada usando Arduino IDE.
Etapa 2: faça upload do código Bluetooth ESP32
Assim que a placa ESP32 estiver instalada, você verá diferentes bibliotecas pré-instaladas e seus exemplos no Arduino IDE. Todas essas bibliotecas estão relacionadas à placa ESP32. Para comunicação serial Bluetooth, usaremos o ESP32 BluetoothSerial.h código de exemplo da biblioteca.
Para abrir o código de exemplo, abra o Arduino IDE e vá para: Arquivo > Exemplos > BluetoothSerial > SerialtoSerialBT
Para abrir este código de exemplo, certifique-se de que a placa ESP32 esteja selecionada.
Depois de abrir o código de exemplo, você verá o seguinte código na janela do Arduino IDE:
//Bem-vindo ao Linuxhint#include 'BluetoothSerial.h'
//#define USE_PIN // Remova o comentário se desejar o PIN durante o emparelhamento
const Caracteres * alfinete = '1234' ; // Defina um PIN de emparelhamento personalizado
String nome_do_dispositivo = 'ESP32' ;
#if !definido(CONFIG_BT_ENABLED) || !definido(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth não está ativado! Execute `make menuconfig` para habilitá-lo
#fim se
#if !definido(CONFIG_BT_SPP_ENABLED)
#error Bluetooth serial ausente ou não ativado. Está disponível apenas para o chip ESP32.
#fim se
BluetoothSerialSerialBT ;
vazio configurar ( ) {
Serial. começar ( 115200 ) ;
SerialBT. começar ( nome do dispositivo ) ; //Nome do dispositivo Bluetooth
Serial. imprimir ( 'O dispositivo ' % é ' começou. \n Comece a emparelhar seu dispositivo! \n ' , nome do dispositivo. c_str ( ) ) ;
//Serial.printf('O dispositivo '%s' com endereço MAC %s foi iniciado.\nComece a emparelhá-lo com Bluetooth!\n', device_name.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
SerialBT. definirPino ( alfinete ) ;
Serial. imprimir ( 'Usando PIN' ) ;
#fim se
}
vazio laço ( ) {
se ( Serial. disponível ( ) ) {
SerialBT. escrever ( Serial. ler ( ) ) ;
}
se ( SerialBT. disponível ( ) ) {
Serial. escrever ( SerialBT. ler ( ) ) ;
}
atraso ( vinte ) ;
}
Após enviar o código, você verá a seguinte mensagem na tela. Esta mensagem descreve que sua placa ESP32 está pronta para emparelhamento.
Etapa 3: explicação do código
O código começou incluindo as bibliotecas necessárias e verificando a disponibilidade do Bluetooth. Ele também configura variáveis para o nome e PIN do dispositivo Bluetooth.
No configurar() função, a comunicação serial baud é definida e o dispositivo Bluetooth é inicializado com seu nome. Um PIN personalizado pode ser definido para autenticação durante o emparelhamento.
O laço() A função verifica continuamente os dados nas conexões serial e Bluetooth. Isso permite estabelecer comunicação bidirecional entre o ESP32 e um dispositivo Bluetooth emparelhado.
Etapa 4: instale o aplicativo Android
Após o upload do código, o próximo passo é instalar e configurar o aplicativo Android para conexão Bluetooth.
Abra a Play Store e instale o Terminal serial Bluetooth aplicativo.
Após a instalação, abra as configurações de Bluetooth do smartphone e conecte seu telefone ao ESP32 Bluetooth. Se você definiu um PIN no código IDE do Arduino, será necessário inserir o PIN, caso contrário ele se conectará diretamente.
Agora abra o aplicativo Serial Bluetooth e selecione o Dispositivos opção.
No menu recém-aberto, selecione o dispositivo ESP32. Esta lista mostra todos os dispositivos Bluetooth atualmente ativos.
Como você pode ver, o ESP32 Bluetooth está conectado ao seu smartphone Android.
Para testar a conexão, enviaremos uma string. Aqui enviei duas strings diferentes.
Você notará que as mesmas duas strings também serão exibidas no terminal IDE do Arduino.
Agora vamos dar um passo adiante e controlar um periférico externo como um LED usando ESP32 Bluetooth através do smartphone Android.
Etapa 5: controlar um LED usando um telefone Android via Bluetooth
Para controlar um LED usando ESP32 e Android Bluetooth, primeiro modifique o código acima e defina um pino GPIO para o LED. Depois disso, deve-se definir os valores para ligar e desligar o LED.
Faça upload do código abaixo para prosseguir.
#include#define LED_PIN 15 // Define o pino do LED
BluetoothSerialSerialBT ; // Cria um objeto BluetoothSerial
byte BT_INP ; // Variável para armazenar entrada Bluetooth
// Verifica se o Bluetooth e o Bluedroid estão habilitados na configuração do SDK
#if !definido(CONFIG_BT_ENABLED) || !definido(CONFIG_BLUEDROID_ENABLED)
#error O Bluetooth não está ativado. Execute `make menuconfig` para habilitá-lo.
#fim se
vazio configurar ( ) {
pinMode ( LED_PIN , SAÍDA ) ; // Define o pino do LED como saída
Serial. começar ( 115200 ) ;
SerialBT. começar ( 'ESP32' ) ; // Inicializa o Bluetooth com o nome 'ESP32'
Serial. imprimir ( 'O dispositivo Bluetooth está pronto para emparelhar.' ) ; //Indica que o Bluetooth está pronto
}
vazio laço ( ) {
// Verifica se há algum dado disponível para leitura no Bluetooth
se ( SerialBT. disponível ( ) ) {
BT_INP = SerialBT. ler ( ) ; //Lê o byte recebido do Bluetooth
Serial. escrever ( BT_INP ) ; //Ecoa o byte lido para o monitor serial
}
// Verifica os dados Bluetooth recebidos e define o estado do LED
se ( BT_INP == '1' ) {
escrita digital ( LED_PIN , ALTO ) ; // Acende o LED se '1' for recebido
} outro se ( BT_INP == '0' ) {
escrita digital ( LED_PIN , BAIXO ) ; //Desliga o LED se '0' for recebido
}
}
Este código é para um microcontrolador ESP32 controlar um LED usando Bluetooth. Inclui uma biblioteca para comunicação Bluetooth. Em seguida, ele define o pino do LED e configura o Bluetooth com um dispositivo chamado ESP32. O loop principal lê os dados do Bluetooth e liga ou desliga o LED com base no comando recebido (1 para ON, 0 para OFF).
Diagrama de circuito
O diagrama do circuito é simples, com um LED conectado no pino D15 do ESP32. Você pode definir qualquer outro GPIO para controle de LED.
Relacionado: Referência de pinagem ESP32 – Guia definitivo
Hardware
Em hardware, você precisará de uma placa de ensaio, uma placa ESP32 e um LED. Conecte o ESP32 ao sistema e carregue o programa nele.
Agora envie 1 e 0 do aplicativo de comunicação serial Bluetooth do telefone Android.
Você verá a mesma entrada no terminal Arduino IDE recebido do telefone Android.
Saída
Depois de enviar o valor Alto ou 1, o LED acenderá, da mesma forma, quando você enviar o valor Baixo, o LED apagará.
Defina um botão personalizado
Você também pode definir um botão personalizado dentro do aplicativo Serial Bluetooth. Por exemplo, um botão de valores ALTO e BAIXO pode ser criado. Dessa forma, você não precisa digitar os valores manualmente. Em vez disso, basta pressionar o botão de atalho e ele executará a instrução que você definiu.
Observação: Para abrir as configurações do botão, pressione longamente o botão.
Para definir o valor do botão HIGH, defina as seguintes configurações.
Semelhança para o valor do botão LOW, você precisa definir as configurações abaixo.
Conectamos com sucesso a placa ESP32 a um telefone Android usando Bluetooth. Agora você pode criar muitos projetos usando-o. Assim, você pode controlar seus eletrodomésticos usando o ESP32 Bluetooth por meio de um circuito de relé.
Relacionado: Relé com ESP32 usando Arduino IDE
Conclusão
ESP32 é uma placa microcontroladora avançada com recursos Wi-Fi e Bluetooth. Ambos os módulos integrados ajudam você a projetar projetos avançados e controlar os periféricos sem fio. Da mesma forma, você pode conectar o ESP32 a um telefone Android e realizar diversas operações. Para isso, você precisará instalar o aplicativo Bluetooth Serial Android. Depois de instalado, abra o código de exemplo do ESP32 Bluetooth e carregue-o em sua placa. Depois que o código for carregado, você poderá emparelhá-lo com sua placa por meio de um telefone Android.