Cum să configurați și să programați ESP32 pentru a comunica cu un smartphone Android prin Bluetooth

Cum Sa Configurati Si Sa Programati Esp32 Pentru A Comunica Cu Un Smartphone Android Prin Bluetooth



ESP32 este o placă de microcontroler cu o gamă largă de capabilități. Are module Wi-Fi și Bluetooth încorporate. Folosind ambele module, puteți programa ESP32 fără fir. Cu aceasta, nu trebuie să vă faceți griji cu privire la conexiunile cu fire lungi pentru controlul perifericelor ESP32.

În acest articol, vom conecta o placă ESP32 cu un telefon Android și vom comunica date prin Bluetooth. În plus, vom controla un LED conectat cu pinii GPIO ai ESP32 direct prin smartphone-ul Android.

Continut:







Ce este ESP32 Bluetooth LE

ESP32 este o placă de microcontroler care acceptă atât Bluetooth Classic, cât și Bluetooth Low Energy, cunoscută și sub numele de Bluetooth inteligent. BLE sau Bluetooth inteligent este specific pentru comunicații eficiente din punct de vedere energetic sau conceput pentru comunicații pe distanță scurtă sau transferuri mici de date.



Funcționalitatea BLE a ESP32 îi permite să acționeze ca server sau client în comunicațiile Bluetooth. Poate gestiona sarcini precum serviciile de citire și scriere. De asemenea, poate cripta conexiunile și poate stabili conexiunile Serial Port Profile (SPP) pentru transmisia de date în modul pass-through UART-BLE. ESP32 Bluetooth acceptă protocoalele 4.2, ceea ce înseamnă că este compatibil cu diferite straturi, cum ar fi Stratul fizic (PHY) și Stratul de legătură (LL). De asemenea, are suport pentru Host Controller Interface (HCI), printre altele.



Verificați tabelul de diferențe pentru ESP32 Classic și BLE Bluetooth.





Caracteristică Bluetooth clasic Bluetooth cu energie redusă (BLE)
Tipul de comunicare Comunicare susținută, bidirecțională Explorări intermitente de date, în principal unidirecționale
Interval de operare Poate ajunge până la 100 de metri Funcționează de obicei sub 100 de metri
Consumul de energie Consumă până la 1 Watt Variază de la 10 miliwați la 500 de miliwați
Viteza de transfer Ratele de transfer de date variază de la 1 la 3 Megabiți pe secundă Suportă 125 Kilobiți pe secundă până la 2 Megabiți pe secundă
Timp de raspuns Latență în jur de 100 de milisecunde Răspuns rapid cu latență de 6 milisecunde
Suport vocal Echipat cu transmisie vocală Lipsește funcționalitatea de transmisie vocală

Consultați aceste articole despre Bluetooth ESP32 pentru a obține mai multe în interiorul acestuia.

Cum să programați ESP32 pentru a comunica prin Bluetooth cu un smartphone Android

Pentru a programa ESP32 astfel încât să poată comunica cu un telefon Android utilizând protocolul Bluetooth, trebuie să configurați biblioteca serial Bluetooth ESP32. Pentru asta, trebuie să aveți o configurare Arduino IDE cu o placă ESP32 instalată.



După setarea ESP32 Bluetooth, trebuie să instalați aplicația Android serial Bluetooth. Acest lucru vă va permite să trimiteți instrucțiuni de pe un telefon Android către ESP32 utilizând comunicația serial Bluetooth.

Să aruncăm o privire mai atentă la fiecare dintre acești pași:

Pași pentru conectarea ESP32 Bluetooth cu telefonul Android

Pentru a programa placa ESP32 pentru comunicare prin Bluetooth, urmați acești pași:

Pasul 1: Instalarea plăcii ESP32 în Arduino IDE

Pentru a instala ESP32 pe Arduino IDE, pur și simplu urmați ghidul furnizat în acest articol.

Instalarea plăcii ESP32 în Arduino IDE

După instalare, placa ESP32 poate fi conectată și programată folosind Arduino IDE.

Pasul 2: Încărcați codul Bluetooth ESP32

Odată ce placa ESP32 este instalată, veți vedea diferite biblioteci preinstalate și exemplele acestora în Arduino IDE. Toate aceste biblioteci sunt legate de placa ESP32. Pentru comunicarea în serie Bluetooth, vom folosi ESP32 BluetoothSerial.h cod exemplu de bibliotecă.

