Jak nastavit a naprogramovat ESP32 pro komunikaci s chytrým telefonem Android přes Bluetooth

Jak Nastavit A Naprogramovat Esp32 Pro Komunikaci S Chytrym Telefonem Android Pres Bluetooth



ESP32 je deska mikrokontroléru s širokou škálou možností. Má vestavěné moduly Wi-Fi a Bluetooth. Pomocí obou těchto modulů můžete programovat ESP32 bezdrátově. Díky tomu se nemusíte starat o dlouhé drátové připojení pro ovládání periferií ESP32.

V tomto článku propojíme desku ESP32 s telefonem Android a budeme komunikovat data přes Bluetooth. Dále budeme ovládat LED připojenou k pinům GPIO ESP32 přímo prostřednictvím smartphonu Android.

Obsah:







Co je ESP32 Bluetooth LE

ESP32 je deska mikrokontroléru, která podporuje jak Bluetooth Classic, tak Bluetooth Low energy, také známé jako chytré Bluetooth. BLE neboli chytré Bluetooth je specifické pro energeticky úspornou komunikaci nebo je určeno pro komunikaci na krátkou vzdálenost nebo malé datové přenosy.



Funkce BLE ESP32 mu umožňuje fungovat jako server nebo klient v komunikaci Bluetooth. Zvládne úkoly, jako jsou služby čtení a psaní. Může také šifrovat připojení a vytvářet připojení Serial Port Profile (SPP) pro přenos dat v režimu UART-BLE pass-through. ESP32 Bluetooth podporuje protokoly 4.2, což znamená, že je kompatibilní s různými vrstvami, jako je fyzická vrstva (PHY) a linková vrstva (LL). Má také mimo jiné podporu pro rozhraní Host Controller Interface (HCI).



Podívejte se na tabulku rozdílů pro ESP32 Classic a BLE Bluetooth.





Vlastnosti Klasický Bluetooth Low Energy Bluetooth (BLE)
Typ komunikace Trvalá, obousměrná komunikace Přerušované, primárně jednosměrné shluky dat
Operační rozsah Může dosáhnout až 100 metrů Obvykle funguje pod 100 metrů
Spotřeba energie Spotřeba až 1 Watt Rozsahy od 10 miliwattů do 500 miliwattů
Rychlost přenosu Rychlost přenosu dat se pohybuje od 1 do 3 megabitů za sekundu Podporuje 125 kilobitů za sekundu až 2 megabity za sekundu
Doba odezvy Latence kolem 100 milisekund Rychlá odezva s latencí 6 milisekund
Hlasová podpora Vybaveno přenosem hlasu Chybí funkce přenosu hlasu

Podívejte se na tyto články ESP32 Bluetooth a získejte více informací.

Jak naprogramovat ESP32 pro komunikaci přes Bluetooth s chytrým telefonem Android

Chcete-li naprogramovat ESP32 tak, aby mohl komunikovat s telefonem Android pomocí protokolu Bluetooth, musíte nastavit sériovou knihovnu Bluetooth ESP32. K tomu musíte mít nastavení Arduino IDE s nainstalovanou deskou ESP32.



Po nastavení ESP32 Bluetooth musíte nainstalovat sériovou aplikaci Bluetooth pro Android. To vám umožní odesílat pokyny z telefonu Android do ESP32 pomocí sériové komunikace Bluetooth.

Podívejme se blíže na každý z těchto kroků:

Kroky pro připojení ESP32 Bluetooth k telefonu Android

Chcete-li naprogramovat desku ESP32 pro komunikaci Bluetooth, postupujte takto:

Krok 1: Instalace desky ESP32 v Arduino IDE

Chcete-li nainstalovat ESP32 na Arduino IDE, postupujte podle pokynů v tomto článku.

Instalace desky ESP32 v Arduino IDE

Po instalaci lze desku ESP32 připojit a naprogramovat pomocí Arduino IDE.

Krok 2: Nahrajte kód Bluetooth ESP32

Jakmile je deska ESP32 nainstalována, uvidíte různé předinstalované knihovny a jejich příklady v Arduino IDE. Všechny tyto knihovny souvisí s deskou ESP32. Pro sériovou komunikaci Bluetooth použijeme ESP32 Bluetooth Serial.h ukázkový kód knihovny.

Chcete-li otevřít ukázkový kód, otevřete Arduino IDE a přejděte na: Soubor > Příklady > BluetoothSerial > SerialtoSerialBT

