Kako nastaviti in programirati ESP32 za komunikacijo s pametnim telefonom Android prek Bluetooth

Kako Nastaviti In Programirati Esp32 Za Komunikacijo S Pametnim Telefonom Android Prek Bluetooth



ESP32 je mikrokontrolerska plošča s široko paleto zmogljivosti. Ima vgrajene module Wi-Fi in Bluetooth. Z uporabo obeh modulov lahko brezžično programirate ESP32. S tem vam ni treba skrbeti za dolgožične povezave za krmiljenje perifernih naprav ESP32.

V tem članku bomo povezali ploščo ESP32 s telefonom Android in sporočili podatke prek Bluetootha. Nadalje bomo upravljali LED, povezano z GPIO zatiči ESP32 neposredno prek pametnega telefona Android.

Vsebina:







Kaj je ESP32 Bluetooth LE

ESP32 je mikrokrmilniška plošča, ki podpira Bluetooth Classic in Bluetooth Low Energy, znan tudi kot pametni Bluetooth. BLE ali pametni Bluetooth je specifičen za energetsko učinkovito komunikacijo ali zasnovan za komunikacijo kratkega dosega ali majhne prenose podatkov.



Funkcionalnost BLE ESP32 mu omogoča, da deluje kot strežnik ali odjemalec v komunikaciji Bluetooth. Lahko opravlja naloge, kot so storitve branja in pisanja. Prav tako lahko šifrira povezave in vzpostavi povezave Serial Port Profile (SPP) za prenos podatkov v prehodnem načinu UART-BLE. ESP32 Bluetooth podpira protokole 4.2, kar pomeni, da je združljiv z različnimi plastmi, kot sta fizična plast (PHY) in povezovalna plast (LL). Med drugim ima tudi podporo za Host Controller Interface (HCI).



Preverite tabelo razlik za ESP32 Classic in BLE Bluetooth.





Funkcija Klasični Bluetooth Low Energy Bluetooth (BLE)
Vrsta komunikacije Trajna, dvosmerna komunikacija Občasni, predvsem enosmerni podatkovni izbruhi
Operativno območje Lahko doseže do 100 metrov Običajno deluje pod 100 metri
Poraba energije Poraba do 1 W Razpon od 10 milivatov do 500 milivatov
Hitrost prenosa Hitrosti prenosa podatkov se gibljejo od 1 do 3 megabitov na sekundo Podpira 125 kilobitov na sekundo do 2 megabita na sekundo
Odzivni čas Zakasnitev okoli 100 milisekund Hiter odziv s 6 milisekundno zakasnitvijo
Glasovna podpora Opremljen z glasovnim prenosom Nima funkcije prenosa glasu

Oglejte si te članke o ESP32 Bluetooth, če želite izvedeti več o tem.

Kako programirati ESP32 za komunikacijo prek Bluetooth s pametnim telefonom Android

Če želite programirati ESP32, tako da lahko komunicira s telefonom Android prek protokola Bluetooth, morate nastaviti serijsko knjižnico Bluetooth ESP32. Za to morate imeti nastavitev Arduino IDE z nameščeno ploščo ESP32.



Ko nastavite Bluetooth ESP32, morate namestiti serijsko aplikacijo Bluetooth za Android. To vam bo omogočilo pošiljanje navodil iz telefona Android v ESP32 prek serijske komunikacije Bluetooth.

Oglejmo si podrobneje vsakega od teh korakov:

Koraki za povezavo ESP32 Bluetooth s telefonom Android

Če želite programirati ploščo ESP32 za komunikacijo Bluetooth, sledite tem korakom:

1. korak: Namestitev plošče ESP32 v Arduino IDE

Če želite namestiti ESP32 na Arduino IDE, preprosto sledite navodilom v tem članku.

Namestitev plošče ESP32 v Arduino IDE

Po namestitvi lahko ploščo ESP32 povežete in programirate z uporabo Arduino IDE.

2. korak: naložite kodo Bluetooth ESP32

Ko je plošča ESP32 nameščena, boste v Arduino IDE videli različne vnaprej nameščene knjižnice in njihove primere. Vse te knjižnice so povezane s ploščo ESP32. Za serijsko komunikacijo Bluetooth bomo uporabili ESP32 BluetoothSerial.h primer kode knjižnice.

Če želite odpreti primer kode, odprite Arduino IDE in pojdite na: Datoteka > Primeri > BluetoothSerial > SerialtoSerialBT