Pentru a deschide exemplul de cod, deschideți Arduino IDE și accesați: Fișier > Exemple > BluetoothSerial > SerialtoSerialBT

Pentru a deschide acest exemplu de cod, asigurați-vă că placa ESP32 este selectată.

După deschiderea exemplului de cod, veți vedea următorul cod în fereastra Arduino IDE:

//Bine ați venit la Linuxhint

#include „BluetoothSerial.h”

//#define USE_PIN // Anulați comentariul dacă doriți codul PIN în timpul asocierii
const char * pin = '1234' ; // Definiți un PIN personalizat de asociere

String device_name = „ESP32” ;

#dacă !defined(CONFIG_BT_ENABLED) || !definit(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth nu este activat! Rulați `make menuconfig` pentru a-l activa
#endif

#if !definit(CONFIG_BT_SPP_ENABLED)
#error Bluetooth serial lipsește sau nu este activat. Este disponibil doar pentru cipul ESP32.
#endif

Bluetooth Serial SerialBT ;

gol înființat ( ) {
Serial. ÎNCEPE ( 115200 ) ;
SerialBT. ÎNCEPE ( Nume dispozitiv ) ; //Numele dispozitivului Bluetooth
Serial. printf ( 'Dispozitivul ' % s ' este început. \n Începeți să vă asociați dispozitivul! \n ' , Nume dispozitiv. c_str ( ) ) ;
//Serial.printf(„Dispozitivul „%s” cu adresa MAC %s este pornit.\nÎncepeți asocierea cu Bluetooth!\n”, device_name.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
SerialBT. setPin ( pin ) ;
Serial. println ( „Se utilizează codul PIN” ) ;
#endif
}

gol buclă ( ) {
dacă ( Serial. disponibil ( ) ) {
SerialBT. scrie ( Serial. citit ( ) ) ;
}
dacă ( SerialBT. disponibil ( ) ) {
Serial. scrie ( SerialBT. citit ( ) ) ;
}
întârziere ( douăzeci ) ;
}

După încărcarea codului, veți vedea următorul mesaj pe ecran. Acest mesaj descrie faptul că placa dumneavoastră ESP32 este pregătită pentru asociere.

Pasul 3: Explicația codului

Codul a început cu includerea bibliotecilor necesare și verificarea disponibilității Bluetooth. De asemenea, setează variabile pentru numele și PIN-ul dispozitivului Bluetooth.

În înființat() funcția, comunicarea serial baud este definită și dispozitivul Bluetooth este inițializat cu numele său. Un PIN personalizat poate fi setat pentru autentificare în timpul împerecherii.

The buclă() Funcția verifică în mod continuu datele de pe conexiunile seriale și Bluetooth. Acest lucru îi permite să stabilească o comunicare bidirecțională între ESP32 și un dispozitiv Bluetooth asociat.

Pasul 4: Instalați aplicația Android

Odată ce codul este încărcat, următorul pas este instalarea și configurarea aplicației Android pentru conexiunea Bluetooth.

Deschideți Magazinul Play și instalați Terminal serial Bluetooth aplicarea.

După instalare, deschideți setările Bluetooth ale smartphone-ului și conectați-vă telefonul la ESP32 Bluetooth. Dacă ați definit un PIN în codul IDE Arduino, trebuie să introduceți PIN-ul altfel se va conecta direct.

Acum deschideți aplicația Serial Bluetooth și selectați Dispozitive opțiune.

Din meniul nou deschis, selectați dispozitivul ESP32. Această listă arată toate dispozitivele Bluetooth active în prezent.

După cum puteți vedea, ESP32 Bluetooth este conectat la smartphone-ul dvs. Android.

Pentru a testa conexiunea, vom trimite un șir. Aici am trimis două șiruri diferite.

Veți observa că aceleași două șiruri vor fi afișate și pe terminalul IDE Arduino.

Acum să facem un pas mai departe și să controlăm un periferic extern, cum ar fi un LED, folosind ESP32 Bluetooth prin intermediul smartphone-ului Android.

Pasul 5: Controlați un LED utilizând un telefon Android prin Bluetooth

Pentru a controla un LED folosind ESP32 și Android Bluetooth, mai întâi modificați codul de mai sus și definiți un pin GPIO pentru LED. După aceea, trebuie să setați valorile pentru pornirea și stingerea LED-ului.

Încărcați codul de mai jos pentru a continua.

#include // Includeți biblioteca de comunicații seriale Bluetooth

