Kako postaviti i programirati ESP32 za komunikaciju s Android pametnim telefonom putem Bluetootha

Kako Postaviti I Programirati Esp32 Za Komunikaciju S Android Pametnim Telefonom Putem Bluetootha



ESP32 je mikrokontrolerska ploča sa širokim rasponom mogućnosti. Ima ugrađene Wi-Fi i Bluetooth module. Koristeći oba ova modula, možete bežično programirati ESP32. Uz ovo, ne morate brinuti o vezama dugih žica za kontrolu perifernih uređaja ESP32.

U ovom ćemo članku povezati ESP32 ploču s Android telefonom i komunicirati podatke putem Bluetootha. Nadalje, kontrolirat ćemo LED diodu povezanu s GPIO pinovima ESP32 izravno putem Android pametnog telefona.

Sadržaj:







Što je ESP32 Bluetooth LE

ESP32 je mikrokontrolerska ploča koja podržava i Bluetooth Classic i Bluetooth Low Energy poznat i kao pametni Bluetooth. BLE ili pametni Bluetooth specifičan je za energetski učinkovitu komunikaciju ili dizajniran za komunikaciju kratkog dometa ili male prijenose podataka.



Funkcionalnost BLE ESP32 omogućuje mu da djeluje kao poslužitelj ili klijent u Bluetooth komunikaciji. Može se nositi sa zadacima poput usluga čitanja i pisanja. Također može šifrirati veze i uspostaviti veze Serial Port Profile (SPP) za prijenos podataka u UART-BLE prolaznom načinu rada. ESP32 Bluetooth podržava 4.2 protokole, što znači da je kompatibilan s različitim slojevima kao što su fizički sloj (PHY) i sloj veze (LL). Također ima podršku za Host Controller Interface (HCI), između ostalog.



Provjerite tablicu razlika za ESP32 Classic i BLE Bluetooth.





Značajka Klasični Bluetooth Low Energy Bluetooth (BLE)
Vrsta komunikacije Održiva, dvosmjerna komunikacija Isprekidani, prvenstveno jednosmjerni paketi podataka
Operativni domet Može doseći i do 100 metara Obično radi ispod 100 metara
Potrošnja energije Troši do 1 Watt U rasponu od 10 milivata do 500 milivata
Brzina prijenosa Brzine prijenosa podataka variraju od 1 do 3 megabita u sekundi Podržava 125 kilobita u sekundi do 2 megabita u sekundi
Vrijeme odziva Latencija oko 100 milisekundi Brz odgovor s kašnjenjem od 6 milisekundi
Glasovna podrška Opremljen prijenosom glasa Nedostaje funkcija prijenosa glasa

Pogledajte ove članke o ESP32 Bluetoothu da saznate više o tome.

Kako programirati ESP32 za komunikaciju putem Bluetootha s Android pametnim telefonom

Da biste programirali ESP32 tako da može komunicirati s Android telefonom pomoću Bluetooth protokola, morate postaviti ESP32 Bluetooth serijsku biblioteku. Za to morate imati Arduino IDE postavke s instaliranom ESP32 pločom.



Nakon postavljanja ESP32 Bluetootha, morate instalirati Bluetooth serijsku Android aplikaciju. To će vam omogućiti slanje uputa s Android telefona na ESP32 pomoću Bluetooth serijske komunikacije.

Pogledajmo pobliže svaki od ovih koraka:

Koraci za povezivanje ESP32 Bluetooth s Android telefonom

Za programiranje ESP32 ploče za Bluetooth komunikaciju, slijedite ove korake:

Korak 1: Instaliranje ESP32 ploče u Arduino IDE

Da biste instalirali ESP32 na Arduino IDE, jednostavno slijedite vodič u ovom članku.

Instaliranje ESP32 ploče u Arduino IDE

Nakon instalacije, ESP32 ploča se može spojiti i programirati pomoću Arduino IDE.

Korak 2: Učitajte ESP32 Bluetooth kod

Nakon što je ESP32 ploča instalirana, vidjet ćete različite unaprijed instalirane biblioteke i njihove primjere u Arduino IDE. Sve ove biblioteke povezane su s ESP32 pločom. Za Bluetooth serijsku komunikaciju, koristit ćemo ESP32 BluetoothSerial.h primjer koda knjižnice.

Da biste otvorili primjer koda, otvorite Arduino IDE i idite na: Datoteka > Primjeri > BluetoothSerial > SerialtoSerialBT

