Sådan konfigureres og programmeres ESP32 til at kommunikere med en Android-smartphone via Bluetooth

Sadan Konfigureres Og Programmeres Esp32 Til At Kommunikere Med En Android Smartphone Via Bluetooth



ESP32 er et mikrocontrollerkort med en bred vifte af muligheder. Den har indbygget Wi-Fi og Bluetooth-moduler. Ved at bruge begge disse moduler kan du programmere ESP32 trådløst. Med dette behøver du ikke bekymre dig om langledningsforbindelser til styring af ESP32-ydre enheder.

I denne artikel vil vi forbinde et ESP32-kort med en Android-telefon og kommunikere data over Bluetooth. Yderligere vil vi styre en LED forbundet med GPIO-benene på ESP32 direkte gennem Android-smartphonen.

Indhold:







Hvad er ESP32 Bluetooth LE

ESP32 er et mikrocontrollerkort, der understøtter både Bluetooth Classic og Bluetooth Low energy også kendt som smart Bluetooth. BLE eller smart Bluetooth er specifik til energieffektiv kommunikation eller designet til kortdistancekommunikation eller små dataoverførsler.



ESP32's BLE-funktionalitet gør det muligt for den at fungere som en server eller en klient i Bluetooth-kommunikation. Det kan håndtere opgaver som læse- og skrivetjenester. Den kan også kryptere forbindelser og etablere Serial Port Profile (SPP) forbindelser til datatransmission i UART-BLE pass-through mode. ESP32 Bluetooth understøtter 4.2-protokollerne, hvilket betyder, at den er kompatibel med forskellige lag som Physical Layer (PHY) og Link Layer (LL). Det har også understøttelse af Host Controller Interface (HCI), blandt andre.



Tjek forskelstabellen for ESP32 Classic og BLE Bluetooth.





Feature Klassisk Bluetooth Lavenergi Bluetooth (BLE)
Kommunikationstype Vedvarende tovejskommunikation Intermitterende, primært envejs databursts
Driftsområde Kan nå op til 100 meter Kører typisk under 100 meter
Strømforbrug Forbruger op til 1 Watt Spænder fra 10 milliwatt til 500 milliwatt
Overførselshastighed Dataoverførselshastigheder varierer fra 1 til 3 megabit pr. sekund Understøtter 125 kilobit per sekund til 2 megabit per sekund
Responstid Latency omkring 100 millisekunder Hurtigt svar med 6 millisekunders latency
Stemmestøtte Udstyret med stemmetransmission Mangler stemmetransmissionsfunktionalitet

Tjek disse ESP32 Bluetooth-artikler for at få mere ind i det.

Sådan programmeres ESP32 til at kommunikere over Bluetooth med Android Smartphone

For at programmere ESP32, så den kan kommunikere med en Android-telefon ved hjælp af Bluetooth-protokollen, skal du konfigurere ESP32 Bluetooth-seriebiblioteket. Til det skal du have en Arduino IDE-opsætning med et ESP32-kort installeret.



Efter at have indstillet ESP32 Bluetooth, skal du installere Bluetooth seriel Android-applikation. Dette giver dig mulighed for at sende instruktioner fra en Android-telefon til ESP32 ved hjælp af seriel Bluetooth-kommunikation.

Lad os se nærmere på hvert af disse trin:

Trin til at forbinde ESP32 Bluetooth med Android-telefon

Følg disse givne trin for at programmere ESP32-kortet til Bluetooth-kommunikation:

Trin 1: Installation af ESP32-kortet i Arduino IDE

For at installere ESP32 på Arduino IDE skal du blot følge vejledningen i denne artikel.

Installation af ESP32-kortet i Arduino IDE

Efter installationen kan ESP32-kortet tilsluttes og programmeres ved hjælp af Arduino IDE.

Trin 2: Upload ESP32 Bluetooth-koden

Når ESP32-kortet er installeret, vil du se forskellige forudinstallerede biblioteker og deres eksempler i Arduino IDE. Alle disse biblioteker er relateret til ESP32-kortet. Til seriel Bluetooth-kommunikation vil vi bruge ESP32 BluetoothSerial.h bibliotekseksempelkode.

For at åbne eksempelkoden skal du åbne Arduino IDE og gå til: Fil > Eksempler > BluetoothSerial > SerialtoSerialBT

For at åbne denne eksempelkode skal du sørge for, at ESP32-kortet er valgt.

