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
- Kako programirati ESP32 za komunikacijo prek Bluetooth s pametnim telefonom Android
- Koraki za povezavo ESP32 Bluetooth s telefonom Android
- Shema vezja
- Strojna oprema
- Izhod
- Zaključek
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.
- ESP32 Bluetooth – najboljši vodnik
- ESP32 – Bluetooth Classic proti Bluetooth Low Energy (BLE)
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#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.