Ako nastaviť a naprogramovať ESP32 na komunikáciu so smartfónom so systémom Android cez Bluetooth

Ako Nastavit A Naprogramovat Esp32 Na Komunikaciu So Smartfonom So Systemom Android Cez Bluetooth



ESP32 je doska mikrokontroléra so širokou škálou možností. Má vstavané moduly Wi-Fi a Bluetooth. Pomocou oboch týchto modulov môžete programovať ESP32 bezdrôtovo. Vďaka tomu sa nemusíte obávať dlhých káblových pripojení na ovládanie periférií ESP32.

V tomto článku prepojíme dosku ESP32 s telefónom s Androidom a budeme komunikovať dáta cez Bluetooth. Ďalej budeme ovládať LED pripojenú k GPIO kolíkom ESP32 priamo cez smartfón so systémom Android.

Obsah:







Čo je ESP32 Bluetooth LE

ESP32 je doska mikrokontroléra, ktorá podporuje Bluetooth Classic aj Bluetooth Low energy, tiež známy ako smart Bluetooth. BLE alebo smart Bluetooth je špecifické pre energeticky efektívnu komunikáciu alebo je určené na komunikáciu na krátke vzdialenosti alebo malé dátové prenosy.



Funkcia BLE ESP32 mu umožňuje fungovať ako server alebo klient v komunikácii Bluetooth. Dokáže zvládnuť úlohy, ako sú služby čítania a písania. Môže tiež šifrovať spojenia a vytvárať spojenia s profilom sériového portu (SPP) na prenos údajov v režime prechodu UART-BLE. ESP32 Bluetooth podporuje protokoly 4.2, čo znamená, že je kompatibilný s rôznymi vrstvami, ako je fyzická vrstva (PHY) a spojovacia vrstva (LL). Okrem iného podporuje aj rozhranie Host Controller Interface (HCI).



Skontrolujte tabuľku rozdielov pre ESP32 Classic a BLE Bluetooth.





Funkcia Klasický Bluetooth Bluetooth s nízkou spotrebou energie (BLE)
Typ komunikácie Trvalá, obojstranná komunikácia Prerušované, primárne jednosmerné zhluky údajov
Operačný rozsah Môže dosiahnuť až 100 metrov Zvyčajne funguje do 100 metrov
Spotreba energie Spotreba až 1 Watt Rozsahy od 10 miliwattov do 500 miliwattov
Rýchlosť prenosu Rýchlosť prenosu dát sa pohybuje od 1 do 3 megabitov za sekundu Podporuje 125 kilobitov za sekundu až 2 megabity za sekundu
Doba odozvy Latencia okolo 100 milisekúnd Rýchla odozva s latenciou 6 milisekúnd
Hlasová podpora Vybavený prenosom hlasu Chýba funkcia prenosu hlasu

Pozrite si tieto články ESP32 Bluetooth, aby ste sa o ňom dozvedeli viac.

Ako naprogramovať ESP32 na komunikáciu cez Bluetooth so smartfónom so systémom Android

Ak chcete naprogramovať ESP32 tak, aby mohol komunikovať s telefónom Android pomocou protokolu Bluetooth, musíte nastaviť sériovú knižnicu Bluetooth ESP32. Na to musíte mať nastavenie Arduino IDE s nainštalovanou doskou ESP32.



Po nastavení Bluetooth ESP32 musíte nainštalovať sériovú aplikáciu Bluetooth pre Android. To vám umožní odosielať pokyny z telefónu Android do ESP32 pomocou sériovej komunikácie Bluetooth.

Pozrime sa bližšie na každý z týchto krokov:

Kroky na pripojenie ESP32 Bluetooth k telefónu Android

Ak chcete naprogramovať dosku ESP32 na komunikáciu Bluetooth, postupujte podľa týchto krokov:

Krok 1: Inštalácia dosky ESP32 v Arduino IDE

Ak chcete nainštalovať ESP32 na Arduino IDE, jednoducho postupujte podľa pokynov v tomto článku.

Inštalácia dosky ESP32 v Arduino IDE

Po inštalácii je možné dosku ESP32 pripojiť a naprogramovať pomocou Arduino IDE.

Krok 2: Nahrajte kód Bluetooth ESP32

Po nainštalovaní dosky ESP32 uvidíte rôzne predinštalované knižnice a ich príklady v Arduino IDE. Všetky tieto knižnice súvisia s doskou ESP32. Pre sériovú komunikáciu Bluetooth použijeme ESP32 Bluetooth Serial.h ukážkový kód knižnice.