Efter at have åbnet eksempelkoden, vil du se følgende kode i dit Arduino IDE-vindue:

//Velkommen til Linuxhint

#include 'BluetoothSerial.h'

//#define USE_PIN // Fjern kommentarer, hvis du ønsker PIN-kode under parring
konst char * pin = '1234' ; // Definer en brugerdefineret parrings-PIN

Streng enhedsnavn = 'ESP32' ;

#if !defineret(CONFIG_BT_ENABLED) || !defineret(CONFIG_BLUEDROID_ENABLED)
#fejl Bluetooth er ikke aktiveret! Kør 'make menuconfig' for at aktivere det
#Afslut Hvis

#if !defineret(CONFIG_BT_SPP_ENABLED)
#error Seriel Bluetooth mangler eller er ikke aktiveret. Den er kun tilgængelig til ESP32-chippen.
#Afslut Hvis

BluetoothSerial SerialBT ;

ugyldig Opsætning ( ) {
Seriel. begynde ( 115200 ) ;
SerialBT. begynde ( enhedsnavn ) ; //Bluetooth-enhedsnavn
Seriel. printf ( 'Enheden ' % s ' er i gang. \n Begynd at parre din enhed! \n ' , enhedsnavn. c_str ( ) ) ;
//Serial.printf('Enheden '%s' med MAC-adressen %s er startet.\nBegynd at parre den med Bluetooth!\n', device_name.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
SerialBT. sætPin ( pin ) ;
Seriel. println ( 'Bruger pinkode' ) ;
#Afslut Hvis
}

ugyldig sløjfe ( ) {
hvis ( Seriel. ledig ( ) ) {
SerialBT. skrive ( Seriel. Læs ( ) ) ;
}
hvis ( SerialBT. ledig ( ) ) {
Seriel. skrive ( SerialBT. Læs ( ) ) ;
}
forsinke ( tyve ) ;
}

Efter upload af koden vil du se følgende besked på skærmen. Denne meddelelse beskriver, at dit ESP32-kort er klar til parring.

Trin 3: Kodeforklaring

Koden startede med at inkludere de nødvendige biblioteker og tjekke for Bluetooth tilgængelighed. Den opsætter også variabler for Bluetooth-enhedens navn og PIN-kode.

I den Opsætning() funktion, er den serielle baud-kommunikation defineret, og Bluetooth-enheden initialiseres med sit navn. En brugerdefineret PIN-kode kan indstilles til godkendelse under parring.

Det loop() funktionen kontrollerer løbende for data på de serielle og Bluetooth-forbindelser. Dette gør det muligt at etablere tovejskommunikation mellem ESP32 og en parret Bluetooth-enhed.

Trin 4: Installer Android-applikationen

Når koden er uploadet, er næste trin at installere og konfigurere Android-applikationen til Bluetooth-forbindelse.

Åbn Play Butik og installer Seriel Bluetooth-terminal Ansøgning.

Efter installationen skal du åbne smartphonens Bluetooth-indstillinger og forbinde din telefon med ESP32 Bluetooth. Hvis du har defineret en PIN-kode i Arduino IDE-koden, skal du indtaste PIN-koden, ellers forbindes den direkte.

Åbn nu Seriel Bluetooth-applikationen og vælg Enheder mulighed.

Fra den nyligt åbnede menu skal du vælge ESP32-enheden. Denne liste viser alle de aktuelt aktive Bluetooth-enheder.

Som du kan se, er ESP32 Bluetooth forbundet til din Android-smartphone.

For at teste forbindelsen sender vi en streng. Her har jeg sendt to forskellige strenge.

Du vil bemærke, at de samme to strenge også vil blive vist på Arduino IDE-terminalen.

Lad os nu gå et skridt videre og styre en ekstern periferiudstyr som en LED ved hjælp af ESP32 Bluetooth gennem Android-smartphonen.

Trin 5: Styr en LED ved hjælp af en Android-telefon via Bluetooth

For at styre en LED ved hjælp af ESP32 og Android Bluetooth skal du først ændre ovenstående kode og definere en GPIO-pin til LED'en. Derefter skal du indstille værdierne for at tænde og slukke for LED'en.

Upload koden nedenfor for at komme videre.

#include // Inkluder Bluetooth seriel kommunikationsbibliotek

#define LED_PIN 15 // Definer LED-stiften