Chcete-li otevřít tento příklad kódu, ujistěte se, že je vybrána deska ESP32.

Po otevření ukázkového kódu uvidíte v okně Arduino IDE následující kód:

//Vítejte v Linuxhintu

#include 'BluetoothSerial.h'

//#define USE_PIN // Odkomentujte toto, pokud chcete PIN během párování
konst char * kolík = '1234' ; // Definujte vlastní kód PIN pro párování

Řetězec název_zařízení = 'ESP32' ;

#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth není povoleno! Spusťte `make menuconfig`, abyste jej aktivovali
#endif

#if !defined(CONFIG_BT_SPP_ENABLED)
#error Chybí nebo není povoleno sériové rozhraní Bluetooth. Je k dispozici pouze pro čip ESP32.
#endif

Bluetooth Serial SerialBT ;

prázdnota založit ( ) {
Seriál. začít ( 115200 ) ;
SerialBT. začít ( Název zařízení ) ; //Název zařízení Bluetooth
Seriál. printf ( 'Zařízení ' % s “ je spuštěno. \n Začněte spárovat své zařízení! \n ' , Název zařízení. c_str ( ) ) ;
//Serial.printf('Zařízení '%s' s MAC adresou %s je spuštěno.\nZačněte jej spárovat s Bluetooth!\n', název_zařízení.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
SerialBT. setPin ( kolík ) ;
Seriál. println ( 'Pomocí PIN' ) ;
#endif
}

prázdnota smyčka ( ) {
-li ( Seriál. dostupný ( ) ) {
SerialBT. napsat ( Seriál. číst ( ) ) ;
}
-li ( SerialBT. dostupný ( ) ) {
Seriál. napsat ( SerialBT. číst ( ) ) ;
}
zpoždění ( dvacet ) ;
}

Po nahrání kódu se na obrazovce zobrazí následující zpráva. Tato zpráva popisuje, že vaše deska ESP32 je připravena ke spárování.

Krok 3: Vysvětlení kódu

Kód začal zahrnutím potřebných knihoven a kontrolou dostupnosti Bluetooth. Nastavuje také proměnné pro název zařízení Bluetooth a PIN.

V založit() funkce, je definována sériová přenosová komunikace a zařízení Bluetooth je inicializováno svým jménem. Pro ověření během párování lze nastavit vlastní PIN.

The smyčka() funkce nepřetržitě kontroluje data na sériovém a Bluetooth připojení. To mu umožňuje navázat obousměrnou komunikaci mezi ESP32 a spárovaným zařízením Bluetooth.

Krok 4: Nainstalujte aplikaci pro Android

Po nahrání kódu je dalším krokem instalace a konfigurace aplikace pro Android pro připojení Bluetooth.

Otevřete Obchod Play a nainstalujte Sériový Bluetooth terminál aplikace.

Po instalaci otevřete nastavení Bluetooth smartphonu a připojte telefon pomocí ESP32 Bluetooth. Pokud jste definovali PIN v kódu Arduino IDE, musíte zadat PIN, jinak se připojí přímo.

Nyní otevřete aplikaci Serial Bluetooth a vyberte Zařízení volba.

Z nově otevřené nabídky vyberte zařízení ESP32. Tento seznam zobrazuje všechna aktuálně aktivní zařízení Bluetooth.

Jak můžete vidět, ESP32 Bluetooth je připojen k vašemu smartphonu Android.

Abychom spojení otestovali, odešleme řetězec. Zde jsem poslal dva různé řetězce.

Všimnete si, že stejné dva řetězce se zobrazí také na terminálu Arduino IDE.

Nyní pojďme o krok dále a ovládejme externí periferní zařízení, jako je LED, pomocí ESP32 Bluetooth prostřednictvím smartphonu Android.

Krok 5: Ovládání LED pomocí telefonu Android přes Bluetooth

Chcete-li ovládat LED pomocí ESP32 a Android Bluetooth, nejprve upravte výše uvedený kód a definujte GPIO pin pro LED. Poté musíte nastavit hodnoty pro zapnutí a vypnutí LED.

Nahrajte níže uvedený kód a pokračujte dále.

#include // Zahrnout knihovnu sériové komunikace Bluetooth

#define LED_PIN 15 // Definujte pin LED

Bluetooth Serial SerialBT ; // Vytvoří objekt BluetoothSerial
bajt BT_INP ; // Proměnná pro uložení vstupu Bluetooth

// Zkontrolujte, zda jsou v konfiguraci SDK povoleny Bluetooth a Bluedroid
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth není povoleno. Spusťte `make menuconfig`, abyste jej aktivovali.
#endif

prázdnota založit ( ) {
pinMode ( LED_PIN , VÝSTUP ) ; // Nastavte pin LED jako výstup
Seriál. začít ( 115200 ) ;
SerialBT. začít ( 'ESP32' ) ; // Inicializujte Bluetooth s názvem 'ESP32'
Seriál. println ( 'Bluetooth zařízení je připraveno ke spárování.' ) ; // Označuje, že Bluetooth je připraven
}

prázdnota smyčka ( ) {
// Zkontrolujte, zda jsou k dispozici nějaká data ke čtení z Bluetooth
-li ( SerialBT. dostupný ( ) ) {
BT_INP = SerialBT. číst ( ) ; // Čtení příchozího bajtu z Bluetooth
Seriál. napsat ( BT_INP ) ; // Odešle přečtený bajt do sériového monitoru
}

// Zkontrolujte přijatá data Bluetooth a nastavte stav LED
-li ( BT_INP == '1' ) {
digitalWrite ( LED_PIN , VYSOKÝ ) ; // Zapněte LED, pokud je přijata '1'
} jiný -li ( BT_INP == '0' ) {
digitalWrite ( LED_PIN , NÍZKÝ ) ; // Vypněte LED, pokud je přijato '0'
}
}

Tento kód je pro mikrokontrolér ESP32 pro ovládání LED pomocí Bluetooth. Obsahuje knihovnu pro Bluetooth komunikaci. Dále definuje pin LED a nastavuje Bluetooth se zařízením s názvem ESP32. Hlavní smyčka čte data Bluetooth a rozsvítí nebo zhasne LED na základě přijatého příkazu (1 pro ZAPNUTO, 0 pro VYPNUTO).

Kruhový diagram

Schéma zapojení je jednoduché, s LED připojenou na kolíku D15 z ESP32. Pro ovládání LED můžete definovat jakékoli jiné GPIO.

Příbuzný: ESP32 Pinout Reference–Ultimate Guide

Hardware

V hardwaru budete potřebovat prkénko, desku ESP32 a LED. Připojte ESP32 k systému a nahrajte do něj program.

Nyní odešlete 1 a 0 z aplikace sériové komunikace Bluetooth telefonu Android.

Uvidíte stejný vstup na terminálu Arduino IDE přijatém z telefonu Android.

Výstup

Jakmile odešlete hodnotu High nebo 1, LED se rozsvítí, podobně když pošlete hodnotu Low, LED zhasne.

Nastavte vlastní tlačítko

Můžete také nastavit vlastní tlačítko uvnitř aplikace Serial Bluetooth. Například lze vytvořit tlačítko VYSOKÉ a NÍZKÉ hodnoty. Tímto způsobem nemusíte ručně zadávat hodnoty. Místo toho stačí stisknout tlačítko zkratky a provede se vámi nastavená instrukce.

Poznámka: Chcete-li otevřít nastavení tlačítka, dlouze stiskněte tlačítko.

Chcete-li nastavit hodnotu tlačítka HIGH, definujte následující nastavení.

Podobnost pro hodnotu tlačítka LOW, musíte definovat níže uvedená nastavení.

Úspěšně jsme propojili desku ESP32 s telefonem Android pomocí Bluetooth. Nyní s ním můžete vytvářet mnoho projektů. Stejně jako můžete ovládat své domácí spotřebiče pomocí ESP32 Bluetooth přes reléový obvod.

Příbuzný: Relé s ESP32 pomocí Arduino IDE

Závěr

ESP32 je pokročilá deska mikrokontroléru s funkcemi Wi-Fi a Bluetooth. Oba tyto vestavěné moduly vám pomohou navrhovat pokročilé projekty a ovládat periferie bezdrátově. Podobně můžete ESP32 propojit s telefonem Android a provádět různé operace. K tomu budete muset nainstalovat aplikaci Bluetooth Serial Android. Po instalaci otevřete ukázkový kód pro ESP32 Bluetooth a nahrajte jej na vaši desku. Jakmile je kód nahrán, můžete jej spárovat s deskou prostřednictvím telefonu Android.