Como configurar e programar o ESP32 para se comunicar com um smartphone Android via Bluetooth

Como Configurar E Programar O Esp32 Para Se Comunicar Com Um Smartphone Android Via Bluetooth



ESP32 é uma placa microcontroladora com uma vasta gama de capacidades. Possui módulos Wi-Fi e Bluetooth integrados. Usando ambos os módulos, você pode programar o ESP32 sem fio. Com isso, você não precisa se preocupar com conexões de fio longo para controlar periféricos ESP32.

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

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.

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 // Inclui a biblioteca de comunicação serial Bluetooth

#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.