Da biste otvorili ovaj primjer koda, provjerite je li odabrana ploča ESP32.

Nakon otvaranja primjera koda, vidjet ćete sljedeći kod u vašem Arduino IDE prozoru:

//Dobrodošli u Linuxhint

#include 'BluetoothSerial.h'

//#define USE_PIN // Odkomentirajte ovo ako želite PIN tijekom uparivanja
konst char * pribadača = '1234' ; // Definirajte prilagođeni PIN za uparivanje

String device_name = 'ESP32' ;

#if !defined(CONFIG_BT_ENABLED) || !definirano(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth nije omogućen! Pokrenite `make menuconfig` da biste ga omogućili
#završi ako

#if !defined(CONFIG_BT_SPP_ENABLED)
#error Serijski Bluetooth nedostaje ili nije omogućen. Dostupan je samo za ESP32 čip.
#završi ako

BluetoothSerial SerialBT ;

poništiti postaviti ( ) {
Serijski. početi ( 115200 ) ;
SerialBT. početi ( Naziv uređaja ) ; //Naziv Bluetooth uređaja
Serijski. printf ( 'Uređaj ' % s ' je pokrenut. \n Započnite uparivanje svog uređaja! \n ' , Naziv uređaja. c_str ( ) ) ;
//Serial.printf('Uređaj '%s' s MAC adresom %s je pokrenut.\nPočnite ga upariti s Bluetoothom!\n', device_name.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
SerialBT. setPin ( pribadača ) ;
Serijski. println ( 'Korištenje PIN-a' ) ;
#završi ako
}

poništiti petlja ( ) {
ako ( Serijski. dostupno ( ) ) {
SerialBT. pisati ( Serijski. čitati ( ) ) ;
}
ako ( SerialBT. dostupno ( ) ) {
Serijski. pisati ( SerialBT. čitati ( ) ) ;
}
odgoditi ( dvadeset ) ;
}

Nakon učitavanja koda, vidjet ćete sljedeću poruku na ekranu. Ova poruka opisuje da je vaša ESP32 ploča spremna za uparivanje.

Korak 3: Objašnjenje koda

Kod je započeo uključivanjem potrebnih biblioteka i provjerom dostupnosti Bluetootha. Također postavlja varijable za naziv Bluetooth uređaja i PIN.

u postaviti() funkcija, definira se serijska baud komunikacija i Bluetooth uređaj se inicijalizira njegovim imenom. Prilagođeni PIN može se postaviti za provjeru autentičnosti tijekom uparivanja.

The petlja() funkcija kontinuirano provjerava podatke o serijskim i Bluetooth vezama. To mu omogućuje uspostavljanje dvosmjerne komunikacije između ESP32 i uparenog Bluetooth uređaja.

Korak 4: Instalirajte Android aplikaciju

Nakon što se kod učita, sljedeći korak je instalacija i konfiguracija Android aplikacije za Bluetooth vezu.

Otvorite Trgovinu Play i instalirajte Serijski Bluetooth terminal primjena.

Nakon instalacije otvorite Bluetooth postavke pametnog telefona i povežite svoj telefon s ESP32 Bluetoothom. Ako ste definirali PIN u Arduino IDE kodu, morate unijeti PIN inače će se spojiti izravno.

Sada otvorite Serial Bluetooth aplikaciju i odaberite Uređaji opcija.

Iz novootvorenog izbornika odaberite ESP32 uređaj. Ovaj popis prikazuje sve trenutno aktivne Bluetooth uređaje.

Kao što vidite, ESP32 Bluetooth je povezan s vašim Android pametnim telefonom.

Kako bismo testirali vezu, poslat ćemo niz. Ovdje sam poslao dva različita niza.

Primijetit ćete da će ista dva niza biti prikazana i na Arduino IDE terminalu.

Idemo sada korak dalje i kontrolirajmo vanjsku periferiju poput LED-a koristeći ESP32 Bluetooth putem Android pametnog telefona.

Korak 5: Upravljajte LED-om pomoću Android telefona putem Bluetootha

Za upravljanje LED-om pomoću ESP32 i Android Bluetooth-a, prvo izmijenite gornji kod i definirajte GPIO pin za LED. Nakon toga morate postaviti vrijednosti za uključivanje i isključivanje LED-a.

Učitajte donji kod za nastavak.

#include // Uključi biblioteku Bluetooth serijske komunikacije

#define LED_PIN 15 // Definirajte LED pin