Ak chcete otvoriť príklad kódu, otvorte Arduino IDE a prejdite na: Súbor > Príklady > BluetoothSerial > SerialtoSerialBT

Ak chcete otvoriť tento príklad kódu, uistite sa, že je vybratá doska ESP32.

Po otvorení vzorového kódu uvidíte v okne Arduino IDE nasledujúci kód:

//Vitajte v Linuxhint

#include 'BluetoothSerial.h'

//#define USE_PIN // Odkomentujte, ak chcete počas párovania zadať PIN
konšt char * špendlík = '1234' ; // Definujte vlastný kód PIN pre párovanie

Reťazec názov_zariadenia = 'ESP32' ;

#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth nie je povolené! Spustite `make menuconfig`, aby ste to povolili
#koniec Ak

#if !defined(CONFIG_BT_SPP_ENABLED)
#error Sériové rozhranie Bluetooth chýba alebo nie je povolené. Je k dispozícii iba pre čip ESP32.
#koniec Ak

Bluetooth Serial SerialBT ;

neplatné nastaviť ( ) {
Serial. začať ( 115200 ) ;
SerialBT. začať ( Názov zariadenia ) ; //Názov zariadenia Bluetooth
Serial. printf ( 'Zariadenie ' % s “ je spustené. \n Začnite párovať svoje zariadenie! \n ' , Názov zariadenia. c_str ( ) ) ;
//Serial.printf('Zariadenie '%s' s MAC adresou %s je spustené.\nZačnite ho spárovať s Bluetooth!\n', názov_zariadenia.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
SerialBT. setPin ( špendlík ) ;
Serial. println ( 'Používanie PIN' ) ;
#koniec Ak
}

neplatné slučka ( ) {
ak ( Serial. k dispozícii ( ) ) {
SerialBT. písať ( Serial. čítať ( ) ) ;
}
ak ( SerialBT. k dispozícii ( ) ) {
Serial. písať ( SerialBT. čítať ( ) ) ;
}
meškanie ( dvadsať ) ;
}

Po nahraní kódu sa na obrazovke zobrazí nasledujúca správa. Táto správa popisuje, že vaša doska ESP32 je pripravená na spárovanie.

Krok 3: Vysvetlenie kódu

Kód začal zahrnutím potrebných knižníc a kontrolou dostupnosti Bluetooth. Nastavuje tiež premenné pre názov zariadenia Bluetooth a PIN.

V nastaviť() funkcia, je definovaná sériová prenosová komunikácia a zariadenie Bluetooth je inicializované s jeho názvom. Na overenie počas párovania je možné nastaviť vlastný PIN.

The slučka() funkcia nepretržite kontroluje údaje o sériovom a Bluetooth pripojení. To mu umožňuje nadviazať obojsmernú komunikáciu medzi ESP32 a spárovaným Bluetooth zariadením.

Krok 4: Nainštalujte aplikáciu pre Android

Po nahratí kódu je ďalším krokom inštalácia a konfigurácia aplikácie pre Android pre pripojenie Bluetooth.

Otvorte Obchod Play a nainštalujte Sériový Bluetooth terminál aplikácie.

Po inštalácii otvorte nastavenia Bluetooth smartfónu a pripojte svoj telefón k ESP32 Bluetooth. Ak ste definovali PIN v kóde Arduino IDE, musíte zadať PIN, inak sa pripojí priamo.

Teraz otvorte aplikáciu Serial Bluetooth a vyberte položku Zariadenia možnosť.

Z novootvorenej ponuky vyberte zariadenie ESP32. Tento zoznam zobrazuje všetky aktuálne aktívne zariadenia Bluetooth.

Ako vidíte, ESP32 Bluetooth je pripojený k vášmu smartfónu so systémom Android.

Na otestovanie spojenia odošleme reťazec. Tu som poslal dva rôzne reťazce.

Všimnete si, že rovnaké dva reťazce sa zobrazia aj na termináli Arduino IDE.

Teraz posuňme sa o krok ďalej a ovládajme externé periférne zariadenie, ako je LED, pomocou ESP32 Bluetooth cez smartfón so systémom Android.

Krok 5: Ovládajte LED pomocou telefónu Android cez Bluetooth

Ak chcete ovládať LED pomocou ESP32 a Android Bluetooth, najprv upravte vyššie uvedený kód a definujte GPIO pin pre LED. Potom musíte nastaviť hodnoty pre zapnutie a vypnutie LED.

Ak chcete pokračovať ďalej, nahrajte nižšie uvedený kód.

#include // Zahrnutie knižnice sériovej komunikácie Bluetooth

#define LED_PIN 15 // Definujte pin LED

Bluetooth Serial SerialBT ; // Vytvorenie objektu BluetoothSerial
bajt BT_INP ; // Premenná na uloženie vstupu Bluetooth

// Skontrolujte, či sú v konfigurácii SDK povolené Bluetooth a Bluedroid
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth nie je povolené. Spustite `make menuconfig`, aby ste to povolili.
#koniec Ak

neplatné nastaviť ( ) {
pinMode ( LED_PIN , VÝKON ) ; // Nastavte pin LED ako výstup
Serial. začať ( 115200 ) ;
SerialBT. začať ( 'ESP32' ) ; // Inicializujte Bluetooth s názvom 'ESP32'
Serial. println ( 'Bluetooth zariadenie je pripravené na párovanie.' ) ; // Označuje, že Bluetooth je pripravený
}

neplatné slučka ( ) {
// Skontrolujte, či sú k dispozícii nejaké údaje na čítanie z Bluetooth
ak ( SerialBT. k dispozícii ( ) ) {
BT_INP = SerialBT. čítať ( ) ; // Prečítajte si prichádzajúci bajt z Bluetooth
Serial. písať ( BT_INP ) ; // Echo prečítaný bajt do sériového monitora
}

// Skontrolujte prijaté údaje Bluetooth a nastavte stav LED
ak ( BT_INP == '1' ) {
digitalWrite ( LED_PIN , VYSOKÝ ) ; // Zapnite LED, ak je prijatá '1'
} inak ak ( BT_INP == '0' ) {
digitalWrite ( LED_PIN , NÍZKA ) ; // Vypnite LED, ak je prijatá '0'
}
}

Tento kód je pre mikrokontrolér ESP32 na ovládanie LED pomocou Bluetooth. Obsahuje knižnicu pre Bluetooth komunikáciu. Ďalej definuje kolík LED a nastavuje Bluetooth so zariadením s názvom ESP32. Hlavná slučka číta Bluetooth dáta a rozsvieti alebo zhasne LED na základe prijatého príkazu (1 pre ZAPNUTIE, 0 pre vypnutie).

Schéma obvodu

Schéma zapojenia je jednoduchá, s LED pripojenou na kolíku D15 z ESP32. Pre LED ovládanie môžete definovať akékoľvek iné GPIO.

Súvisiace: ESP32 Pinout Reference–Ultimate Guide

Hardvér

V hardvéri budete potrebovať kontaktnú dosku, dosku ESP32 a LED. Pripojte ESP32 k systému a nahrajte doň program.

Teraz odošlite 1 a 0 z aplikácie sériovej komunikácie Bluetooth telefónu s Androidom.

Rovnaký vstup uvidíte na termináli Arduino IDE prijatom z telefónu s Androidom.

Výkon

Keď odošlete hodnotu High alebo 1, LED sa rozsvieti, podobne keď pošlete hodnotu Low, LED sa vypne.

Nastavte vlastné tlačidlo

Môžete tiež nastaviť vlastné tlačidlo v aplikácii Serial Bluetooth. Napríklad je možné vytvoriť tlačidlo HIGH a LOW hodnoty. Týmto spôsobom nemusíte manuálne zadávať hodnoty. Namiesto toho stačí stlačiť tlačidlo skratky a vykoná sa pokyn, ktorý ste nastavili.

Poznámka: Ak chcete otvoriť nastavenia tlačidla, dlho stlačte tlačidlo.

Ak chcete nastaviť hodnotu tlačidla HIGH, definujte nasledujúce nastavenia.

Podobnosť pre hodnotu tlačidla LOW, musíte definovať nižšie uvedené nastavenia.

Pomocou Bluetooth sme úspešne prepojili dosku ESP32 s telefónom s Androidom. Teraz s ním môžete vytvárať veľa projektov. Napríklad môžete ovládať svoje domáce spotrebiče pomocou ESP32 Bluetooth cez reléový obvod.

Súvisiace: Relé s ESP32 pomocou Arduino IDE

Záver

ESP32 je pokročilá doska mikrokontroléra s Wi-Fi a Bluetooth. Oba tieto vstavané moduly vám pomôžu navrhnúť pokročilé projekty a bezdrôtovo ovládať periférne zariadenia. Podobne môžete ESP32 prepojiť s telefónom so systémom Android a vykonávať rôzne operácie. Na to budete musieť nainštalovať aplikáciu Bluetooth Serial pre Android. Po inštalácii otvorte vzorový kód pre ESP32 Bluetooth a nahrajte ho na dosku. Po nahratí kódu ho môžete spárovať s doskou prostredníctvom telefónu s Androidom.