Com configurar i programar l'ESP32 per comunicar-se amb un telèfon intel·ligent Android mitjançant Bluetooth

Com Configurar I Programar L Esp32 Per Comunicar Se Amb Un Telefon Intel Ligent Android Mitjancant Bluetooth



ESP32 és una placa de microcontrolador amb una àmplia gamma de capacitats. Té mòduls Wi-Fi i Bluetooth integrats. Mitjançant aquests dos mòduls, podeu programar ESP32 sense fil. Amb això, no us haureu de preocupar per les connexions de cable llarg per controlar els perifèrics ESP32.

En aquest article, connectarem una placa ESP32 amb un telèfon Android i comunicarem dades per Bluetooth. A més, controlarem un LED connectat amb els pins GPIO de l'ESP32 directament a través del telèfon intel·ligent Android.

Continguts:







Què és ESP32 Bluetooth LE

ESP32 és una placa de microcontroladors que admet tant Bluetooth Classic com Bluetooth Low Energy, també conegut com a Bluetooth intel·ligent. El BLE o Bluetooth intel·ligent és específic per a una comunicació eficient energèticament o està dissenyat per a comunicacions de curt abast o transferències de dades petites.



La funcionalitat BLE de l'ESP32 li permet actuar com a servidor o client en comunicacions Bluetooth. Pot gestionar tasques com ara serveis de lectura i escriptura. També pot xifrar connexions i establir connexions de perfil de port sèrie (SPP) per a la transmissió de dades en mode de pas UART-BLE. L'ESP32 Bluetooth admet els protocols 4.2, el que significa que és compatible amb diferents capes com la capa física (PHY) i la capa d'enllaç (LL). També té suport per a Host Controller Interface (HCI), entre d'altres.



Comproveu la taula de diferències per a ESP32 Classic i BLE Bluetooth.





Característica Bluetooth clàssic Bluetooth de baixa energia (BLE)
Tipus de comunicació Comunicació sostinguda i bidireccional Esclats de dades intermitents, principalment unidireccionals
Interval operatiu Pot arribar fins als 100 metres Normalment funciona a menys de 100 metres
Ús d'energia Consumeix fins a 1 watt Oscil·la entre 10 i 500 miliwatts
Velocitat de transferència Les taxes de transferència de dades varien d'1 a 3 megabits per segon Admet 125 kilobits per segon a 2 megabits per segon
Temps de resposta Latència d'uns 100 mil·lisegons Resposta ràpida amb 6 mil·lisegons de latència
Suport de veu Equipat amb transmissió de veu No té la funcionalitat de transmissió de veu

Consulteu aquests articles de Bluetooth ESP32 per obtenir-ne més informació.

Com programar ESP32 per comunicar-se per Bluetooth amb un telèfon intel·ligent Android

Per programar ESP32 perquè es pugui comunicar amb un telèfon Android mitjançant el protocol Bluetooth, heu de configurar la biblioteca sèrie de Bluetooth ESP32. Per això, heu de tenir una configuració Arduino IDE amb una placa ESP32 instal·lada.



Després de configurar l'ESP32 Bluetooth, heu d'instal·lar l'aplicació Android sèrie Bluetooth. Això us permetrà enviar instruccions des d'un telèfon Android a ESP32 mitjançant la comunicació sèrie Bluetooth.

Fem una ullada més de prop a cadascun d'aquests passos:

Passos per connectar l'ESP32 Bluetooth amb el telèfon Android

Per programar la placa ESP32 per a la comunicació Bluetooth, seguiu aquests passos:

Pas 1: instal·lació de la placa ESP32 a l'IDE Arduino

Per instal·lar l'ESP32 a l'IDE d'Arduino, només cal que seguiu la guia proporcionada en aquest article.

Instal·lació de la placa ESP32 a l'IDE Arduino

Després de la instal·lació, la placa ESP32 es pot connectar i programar mitjançant Arduino IDE.

Pas 2: Carregueu el codi Bluetooth ESP32

Un cop instal·lada la placa ESP32, veureu diferents biblioteques preinstal·lades i els seus exemples a l'IDE d'Arduino. Totes aquestes biblioteques estan relacionades amb la placa ESP32. Per a la comunicació sèrie Bluetooth, utilitzarem l'ESP32 BluetoothSerial.h codi d'exemple de biblioteca.

Per obrir el codi d'exemple, obriu Arduino IDE i aneu a: Fitxer > Exemples > BluetoothSerial > SerialtoSerialBT