BluetoothSerial SerialBT ; // Kreirajte BluetoothSerial objekt
bajt BT_INP ; // Varijabla za pohranu Bluetooth unosa

// Provjerite jesu li Bluetooth i Bluedroid omogućeni u SDK konfiguraciji
#if !defined(CONFIG_BT_ENABLED) || !definirano(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth nije omogućen. Pokrenite `make menuconfig` da biste ga omogućili.
#završi ako

poništiti postaviti ( ) {
pinMode ( LED_PIN , IZLAZ ) ; // Postavite LED pin kao izlaz
Serijski. početi ( 115200 ) ;
SerialBT. početi ( 'ESP32' ) ; // Inicijalizirajte Bluetooth s nazivom 'ESP32'
Serijski. println ( 'Bluetooth uređaj je spreman za uparivanje.' ) ; // Pokazuje da je Bluetooth spreman
}

poništiti petlja ( ) {
// Provjerite postoje li podaci dostupni za čitanje s Bluetootha
ako ( SerialBT. dostupno ( ) ) {
BT_INP = SerialBT. čitati ( ) ; // Čitanje dolaznog bajta iz Bluetootha
Serijski. pisati ( BT_INP ) ; // Eho pročitanog bajta na serijski monitor
}

// Provjerite primljene Bluetooth podatke i postavite LED stanje
ako ( BT_INP == '1' ) {
digitalWrite ( LED_PIN , VISOKO ) ; // Uključi LED ako se primi '1'
} drugo ako ( BT_INP == '0' ) {
digitalWrite ( LED_PIN , NISKO ) ; // Isključi LED ako se primi '0'
}
}

Ovaj kôd je za ESP32 mikrokontroler za upravljanje LED-om pomoću Bluetootha. Uključuje biblioteku za Bluetooth komunikaciju. Zatim definira LED pin i postavlja Bluetooth s uređajem pod nazivom ESP32. Glavna petlja čita Bluetooth podatke i uključuje ili isključuje LED na temelju primljene naredbe (1 za UKLJUČENO, 0 za ISKLJUČENO).

Kružni dijagram

Dijagram strujnog kruga je jednostavan, sa LED spojenom na pin D15 od ESP32. Možete definirati bilo koji drugi GPIO za LED kontrolu.

Povezano: Referenca za ESP32 pinout – konačni vodič

Hardver

Što se tiče hardvera, trebat će vam matična ploča, ESP32 ploča i LED. Povežite ESP32 sa sustavom i prenesite program na njega.

Sada pošaljite 1 i 0 iz Bluetooth serijske komunikacijske aplikacije Android telefona.

Vidjet ćete isti unos na Arduino IDE terminalu primljen s Android telefona.

Izlaz

Nakon što pošaljete visoku ili 1 vrijednost, LED će se upaliti, slično kada pošaljete nisku vrijednost, LED će se ugasiti.

Postavite prilagođeni gumb

Također možete postaviti prilagođeni gumb unutar Serial Bluetooth aplikacije. Na primjer, mogu se kreirati gumbi VISOKIH i NISKIH vrijednosti. Na ovaj način ne morate ručno upisivati ​​vrijednosti. Umjesto toga, samo morate pritisnuti gumb prečaca i on će izvršiti upute koje ste postavili.

Bilješka: Da biste otvorili postavke gumba, dugo pritisnite preko gumba.

Za postavljanje vrijednosti gumba HIGH, definirajte sljedeće postavke.

Sličnost za vrijednost gumba LOW, trebate definirati donje postavke.

Uspješno smo povezali ESP32 ploču s Android telefonom pomoću Bluetootha. Sada pomoću njega možete izraditi mnoge projekte. Na primjer, možete kontrolirati svoje kućanske uređaje pomoću ESP32 Bluetootha kroz relejni krug.

Povezano: Relej s ESP32 koristeći Arduino IDE

Zaključak

ESP32 je napredna mikrokontrolerska ploča s Wi-Fi i Bluetooth mogućnostima. Oba ova ugrađena modula pomažu vam u dizajniranju naprednih projekata i bežičnoj kontroli perifernih uređaja. Slično, možete povezati ESP32 s Android telefonom i izvoditi različite operacije. Za to ćete morati instalirati Bluetooth Serial Android aplikaciju. Nakon instalacije otvorite primjer koda za ESP32 Bluetooth i prenesite ga na svoju ploču. Nakon što se kod prenese, možete ga upariti sa svojom pločom putem Android telefona.