Hvordan sette opp og programmere ESP32 til å kommunisere med en Android-smarttelefon via Bluetooth

Hvordan Sette Opp Og Programmere Esp32 Til A Kommunisere Med En Android Smarttelefon Via Bluetooth



ESP32 er et mikrokontrollerkort med et stort utvalg av funksjoner. Den har innebygde Wi-Fi- og Bluetooth-moduler. Ved å bruke begge disse modulene kan du programmere ESP32 trådløst. Med dette trenger du ikke å bekymre deg for tilkoblinger med lang ledning for å kontrollere ESP32-tilbehør.

I denne artikkelen vil vi koble et ESP32-kort med en Android-telefon og kommunisere data over Bluetooth. Videre vil vi kontrollere en LED koblet med GPIO-pinnene til ESP32 direkte gjennom Android-smarttelefonen.

Innhold:







Hva er ESP32 Bluetooth LE

ESP32 er et mikrokontrollerkort som støtter både Bluetooth Classic og Bluetooth Low energy også kjent som smart Bluetooth. BLE eller smart Bluetooth er spesifikk for energieffektiv kommunikasjon eller designet for kortdistansekommunikasjon eller små dataoverføringer.



ESP32s BLE-funksjonalitet gjør at den kan fungere som en server eller en klient i Bluetooth-kommunikasjon. Den kan håndtere oppgaver som lese- og skrivetjenester. Den kan også kryptere tilkoblinger og etablere Serial Port Profile (SPP) tilkoblinger for dataoverføring i UART-BLE pass-through-modus. ESP32 Bluetooth støtter 4.2-protokollene, noe som betyr at den er kompatibel med forskjellige lag som Physical Layer (PHY) og Link Layer (LL). Den har også støtte for blant annet Host Controller Interface (HCI).



Sjekk forskjellstabellen for ESP32 Classic og BLE Bluetooth.





Trekk Klassisk Bluetooth Lavenergi Bluetooth (BLE)
Kommunikasjonstype Vedvarende, toveis kommunikasjon Intermitterende, primært enveis datautbrudd
Driftsområde Kan nå opptil 100 meter Fungerer vanligvis under 100 meter
Strømforbruk Forbruker opptil 1 watt Varierer fra 10 milliwatt til 500 milliwatt
Overføringshastighet Dataoverføringshastigheter varierer fra 1 til 3 megabit per sekund Støtter 125 kilobit per sekund til 2 megabit per sekund
Responstid Latens rundt 100 millisekunder Rask respons med 6 millisekunders latens
Stemmestøtte Utstyrt med taleoverføring Mangler stemmeoverføringsfunksjonalitet

Sjekk ut disse ESP32 Bluetooth-artiklene for å få mer inn i den.

Hvordan programmere ESP32 til å kommunisere over Bluetooth med Android-smarttelefon

For å programmere ESP32 slik at den kan kommunisere med en Android-telefon ved hjelp av Bluetooth-protokollen, må du sette opp ESP32 Bluetooth-seriebiblioteket. For det må du ha et Arduino IDE-oppsett med et ESP32-kort installert.



Etter at du har stilt inn ESP32 Bluetooth, må du installere den serielle Bluetooth-applikasjonen for Android. Dette lar deg sende instruksjoner fra en Android-telefon til ESP32 ved hjelp av seriell Bluetooth-kommunikasjon.

La oss se nærmere på hvert av disse trinnene:

Trinn for tilkobling av ESP32 Bluetooth med Android-telefon

For å programmere ESP32-kortet for Bluetooth-kommunikasjon, følg disse gitte trinnene:

Trinn 1: Installere ESP32-kortet i Arduino IDE

For å installere ESP32 på Arduino IDE, følg ganske enkelt veiledningen i denne artikkelen.

Installere ESP32-kortet i Arduino IDE

Etter installasjonen kan ESP32-kortet kobles til og programmeres ved hjelp av Arduino IDE.

Trinn 2: Last opp ESP32 Bluetooth-koden

Når ESP32-kortet er installert, vil du se forskjellige forhåndsinstallerte biblioteker og deres eksempler i Arduino IDE. Alle disse bibliotekene er relatert til ESP32-kortet. For seriell Bluetooth-kommunikasjon skal vi bruke ESP32 BluetoothSerial.h eksempelkode for bibliotek.

For å åpne eksempelkoden, åpne Arduino IDE og gå til: Fil > Eksempler > BluetoothSerial > SerialtoSerialBT