Per obrir aquest codi d'exemple, assegureu-vos que la placa ESP32 estigui seleccionada.

Després d'obrir el codi d'exemple, veureu el codi següent a la finestra de l'IDE d'Arduino:

//Benvingut a Linuxhint

#include 'BluetoothSerial.h'

//#define USE_PIN // Descomenteu-ho si voleu el PIN durant l'aparellament
const char * pin = '1234' ; // Definiu un PIN de vinculació personalitzat

Cadena nom_dispositiu = 'ESP32' ;

#if !definit(CONFIG_BT_ENABLED) || !definit(CONFIG_BLUEDROID_ENABLED)
#error El Bluetooth no està habilitat! Executeu `make menuconfig` per habilitar-lo
#endif

#if !definit(CONFIG_BT_SPP_ENABLED)
#error Falta el Bluetooth sèrie o no està habilitat. Només està disponible per al xip ESP32.
#endif

Bluetooth Serial SerialBT ;

buit configuració ( ) {
Serial. començar ( 115200 ) ;
SerialBT. començar ( nom del dispositiu ) ; //Nom del dispositiu Bluetooth
Serial. imprimirf ( 'El dispositiu ' % s ' s'inicia. \n Comença a vincular el teu dispositiu! \n ' , nom del dispositiu. c_str ( ) ) ;
//Serial.printf('El dispositiu '%s' amb l'adreça MAC %s s'ha iniciat.\nComenceu a vincular-lo amb Bluetooth!\n', device_name.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
SerialBT. setPin ( pin ) ;
Serial. imprimirln ( 'Usant PIN' ) ;
#endif
}

buit bucle ( ) {
si ( Serial. disponible ( ) ) {
SerialBT. escriure ( Serial. llegir ( ) ) ;
}
si ( SerialBT. disponible ( ) ) {
Serial. escriure ( SerialBT. llegir ( ) ) ;
}
retard ( 20 ) ;
}

Després de carregar el codi, veureu el següent missatge a la pantalla. Aquest missatge descriu que la vostra placa ESP32 està preparada per a l'aparellament.

Pas 3: Explicació del codi

El codi va començar per incloure les biblioteques necessàries i comprovar la disponibilitat de Bluetooth. També configura variables per al nom i el PIN del dispositiu Bluetooth.

En el configuració () funció, es defineix la comunicació en baudis sèrie i el dispositiu Bluetooth s'inicializa amb el seu nom. Es pot establir un PIN personalitzat per a l'autenticació durant l'aparellament.

El bucle () La funció comprova contínuament les dades de les connexions sèrie i Bluetooth. Això li permet establir una comunicació bidireccional entre l'ESP32 i un dispositiu Bluetooth emparellat.

Pas 4: instal·leu l'aplicació d'Android

Un cop carregat el codi, el següent pas és instal·lar i configurar l'aplicació d'Android per a la connexió Bluetooth.

Obriu Play Store i instal·leu el Terminal sèrie Bluetooth aplicació.

Després de la instal·lació, obriu la configuració de Bluetooth del telèfon intel·ligent i connecteu el vostre telèfon amb ESP32 Bluetooth. Si heu definit un PIN al codi IDE d'Arduino, heu d'introduir el PIN, sinó es connectarà directament.

Ara obriu l'aplicació Bluetooth sèrie i seleccioneu Dispositius opció.

Al menú obert recentment, seleccioneu el dispositiu ESP32. Aquesta llista mostra tots els dispositius Bluetooth actius actualment.

Com podeu veure, l'ESP32 Bluetooth està connectat al vostre telèfon intel·ligent Android.

Per provar la connexió, enviarem una cadena. Aquí he enviat dues cadenes diferents.

Notareu que les mateixes dues cadenes també es mostraran al terminal IDE d'Arduino.

Ara fem un pas més i controlem un perifèric extern com un LED mitjançant Bluetooth ESP32 a través del telèfon intel·ligent Android.

Pas 5: controleu un LED mitjançant un telèfon Android mitjançant Bluetooth

Per controlar un LED mitjançant l'ESP32 i el Bluetooth d'Android, primer modifiqueu el codi anterior i definiu un pin GPIO per al LED. Després d'això, heu d'establir els valors per encendre i apagar el LED.

Carregueu el codi següent per continuar.

#include // Inclou la biblioteca de comunicació sèrie Bluetooth

#define LED_PIN 15 // Definiu el pin del LED

Bluetooth Serial SerialBT ; // Crear un objecte BluetoothSerial
byte BT_INP ; // Variable per emmagatzemar l'entrada de Bluetooth

// Comproveu si Bluetooth i Bluedroid estan habilitats a la configuració de l'SDK
#if !definit(CONFIG_BT_ENABLED) || !definit(CONFIG_BLUEDROID_ENABLED)
#error El Bluetooth no està habilitat. Executeu `make menuconfig` per habilitar-lo.
#endif

buit configuració ( ) {
PinMode ( LED_PIN , SORTIDA ) ; // Estableix el pin del LED com a sortida
Serial. començar ( 115200 ) ;
SerialBT. començar ( 'ESP32' ) ; // Inicialitzar Bluetooth amb el nom 'ESP32'
Serial. imprimirln ( 'El dispositiu Bluetooth està preparat per emparellar-se'. ) ; // Indica que el Bluetooth està preparat
}

buit bucle ( ) {
// Comproveu si hi ha dades disponibles per llegir des de Bluetooth
si ( SerialBT. disponible ( ) ) {
BT_INP = SerialBT. llegir ( ) ; // Llegeix el byte entrant de Bluetooth
Serial. escriure ( BT_INP ) ; // Fes ressò del byte de lectura al monitor sèrie
}

// Comproveu les dades Bluetooth rebudes i configureu l'estat del LED
si ( BT_INP == '1' ) {
digitalWrite ( LED_PIN , ALTA ) ; // Enceneu el LED si es rep '1'
} altra cosa si ( BT_INP == '0' ) {
digitalWrite ( LED_PIN , BAIX ) ; // Apagueu el LED si es rep '0'
}
}

Aquest codi és per a un microcontrolador ESP32 per controlar un LED mitjançant Bluetooth. Inclou una biblioteca per a la comunicació Bluetooth. A continuació, defineix el pin LED i configura Bluetooth amb un dispositiu anomenat ESP32. El bucle principal llegeix les dades de Bluetooth i encén o s'apaga el LED en funció de l'ordre rebuda (1 per ON, 0 per OFF).

Esquema de connexions

El diagrama del circuit és senzill, amb un LED connectat al pin D15 de l'ESP32. Podeu definir qualsevol altre GPIO per al control LED.

Relacionats: Referència de pinout de l'ESP32: guia definitiva

Maquinari

En el maquinari, necessitareu una placa, una placa ESP32 i un LED. Connecteu l'ESP32 amb el sistema i carregueu-hi el programa.

Ara envieu 1 i 0 des de l'aplicació de comunicacions sèrie Bluetooth del telèfon Android.

Veureu la mateixa entrada al terminal Arduino IDE rebuda des del telèfon Android.

Sortida

Un cop envieu el valor Alt o 1, el LED s'encendrà, de la mateixa manera quan envieu el valor Baix, el LED s'apagarà.

Estableix un botó personalitzat

També podeu configurar un botó personalitzat dins de l'aplicació Bluetooth sèrie. Per exemple, es pot crear un botó de valors ALTS i BAIXS. D'aquesta manera, no haureu d'escriure els valors manualment. En canvi, només heu de prémer el botó de drecera i executarà la instrucció que hàgiu establert.

Nota: Per obrir la configuració del botó, premeu llargament el botó.

Per establir el valor del botó HIGH, definiu els paràmetres següents.

Similitud per al valor del botó BAIX, heu de definir la configuració següent.

Hem connectat correctament la placa ESP32 amb un telèfon Android mitjançant Bluetooth. Ara podeu crear molts projectes utilitzant-lo. Per exemple, podeu controlar els vostres electrodomèstics mitjançant el Bluetooth ESP32 mitjançant un circuit de relé.

Relacionats: Relé amb ESP32 mitjançant Arduino IDE

Conclusió

ESP32 és una placa microcontroladora avançada amb capacitats Wi-Fi i Bluetooth. Tots dos mòduls integrats us ajuden a dissenyar projectes avançats i controlar els perifèrics sense fil. De la mateixa manera, podeu connectar l'ESP32 amb un telèfon Android i realitzar diferents operacions. Per a això, haureu d'instal·lar l'aplicació d'Android sèrie Bluetooth. Un cop instal·lat, obriu el codi d'exemple per a ESP32 Bluetooth i pengeu-lo al vostre tauler. Un cop carregat el codi, podeu vincular-lo amb el vostre tauler mitjançant un telèfon Android.