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
- Com programar ESP32 per comunicar-se per Bluetooth amb un telèfon intel·ligent Android
- Passos per connectar l'ESP32 Bluetooth amb el telèfon Android
- Esquema de connexions
- Maquinari
- Sortida
- Conclusió
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ó.
- ESP32 Bluetooth - Guia definitiva
- ESP32: Bluetooth Classic vs Bluetooth Low Energy (BLE)
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#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.