O ESP32 suporta Bluetooth duplo contendo Bluetooth Classic e a Bluetooth Low Energy (BLE). Neste artigo, discutiremos o funcionamento de ambos os Bluetooth.
Aqui está uma breve comparação do Bluetooth Classic com Bluetooth Low Energy:
Especificação | Bluetooth Classic | Bluetooth Low Energy/BLE |
Taxa de transferência de dados | 2-3Mbps | 1Mbps |
Faixa | ~ 10-100m | ~ 50m |
Frequência de operação | 79 RF | 40 RF |
Consumo de corrente de pico | ~ 30Ma | <15mA |
Consumo de energia | 1w | 0.01-0.5W |
Tempo total para enviar dados | 100ms | 3ms |
Formulários | Áudio, streaming de música | Sensor, wearables |
Para uma comparação mais detalhada, clique aqui para visitar o site oficial do Bluetooth.
A seguir, estão os dois modos Bluetooth disponíveis na placa ESP32:
1: Esp32 Bluetooth Classic com Arduino IDE
A placa ESP32 vem com dupla suporte Bluetooth One é o Bluetooth Classic e a segunda é BLE (Bluetooth Low Energy). Hoje estaremos discutindo apenas o Bluetooth Classic. A única diferença que existe entre os dois é que o Bluetooth Classic pode lidar com muita transferência de dados, mas consome bateria a uma taxa mais alta, no entanto. BLE permanece no modo de suspensão até que seja inicializado para transferência de dados.
Esp32 Bluetooth Classic Serial Communication
O ESP32 vem com módulos Bluetooth embutidos que primeiro recebem dados e depois o encaminham para o processador XTENSA. Então, para estabelecer esta comunicação “Bluetoothserial” A biblioteca é usada que é semelhante à Biblioteca Série Arduino, mas está apenas dentro do ESP32. A seguir, estão algumas funções oferecidas pela Bluetooth Serial Library:
LED controlado por Bluetooth usando ESP32
Vamos escrever um código simples que possa controlar um LED usando o Bluetooth Mobile sobre a comunicação sem fio Bluetooth. A seguir, o hardware necessário para controlar o LED usando a comunicação serial bluetooth:
O circuito
Conecte o LED no pino digital 15 do ESP32 com terminal negativo conectado no GND da placa ESP32. Para um limite de corrente seguro, também podemos conectar o resistor (220 ohms) entre eles:
Código
Abra o Arduino IDE e selecione a placa ESP32 no gerente do conselho para ver como instalar a placa ESP32 no Arduino IDE Clique aqui. Depois de selecionar a placa, escreva o código abaixo na janela do editor:
#include /*biblioteca de comunicação serial bluetooth* /Aqui no código acima, começamos incluindo a biblioteca serial Bluetooth para ESP32. Em seguida, incluímos funções da biblioteca serial bluetooth que permitirão o Esp32 Bluetooth.
O próximo pino LED 15 é inicializado e usando o pinmode () O pino de LED da função é definido como saída.
Na parte do loop do código, o programa verificará a disponibilidade de dados Bluetooth em série. Se os dados de entrada forem 1 LED será ativado e se os dados recebidos forem 0 LED desativará.
Depois que o código é carregado. O Bluetooth da placa ESP32 ligará e a mensagem a seguir aparecerá no monitor serial:
Instalando o terminal Bluetooth serial no smartphone
Precisamos de um dispositivo Bluetooth que possa enviar instruções para o ESP32, para que usaremos um smartphone Android para interface com o ESP32 Bluetooth. Primeiro, precisamos instalar um terminal serial em um telefone Android. Siga as etapas fornecidas abaixo para interface o telefone Android com o ESP32:
Passo 1: Abra o Google Play Store em seu smartphone e pesquise Terminal Bluetooth em série. Instale o aplicativo mostrado abaixo:
Passo 2: Após a instalação, abra configurações de bluetooth do telefone celular. Pesquise por esp32 bluetooth e clique para começar a emparelhá -lo com seu smartphone clicando em Par:
Etapa 3: Depois de tocar em um Par, O telefone celular começará a combinar com o ESP32 Bluetooth:
Passo 4: Agora abra o aplicativo de terminal Bluetooth em série e vá para Dispositivos Do menu lateral:
Etapa 5: Depois que a opção do dispositivo for aberta, ele solicitará algumas permissões ou pressionará o Atualizar Botão no canto superior direito:
Etapa 6: A seguir, o pop-up virá clicar em Configurações e permitir a permissão que pede:
Etapa 7: Agora a placa ESP32 está pronta para receber instruções sobre o Bluetooth. Sob Bluetooth Classic Opção Selecione a placa ESP32:
Etapa 8: Depois que o ESP32 for selecionado, ele começará a se conectar e se for bem -sucedido, um Conectado Mensagem aparecerá:
Etapa 9: Agora podemos enviar qualquer instrução digitando aqui. Tipo 1 e clique no botão Enviar, LED na placa ESP32 ativará. Da mesma forma, digitando 0 LED vai desligar:
Da mesma forma, podemos ver a saída no monitor serial do Arduino IDE o que ele está recebendo:
Saída
LED liga depois de enviar 1:
LED desliga depois de enviar 0:
Observação: Também podemos configurar botões para instruções específicas, como mostrado na imagem abaixo. Para fazer isso, clique nos botões e defina o valor que você deseja. Aqui definimos dois botões um para o alto e outro para o estado baixo. Você também pode configurar esses atalhos em valores hexadecimais.
2: Esp32 Bluetooth Low Energy (BLE) com Arduino IDE
BLE ou Bluetooth Low Energy é um modo de economia de energia do Bluetooth. Seu aplicativo principal inclui transferência de dados em distâncias curtas, como entrada de porta, relógios inteligentes, wearables, monitor de pressão arterial, segurança e automações domésticas. Ble pode transferir dados limitados.
Ao contrário do clássico Bluetooth, que permanece ativado o tempo todo, o ble permanece no modo de suspensão, exceto quando é chamado, ou a conexão é iniciada. Isso torna o ble muito eficiente em termos de energia e consome 100 vezes menos energia do que o clássico.
Servidor e cliente BLE
Bluetooth Low Energy suporta o dispositivo de duas maneiras diferentes, devido às quais o ESP32 pode atuar como servidor e cliente para Bluetooth de baixa energia.
Suporte a seguir os seguintes modos de comunicação:
Ao atuar como servidor, a ESP32 anuncia sua existência para dispositivos clientes próximos. Uma vez que os dispositivos clientes digitalizem os dispositivos Bluetooth disponíveis, o servidor estabelece a conexão entre eles e transfere os dados do servidor para o dispositivo cliente. Esta comunicação é chamada de ponto a ponto.
Neste tutorial, daremos um exemplo de comunicação ponto a ponto entre duas placas ESP32.
Termos importantes em ble
Aqui estão alguns termos importantes que devemos saber ao trabalhar com aplicativos ESP32 BLE:
Gatt: Atributos Gatt ou genéricos que definem uma estrutura hierárquica para transferências de dados entre dispositivos BLE usando serviço e característica. Ele define como dois dispositivos comunicam dados entre eles.
Serviço ble: Nível superior dentro da hierarquia gatt é um perfil que contém um ou mais serviços. Ble tem mais de um serviço. Cada um desses serviços tem suas próprias características que também podem atuar como referência para outros serviços.
Característica ble A característica é um grupo de informações sempre pertencentes ao serviço; É onde os dados reais são armazenados na hierarquia (valor). Ele sempre contém dois atributos:
Uuid: Uuid (identificador universalmente único) é dado a cada serviço e característica. É um ID único de 128 bits que pode ser gerado usando qualquer gerador UUID online. Verifique este gerador uuid grátis. Uma amostra uuid se parece com o seguinte:
583F8B30-74B4-4757-8143-56048FD88B25Um grupo de interesse especial do Bluetooth Universal (SIG) predefiniu alguns dos UUIDs reduzidos para diferentes tipos de serviços e perfil, para lê -los, clique aqui.
Configurar o BLE no ESP32 com Arduino IDE
Para entender o funcionamento do BL, usaremos duas placas ESP32 diferentes, uma delas agirá como servidor e anuncie um sinal Bluetooth enquanto o outro ESP32, que está agindo como um cliente Vou tentar conectar o servidor Bluetooth.
Arduino IDE tem exemplos separados para o scanner e o servidor.
Para ver como instalar uma placa ESP32 com Arduino IDE no Windows, clique aqui.
Esp32 BLE Server
Primeiro, enviaremos o código de exemplo do servidor dentro de nossa primeira placa ESP32, que está atuando como um servidor.
Para abrir o exemplo do servidor, vá para: Arquivo> Exemplos> Esp32 Ble Arduino> ble_server:
O código dado abaixo será aberto no Arduino IDE.
Código do servidor
Carregue o código abaixo na placa ESP32 usando o Arduino IDE, mas não se esqueça de desconectar a segunda placa por um tempo para evitar o upload do mesmo código para uma única placa:
#incluirO código começa com a inclusão de arquivos necessários da biblioteca Bluetooth. Então uuid é definido para serviço e característica. Você pode ir com o UUID padrão ou pode gerar usando o gerador UUID gratuito. A próxima comunicação serial é inicializada definindo a taxa de transmissão.
Em seguida, criamos um dispositivo BLE chamado Esp32 e, depois disso, definimos o dispositivo BLE como um servidor usando o CreateServer () função e mais tarde definimos o valor característico. Na etapa final, iniciamos o serviço anunciando -o para que outros dispositivos possam pesquisá -lo.
Esp32 Ble Scanner
Agora vamos fazer upload de um exemplo de varredura ESP32 na segunda placa ESP32. Para fazer isso, vá para: Arquivo> Exemplos> Esp32 Ble Arduino> ble_scan:
O código abaixo será aberto no Arduino IDE Editor.
Código do scanner
O código fornecido será usado na placa SCANNER ESP32. Abra o IDE e envie o código, lembre -se de desconectar outras placas antes de fazer o upload do código do scanner.
#incluirO código acima procurará o número total de dispositivos disponíveis para BLE e exibirá sua contagem total com endereços. Depois de fazer upload do código na placa de scanner Esp32, pressione o Habilitar Botão, a placa ESP32 pesquisará automaticamente os dispositivos disponíveis:
Saída
Depois que o ESP32 verifica os dispositivos disponíveis, o seguinte resultado aparecerá. Aqui, o ESP32 digitalizou 9 dispositivos entre os quais um é uma placa ESP32 com código ble_server e outro dispositivo é a banda Mi 6. Resto de todos os dispositivos está disponível perto do meu ESP32.
Como consertar a biblioteca de varredura ESP32 BLE não contando dispositivos
O exemplo da biblioteca de varredura ESP32 tem um bug de não contar o número total de dispositivos. Para corrigir esse problema, vá para o local mencionado e substitua o código abaixo:
C: \ Usuários \ Nome de usuário \ AppData \ Local \ Arduino15 \ Pacotes \ Esp32 \ Hardware \ Esp32 \ 1.0.6 \ bibliotecas \ ble \ src \ blascan.cppLembrar de uncida Todas as pastas porque a pasta AppData dentro do diretório C permanece oculta por padrão. Depois de abrir o arquivo de origem ble_scan .cpp Substitua a condição abaixo dada dentro do código:
if (m_padvertisedDeviceCallbacks)Testando o servidor esp32 ble com smartphone
A maioria dos smartphones modernos trabalha com a tecnologia BLE para se comunicar com diferentes dispositivos, como smartwatch, wearables, sensores e outros dispositivos de automação residencial. Aqui o ESP32 é um ponto de acesso para dispositivos. Então, vamos conectar um telefone Android com uma placa ESP32.
Código do servidor ble para acesso ao smartphone ESP32
Carregue o código dado abaixo na placa ESP32:
#include /*biblioteca Bluetooth incluída* /Instalando o aplicativo BLE no smartphone Android
As etapas a seguir o guiarão a instalar aplicativos BLE em smartphones e ajudarão a interface os dispositivos móveis com as placas ESP32.
Passo 1: Open Google Play Store Install Scanner ble aplicativo:
Passo 2: Após a instalação, abra o aplicativo e permita toda a permissão necessária e lembre -se de ativar o Mobile Bluetooth:
Etapa 3: Agora digitalize os dispositivos Bluetooth disponíveis. Conecte a placa ESP32:
Passo 4: Depois que a placa ESP32 estiver conectada ao smartphone após a especificação da placa ESP32 aparecerá. Aqui podemos ver os endereços UUID e podemos ler e escrever novos valores característicos:
Etapa 5: Para ler o valor da característica salva clique R. O resultado será exibido conforme mencionado na imagem abaixo:
Etapa 6: Para escrever qualquer novo valor de característica, clique C:
Etapa 7: Um novo pop-up aparecerá aqui, onde podemos escrever qualquer valor característico e clicar OK:
Etapa 8: Novo valor escrito aparecerá como mostrado na imagem:
Etapa 9: Além disso, podemos ver o mesmo novo valor característico impresso no monitor serial do Arduino IDE:
Nós conectamos com sucesso um dispositivo com esp32 ble.
Conclusão
O ESP32 vem com Bluetooth duplo que são Bluetooth Classic e Bluetooth Low Energy. Aqui neste artigo, discutimos o Bluetooth Classic e o BLE e suas várias aplicações e o trabalho. O Bluetooth Classic é usado para transferência de dados alta enquanto BLE (Bluetooth Low Energy) é usado para distâncias curtas com menos requisitos de energia. Este artigo fornece um guia definitivo para o Bluetooth da placa ESP32 funcionando e como configurá -los.