#define LED_PIN 15 // Definiți pinul LED

Bluetooth Serial SerialBT ; // Creați un obiect BluetoothSerial
octet BT_INP ; // Variabilă pentru a stoca intrarea Bluetooth

// Verificați dacă Bluetooth și Bluedroid sunt activate în configurația SDK
#dacă !defined(CONFIG_BT_ENABLED) || !definit(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth nu este activat. Rulați `make menuconfig` pentru a-l activa.
#endif

gol înființat ( ) {
pinMode ( LED_PIN , IEȘIRE ) ; // Setați pinul LED-ului ca ieșire
Serial. ÎNCEPE ( 115200 ) ;
SerialBT. ÎNCEPE ( „ESP32” ) ; // Inițializați Bluetooth cu numele „ESP32”
Serial. println ( „Dispozitivul Bluetooth este gata de asociere.” ) ; // Indică faptul că Bluetooth este gata
}

gol buclă ( ) {
// Verificați dacă există date disponibile de citit din Bluetooth
dacă ( SerialBT. disponibil ( ) ) {
BT_INP = SerialBT. citit ( ) ; // Citiți octetul primit de la Bluetooth
Serial. scrie ( BT_INP ) ; // Ecou octetul citit la monitorul serial
}

// Verificați datele Bluetooth primite și setați starea LED-ului
dacă ( BT_INP == „1” ) {
digitalWrite ( LED_PIN , ÎNALT ) ; // Aprinde LED-ul dacă se primește „1”.
} altfel dacă ( BT_INP == '0' ) {
digitalWrite ( LED_PIN , SCĂZUT ) ; // Opriți LED-ul dacă se primește „0”.
}
}

Acest cod este pentru un microcontroler ESP32 pentru a controla un LED folosind Bluetooth. Include o bibliotecă pentru comunicare prin Bluetooth. Apoi, definește pinul LED și configurează Bluetooth cu un dispozitiv numit ESP32. Bucla principală citește datele Bluetooth și pornește sau stinge LED-ul în funcție de comanda primită (1 pentru ON, 0 pentru OFF).

Schema circuitului

Schema circuitului este simplă, cu un LED conectat la pin D15 a ESP32. Puteți defini orice alt GPIO pentru control LED.

Legate de: ESP32 Pinout Referință – Ghid final

Hardware

În hardware, veți avea nevoie de o placă de breadboard, o placă ESP32 și un LED. Conectați ESP32 la sistem și încărcați programul pe acesta.

Acum trimiteți 1 și 0 din aplicația de comunicații seriale Bluetooth a telefonului Android.

Veți vedea aceeași intrare pe terminalul Arduino IDE primită de la telefonul Android.

Ieșire

Odată ce trimiteți valoarea ridicată sau 1, LED-ul se va aprinde, în mod similar când trimiteți valoarea scăzută, LED-ul se va stinge.

Setați un buton personalizat

De asemenea, puteți seta un buton personalizat în cadrul aplicației Serial Bluetooth. De exemplu, se poate crea un buton pentru valori HIGH și LOW. În acest fel, nu trebuie să introduceți manual valorile. În schimb, trebuie doar să apăsați butonul de comandă rapidă, iar acesta va executa instrucțiunea pe care o setați.

Notă: Pentru a deschide setările butonului, apăsați lung peste buton.

Pentru a seta valoarea butonului HIGH, definiți următoarele setări.

Similaritate pentru valoarea butonului LOW, trebuie să definiți setările de mai jos.

Am conectat cu succes placa ESP32 la un telefon Android folosind Bluetooth. Acum puteți crea multe proiecte folosindu-l. De exemplu, vă puteți controla aparatele electrocasnice folosind ESP32 Bluetooth printr-un circuit releu.

Legate de: Releu cu ESP32 folosind Arduino IDE

Concluzie

ESP32 este o placă avansată de microcontroler cu capabilități Wi-Fi și Bluetooth. Ambele module încorporate vă ajută să proiectați proiecte avansate și să controlați perifericele fără fir. În mod similar, puteți conecta ESP32 la un telefon Android și puteți efectua diferite operațiuni. Pentru aceasta, va trebui să instalați aplicația Bluetooth Serial Android. Odată instalat, deschideți exemplul de cod pentru ESP32 Bluetooth și încărcați-l pe placa dvs. Odată ce codul este încărcat, îl puteți asocia cu placa dvs. printr-un telefon Android.