For å åpne denne eksempelkoden, sørg for at ESP32-kortet er valgt.

Etter å ha åpnet eksempelkoden, vil du se følgende kode i Arduino IDE-vinduet ditt:

//Velkommen til Linuxhint

#include 'BluetoothSerial.h'

//#define USE_PIN // Fjern kommentaren hvis du vil ha PIN-kode under sammenkobling
konst røye * pin = '1234' ; // Definer en egendefinert parings-PIN

Streng enhetsnavn = 'ESP32' ;

#if !definert(CONFIG_BT_ENABLED) || !definert(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth er ikke aktivert! Kjør 'make menuconfig' for å aktivere det
#slutt om

#if !definert(CONFIG_BT_SPP_ENABLED)
#error Seriell Bluetooth mangler eller er ikke aktivert. Den er kun tilgjengelig for ESP32-brikken.
#slutt om

BluetoothSerial SerialBT ;

tomrom oppsett ( ) {
Seriell. begynne ( 115200 ) ;
SerialBT. begynne ( enhetsnavn ) ; //Bluetooth-enhetsnavn
Seriell. printf ( 'Enheten ' % s ' er startet. \n Begynn å pare enheten din! \n ' , enhetsnavn. c_str ( ) ) ;
//Serial.printf('Enheten '%s' med MAC-adressen %s er startet.\nBegynn å pare den med Bluetooth!\n', device_name.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
SerialBT. settPin ( pin ) ;
Seriell. println ( 'Bruker PIN' ) ;
#slutt om
}

tomrom Løkke ( ) {
hvis ( Seriell. tilgjengelig ( ) ) {
SerialBT. skrive ( Seriell. lese ( ) ) ;
}
hvis ( SerialBT. tilgjengelig ( ) ) {
Seriell. skrive ( SerialBT. lese ( ) ) ;
}
forsinkelse ( tjue ) ;
}

Etter å ha lastet opp koden, vil du se følgende melding på skjermen. Denne meldingen beskriver at ESP32-kortet ditt er klart for sammenkobling.

Trinn 3: Kodeforklaring

Koden startet med å inkludere de nødvendige bibliotekene og sjekke for Bluetooth-tilgjengelighet. Den setter også opp variabler for Bluetooth-enhetsnavnet og PIN-koden.

I oppsett() funksjon, er den serielle baud-kommunikasjonen definert og Bluetooth-enheten initialisert med navnet. En egendefinert PIN-kode kan angis for autentisering under sammenkobling.

De Løkke() funksjonen sjekker kontinuerlig for data på serie- og Bluetooth-tilkoblingene. Dette lar den etablere toveiskommunikasjon mellom ESP32 og en sammenkoblet Bluetooth-enhet.

Trinn 4: Installer Android-applikasjonen

Når koden er lastet opp, er neste trinn å installere og konfigurere Android-applikasjonen for Bluetooth-tilkobling.

Åpne Play Store og installer Seriell Bluetooth-terminal applikasjon.

Etter installasjonen åpner du smarttelefonens Bluetooth-innstillinger og kobler telefonen til ESP32 Bluetooth. Hvis du har definert en PIN-kode i Arduino IDE-koden, må du angi PIN-koden, ellers kobles den til direkte.

Åpne nå Seriell Bluetooth-applikasjonen og velg Enheter alternativ.

Fra den nylig åpnede menyen velger du ESP32-enheten. Denne listen viser alle aktive Bluetooth-enheter.

Som du kan se, er ESP32 Bluetooth koblet til din Android-smarttelefon.

For å teste forbindelsen skal vi sende en streng. Her har jeg sendt to forskjellige strenger.

Du vil legge merke til at de samme to strengene også vises på Arduino IDE-terminalen.

La oss nå gå ett skritt videre og kontrollere en ekstern periferienhet som en LED ved hjelp av ESP32 Bluetooth gjennom Android-smarttelefonen.

Trinn 5: Kontroller en LED ved hjelp av en Android-telefon via Bluetooth

For å kontrollere en LED ved hjelp av ESP32 og Android Bluetooth, må du først endre koden ovenfor og definere en GPIO-pin for LED. Etter det må du stille inn verdiene for å slå PÅ og AV LED.

Last opp koden nedenfor for å gå videre.

#include // Inkluder Bluetooth seriell kommunikasjonsbibliotek

#define LED_PIN 15 // Definer LED-pinnen