Če želite odpreti ta primer kode, se prepričajte, da je izbrana plošča ESP32.

Ko odprete primer kode, boste v oknu Arduino IDE videli naslednjo kodo:

//Dobrodošli v Linuxhintu

#include 'BluetoothSerial.h'

//#define USE_PIN // Odkomentirajte to, če želite PIN med seznanjanjem
konst char * zatič = '1234' ; // Določite kodo PIN za seznanjanje po meri

Niz ime_naprave = 'ESP32' ;

#if !defined(CONFIG_BT_ENABLED) || !definirano(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth ni omogočen! Zaženite `make menuconfig`, da ga omogočite
#endif

#if !defined(CONFIG_BT_SPP_ENABLED)
#error Serijski Bluetooth manjka ali ni omogočen. Na voljo je samo za čip ESP32.
#endif

BluetoothSerial SerialBT ;

praznina nastaviti ( ) {
Serijski. začeti ( 115200 ) ;
SerialBT. začeti ( Ime naprave ) ; //Ime naprave Bluetooth
Serijski. printf ( 'Naprava' % s « se začne. \n Začnite seznanjati svojo napravo! \n ' , Ime naprave. c_str ( ) ) ;
//Serial.printf('Naprava '%s' z naslovom MAC %s je zagnana.\nZačnite jo seznanjati z Bluetooth!\n', device_name.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
SerialBT. setPin ( zatič ) ;
Serijski. println ( 'Uporaba kode PIN' ) ;
#endif
}

praznina zanka ( ) {
če ( Serijski. na voljo ( ) ) {
SerialBT. pisati ( Serijski. prebrati ( ) ) ;
}
če ( SerialBT. na voljo ( ) ) {
Serijski. pisati ( SerialBT. prebrati ( ) ) ;
}
zamuda ( dvajset ) ;
}

Ko naložite kodo, boste na zaslonu videli naslednje sporočilo. To sporočilo opisuje, da je vaša plošča ESP32 pripravljena za seznanjanje.

3. korak: Razlaga kode

Koda se je začela z vključitvijo potrebnih knjižnic in preverjanjem razpoložljivosti Bluetooth. Nastavi tudi spremenljivke za ime naprave Bluetooth in kodo PIN.

V nastaviti() funkcija, se serijska baudna komunikacija definira in naprava Bluetooth se inicializira z njenim imenom. PIN po meri lahko nastavite za preverjanje pristnosti med združevanjem.

The zanka() funkcija stalno preverja podatke o serijski in Bluetooth povezavi. To omogoča vzpostavitev dvosmerne komunikacije med ESP32 in seznanjeno napravo Bluetooth.

4. korak: Namestite aplikacijo za Android

Ko je koda naložena, je naslednji korak namestitev in konfiguracija aplikacije Android za povezavo Bluetooth.

Odprite Trgovino Play in namestite Serijski terminal Bluetooth aplikacija.

Po namestitvi odprite nastavitve Bluetooth pametnega telefona in povežite telefon z ESP32 Bluetooth. Če ste določili PIN v kodi Arduino IDE, morate vnesti PIN, sicer se bo vzpostavila neposredna povezava.

Zdaj odprite aplikacijo Serial Bluetooth in izberite Naprave možnost.

V novo odprtem meniju izberite napravo ESP32. Ta seznam prikazuje vse trenutno aktivne naprave Bluetooth.

Kot lahko vidite, je ESP32 Bluetooth povezan z vašim pametnim telefonom Android.

Za preizkus povezave bomo poslali niz. Tukaj sem poslal dva različna niza.

Opazili boste, da bosta ista dva niza prikazana tudi na terminalu Arduino IDE.

Zdaj pa pojdimo še korak dlje in upravljajmo zunanjo periferno napravo, kot je LED, z ESP32 Bluetooth prek pametnega telefona Android.

5. korak: Upravljajte LED s telefonom Android prek povezave Bluetooth

Če želite upravljati LED s pomočjo ESP32 in Android Bluetooth, najprej spremenite zgornjo kodo in določite pin GPIO za LED. Po tem morate nastaviti vrednosti za vklop in izklop LED.

Za nadaljevanje naložite spodnjo kodo.

#include // Vključi knjižnico serijske komunikacije Bluetooth

#define LED_PIN 15 // Definirajte LED pin

BluetoothSerial SerialBT ; // Ustvari objekt BluetoothSerial
bajt BT_INP ; // Spremenljivka za shranjevanje vnosa Bluetooth

// Preverite, ali sta Bluetooth in Bluedroid omogočena v konfiguraciji SDK
#if !defined(CONFIG_BT_ENABLED) || !definirano(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth ni omogočen. Zaženite `make menuconfig`, da ga omogočite.
#endif

praznina nastaviti ( ) {
pinMode ( LED_PIN , IZHOD ) ; // Nastavite zatič LED kot izhod
Serijski. začeti ( 115200 ) ;
SerialBT. začeti ( 'ESP32' ) ; // Inicializiraj Bluetooth z imenom 'ESP32'
Serijski. println ( 'Bluetooth naprava je pripravljena za seznanitev.' ) ; // Označuje, da je Bluetooth pripravljen
}

praznina zanka ( ) {
// Preverite, ali so na voljo kakršni koli podatki za branje iz Bluetootha
če ( SerialBT. na voljo ( ) ) {
BT_INP = SerialBT. prebrati ( ) ; // Branje dohodnega bajta iz Bluetootha
Serijski. pisati ( BT_INP ) ; // Odmev prebranega bajta na serijski monitor
}

// Preverite prejete podatke Bluetooth in nastavite stanje LED
če ( BT_INP == '1' ) {
digitalWrite ( LED_PIN , VISOKA ) ; // Vklopi LED, če je prejeto '1'
} drugače če ( BT_INP == '0' ) {
digitalWrite ( LED_PIN , NIZKA ) ; // Izklopi LED, če je prejeto '0'
}
}

Ta koda je za mikrokrmilnik ESP32 za nadzor LED z uporabo Bluetooth. Vključuje knjižnico za komunikacijo Bluetooth. Nato definira LED pin in nastavi Bluetooth z napravo z imenom ESP32. Glavna zanka bere podatke Bluetooth in vklopi ali izklopi LED na podlagi prejetega ukaza (1 za VKLOP, 0 za IZKLOP).

Shema vezja

Shema vezja je preprosta, z LED priključeno na nožico D15 od ESP32. Za nadzor LED lahko določite kateri koli drug GPIO.

Sorodno: ESP32 Reference Pinout–Ultimate Guide

Strojna oprema

Kar zadeva strojno opremo, boste potrebovali testno ploščo, ploščo ESP32 in LED. Povežite ESP32 s sistemom in vanj naložite program.

Zdaj pošljite 1 in 0 iz serijske komunikacijske aplikacije Bluetooth telefona Android.

Enak vnos boste videli na terminalu Arduino IDE, prejetem iz telefona Android.

Izhod

Ko pošljete vrednost High ali 1, se LED dioda prižge, podobno pa se bo LED ugasne, ko pošljete vrednost Low.

Nastavite gumb po meri

V aplikaciji Serial Bluetooth lahko nastavite tudi gumb po meri. Ustvarite lahko na primer gumb za VISOKE in NIZKE vrednosti. Tako vam ni treba ročno vnašati vrednosti. Namesto tega morate samo pritisniti gumb za bližnjico in ta bo izvedel navodilo, ki ste ga nastavili.

Opomba: Če želite odpreti nastavitve gumba, dolgo pritisnite na gumb.

Če želite nastaviti vrednost gumba HIGH, določite naslednje nastavitve.

Podobnost za vrednost gumba LOW, določiti morate spodnje nastavitve.

Ploščo ESP32 smo uspešno povezali s telefonom Android prek Bluetootha. Zdaj lahko z njim ustvarite številne projekte. Na primer, lahko nadzorujete svoje gospodinjske aparate z uporabo ESP32 Bluetooth prek relejnega vezja.

Sorodno: Rele z ESP32 z uporabo Arduino IDE

Zaključek

ESP32 je napredna mikrokontrolerska plošča z zmogljivostmi Wi-Fi in Bluetooth. Oba vgrajena modula vam pomagata pri oblikovanju naprednih projektov in brezžičnem nadzoru perifernih naprav. Podobno lahko povežete ESP32 s telefonom Android in izvajate različne operacije. Za to boste morali namestiti aplikacijo Bluetooth Serial Android. Ko je nameščen, odprite primer kode za ESP32 Bluetooth in jo naložite na svojo ploščo. Ko je koda naložena, jo lahko seznanite s svojo ploščo prek telefona Android.