BluetoothSerial SerialBT ; // Opret et BluetoothSerial-objekt
byte BT_INP ; // Variabel til at gemme Bluetooth-input

// Tjek, om Bluetooth og Bluedroid er aktiveret i SDK-konfigurationen
#if !defineret(CONFIG_BT_ENABLED) || !defineret(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth er ikke aktiveret. Kør 'make menuconfig' for at aktivere det.
#Afslut Hvis

ugyldig Opsætning ( ) {
pinMode ( LED_PIN , PRODUKTION ) ; // Indstil LED-stiften som en udgang
Seriel. begynde ( 115200 ) ;
SerialBT. begynde ( 'ESP32' ) ; // Initialiser Bluetooth med navnet 'ESP32'
Seriel. println ( 'Bluetooth-enhed er klar til parring.' ) ; // Angiv, at Bluetooth er klar
}

ugyldig sløjfe ( ) {
// Tjek, om der er nogen tilgængelige data at læse fra Bluetooth
hvis ( SerialBT. ledig ( ) ) {
BT_INP = SerialBT. Læs ( ) ; // Læs den indgående byte fra Bluetooth
Seriel. skrive ( BT_INP ) ; // Ekko læsebyten til den serielle monitor
}

// Kontroller de modtagne Bluetooth-data og indstil LED-tilstanden
hvis ( BT_INP == '1' ) {
digitalSkriv ( LED_PIN , HØJ ) ; // Tænd LED'en, hvis '1' modtages
} andet hvis ( BT_INP == '0' ) {
digitalSkriv ( LED_PIN , LAV ) ; // Sluk LED'en, hvis '0' modtages
}
}

Denne kode er til en ESP32 mikrocontroller til at styre en LED ved hjælp af Bluetooth. Det inkluderer et bibliotek til Bluetooth-kommunikation. Dernæst definerer den LED-stiften og sætter Bluetooth op med en enhed ved navn ESP32. Hovedsløjfen læser Bluetooth-data og tænder eller slukker LED'en baseret på den modtagne kommando (1 for ON, 0 for OFF).

Kredsløbsdiagram

Kredsløbsdiagrammet er enkelt, med en LED tilsluttet på pin D15 af ESP32. Du kan definere enhver anden GPIO til LED-styring.

Relaterede: ESP32 Pinout Reference – Ultimativ vejledning

Hardware

I hardware skal du bruge et brødbræt, et ESP32-kort og en LED. Forbind ESP32 med systemet og upload programmet til det.

Send nu 1 og 0 fra Android-telefonens Bluetooth seriel kommunikationsapplikation.

Du vil se det samme input på Arduino IDE-terminalen modtaget fra Android-telefonen.

Produktion

Når du sender den høje eller 1 værdi, vil LED'en tænde, ligesom når du sender den lave værdi, vil LED'en slukke.

Indstil en brugerdefineret knap

Du kan også indstille en brugerdefineret knap i Serial Bluetooth-applikationen. For eksempel kan der oprettes en knap med HØJ og LAVE værdier. På denne måde behøver du ikke indtaste værdierne manuelt. I stedet skal du bare trykke på genvejsknappen, og den vil udføre den instruktion, du har indstillet.

Bemærk: Tryk længe på knappen for at åbne knapindstillingerne.

For at indstille HIGH-knappens værdi skal du definere følgende indstillinger.

Ligesom for LOW-knappens værdi, skal du definere nedenstående indstillinger.

Vi har med succes forbundet ESP32-kortet med en Android-telefon ved hjælp af Bluetooth. Nu kan du oprette mange projekter ved hjælp af det. Ligesom du kan styre dine husholdningsapparater ved hjælp af ESP32 Bluetooth gennem et relækredsløb.

Relaterede: Relæ med ESP32 Bruger Arduino IDE

Konklusion

ESP32 er et avanceret mikrocontrollerkort med Wi-Fi og Bluetooth-funktioner. Begge disse indbyggede moduler hjælper dig med at designe avancerede projekter og styre de eksterne enheder trådløst. På samme måde kan du forbinde ESP32 med en Android-telefon og udføre forskellige handlinger. Til det skal du installere Bluetooth Serial Android-applikationen. Når den er installeret, skal du åbne eksempelkoden for ESP32 Bluetooth og uploade den til dit board. Når koden er uploadet, kan du parre den med dit board via en Android-telefon.