BluetoothSerial SerialBT ; // Lag et BluetoothSerial-objekt
byte BT_INP ; // Variabel for å lagre Bluetooth-inngang

// Sjekk om Bluetooth og Bluedroid er aktivert i SDK-konfigurasjonen
#if !definert(CONFIG_BT_ENABLED) || !definert(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth er ikke aktivert. Kjør 'make menuconfig' for å aktivere det.
#slutt om

tomrom oppsett ( ) {
pin-modus ( LED_PIN , PRODUKSJON ) ; // Sett LED-pinnen som en utgang
Seriell. begynne ( 115200 ) ;
SerialBT. begynne ( 'ESP32' ) ; // Initialiser Bluetooth med navnet 'ESP32'
Seriell. println ( 'Bluetooth-enheten er klar til sammenkobling.' ) ; // Indikerer at Bluetooth er klar
}

tomrom Løkke ( ) {
// Sjekk om det er noen data tilgjengelig for å lese fra Bluetooth
hvis ( SerialBT. tilgjengelig ( ) ) {
BT_INP = SerialBT. lese ( ) ; // Les den innkommende byten fra Bluetooth
Seriell. skrive ( BT_INP ) ; // Ekko lesebyten til den serielle monitoren
}

// Sjekk de mottatte Bluetooth-dataene og still inn LED-tilstanden
hvis ( BT_INP == '1' ) {
digitalWrite ( LED_PIN , HØY ) ; // Slå på LED hvis '1' mottas
} ellers hvis ( BT_INP == '0' ) {
digitalWrite ( LED_PIN , LAV ) ; // Slå av LED hvis '0' mottas
}
}

Denne koden er for en ESP32 mikrokontroller for å kontrollere en LED ved hjelp av Bluetooth. Den inkluderer et bibliotek for Bluetooth-kommunikasjon. Deretter definerer den LED-pinnen og setter opp Bluetooth med en enhet som heter ESP32. Hovedsløyfen leser Bluetooth-data og slår LED PÅ eller AV basert på den mottatte kommandoen (1 for PÅ, 0 for AV).

Kretsdiagram

Kretsskjemaet er enkelt, med en LED koblet til pinne D15 av ESP32. Du kan definere hvilken som helst annen GPIO for LED-kontroll.

I slekt: ESP32 Pinout Reference – Ultimate Guide

Maskinvare

I maskinvare trenger du et brødbrett, et ESP32-kort og en LED. Koble ESP32 til systemet og last opp programmet til det.

Send nå 1 og 0 fra Android-telefonens Bluetooth seriell kommunikasjonsapplikasjon.

Du vil se den samme inngangen på Arduino IDE-terminalen mottatt fra Android-telefonen.

Produksjon

Når du sender den høye eller 1 verdien, vil LED-en slå seg PÅ, på samme måte når du sender den lave verdien, vil LED-en slå seg AV.

Angi en egendefinert knapp

Du kan også angi en egendefinert knapp i Serial Bluetooth-applikasjonen. For eksempel kan en knapp for HØYE og LAVE verdier opprettes. På denne måten trenger du ikke å skrive inn verdiene manuelt. I stedet må du bare trykke på snarveisknappen, og den vil utføre instruksjonen du angir.

Merk: For å åpne knappeinnstillingene, trykk lenge over knappen.

For å angi HIGH-knappens verdi, definer følgende innstillinger.

Likhet for LOW-knappens verdi, må du definere innstillingene nedenfor.

Vi har koblet ESP32-kortet med en Android-telefon ved hjelp av Bluetooth. Nå kan du lage mange prosjekter ved å bruke den. Som, du kan kontrollere husholdningsapparater ved hjelp av ESP32 Bluetooth gjennom en relékrets.

I slekt: Relé med ESP32 Bruker Arduino IDE

Konklusjon

ESP32 er et avansert mikrokontrollerkort med Wi-Fi og Bluetooth-funksjoner. Begge disse innebygde modulene hjelper deg med å designe avanserte prosjekter og kontrollere eksterne enheter trådløst. På samme måte kan du koble ESP32 til en Android-telefon og utføre forskjellige operasjoner. For det må du installere Bluetooth Serial Android-applikasjonen. Når den er installert, åpner du eksempelkoden for ESP32 Bluetooth og laster den opp til tavlen. Når koden er lastet opp, kan du pare den med brettet ditt via en Android-telefon.