Jak skonfigurować i zaprogramować ESP32 do komunikacji ze smartfonem z systemem Android przez Bluetooth

Jak Skonfigurowac I Zaprogramowac Esp32 Do Komunikacji Ze Smartfonem Z Systemem Android Przez Bluetooth



ESP32 to płytka mikrokontrolera o szerokim zakresie możliwości. Posiada wbudowane moduły Wi-Fi i Bluetooth. Wykorzystując obydwa te moduły można zaprogramować ESP32 bezprzewodowo. Dzięki temu nie musisz się martwić o połączenia długoprzewodowe do sterowania urządzeniami peryferyjnymi ESP32.

W tym artykule połączymy płytkę ESP32 z telefonem z Androidem i będziemy przesyłać dane przez Bluetooth. Ponadto będziemy sterować diodą LED połączoną z pinami GPIO ESP32 bezpośrednio przez smartfon z Androidem.

Zawartość:







Co to jest ESP32 Bluetooth LE

ESP32 to płytka mikrokontrolera obsługująca zarówno Bluetooth Classic, jak i Bluetooth Low Energy, znany również jako inteligentny Bluetooth. BLE lub inteligentny Bluetooth jest przeznaczony do komunikacji energooszczędnej lub przeznaczony do komunikacji krótkiego zasięgu lub małych transferów danych.



Funkcjonalność BLE ESP32 umożliwia mu działanie jako serwer lub klient w komunikacji Bluetooth. Może obsługiwać zadania takie jak usługi czytania i pisania. Może także szyfrować połączenia i ustanawiać połączenia w profilu portu szeregowego (SPP) w celu transmisji danych w trybie tranzytowym UART-BLE. ESP32 Bluetooth obsługuje protokoły 4.2, co oznacza, że ​​jest kompatybilny z różnymi warstwami, takimi jak warstwa fizyczna (PHY) i warstwa łącza (LL). Obsługuje także między innymi interfejs kontrolera hosta (HCI).



Sprawdź tabelę różnic dla ESP32 Classic i BLE Bluetooth.





Funkcja Klasyczny Bluetooth Bluetooth o niskim zużyciu energii (BLE)
Typ komunikacji Stała, dwukierunkowa komunikacja Sporadyczne, głównie jednokierunkowe impulsy danych
Zasięg operacyjny Może osiągnąć nawet 100 metrów Zwykle działa poniżej 100 metrów
Zużycie energii Zużywa do 1 Wata Zakres od 10 miliwatów do 500 miliwatów
Szybkość transferu Szybkość przesyłania danych waha się od 1 do 3 megabitów na sekundę Obsługuje 125 kilobitów na sekundę do 2 megabitów na sekundę
Czas odpowiedzi Opóźnienie około 100 milisekund Szybka reakcja z opóźnieniem 6 milisekund
Wsparcie głosowe Wyposażony w transmisję głosu Brakuje funkcji transmisji głosu

Sprawdź te artykuły dotyczące ESP32 Bluetooth, aby dowiedzieć się więcej na ten temat.

Jak zaprogramować ESP32 do komunikacji przez Bluetooth ze smartfonem z systemem Android

Aby zaprogramować ESP32 tak, aby mógł komunikować się z telefonem z systemem Android za pomocą protokołu Bluetooth, należy skonfigurować bibliotekę szeregową Bluetooth ESP32. W tym celu musisz mieć konfigurację Arduino IDE z zainstalowaną płytką ESP32.



Po ustawieniu Bluetooth ESP32 należy zainstalować aplikację Bluetooth na Androida. Umożliwi to wysyłanie instrukcji z telefonu z systemem Android do ESP32 za pomocą komunikacji szeregowej Bluetooth.

Przyjrzyjmy się bliżej każdemu z tych kroków:

Kroki łączenia Bluetooth ESP32 z telefonem z Androidem

Aby zaprogramować płytkę ESP32 do komunikacji Bluetooth, wykonaj poniższe kroki:

Krok 1: Instalacja płytki ESP32 w Arduino IDE

Aby zainstalować ESP32 na Arduino IDE, wystarczy postępować zgodnie z instrukcją zawartą w tym artykule.

Instalowanie płytki ESP32 w Arduino IDE

Po instalacji płytkę ESP32 można podłączyć i zaprogramować za pomocą Arduino IDE.

Krok 2: Prześlij kod Bluetooth ESP32

Po zainstalowaniu płytki ESP32 zobaczysz różne preinstalowane biblioteki i ich przykłady w Arduino IDE. Wszystkie te biblioteki są powiązane z płytą ESP32. Do komunikacji szeregowej Bluetooth użyjemy ESP32 BluetoothSerial.h przykładowy kod biblioteki.

Aby otworzyć przykładowy kod, otwórz Arduino IDE i przejdź do: Plik > Przykłady > BluetoothSerial > SerialtoSerialBT

Aby otworzyć ten przykładowy kod, upewnij się, że wybrana jest karta ESP32.

Po otwarciu przykładowego kodu w oknie Arduino IDE zobaczysz następujący kod:

//Witamy w Linuxhint

#include „BluetoothSerial.h”

//#define USE_PIN // Odkomentuj, jeśli chcesz, aby podczas parowania obowiązywał kod PIN
konst zwęglać * szpilka = „1234” ; // Zdefiniuj niestandardowy PIN parowania

Ciąg nazwa_urządzenia = „ESP32” ;

#if!zdefiniowane(CONFIG_BT_ENABLED) || !definiowane(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth nie jest włączony! Uruchom `make menuconfig`, aby go włączyć
#endif

#if!zdefiniowane(CONFIG_BT_SPP_ENABLED)
#error Brak szeregowego Bluetootha lub nie jest on włączony. Jest dostępny tylko dla układu ESP32.
#endif

Bluetooth Szeregowy BT ;

próżnia organizować coś ( ) {
Seryjny. zaczynać ( 115200 ) ;
SerialBT. zaczynać ( Nazwa urządzenia ) ; //Nazwa urządzenia Bluetooth
Seryjny. drukuj ( 'Urządzenie ' % S „rozpoczęło się. \N Rozpocznij parowanie urządzenia! \N ' , Nazwa urządzenia. c_str ( ) ) ;
//Serial.printf('Urządzenie '%s' z adresem MAC %s zostało uruchomione.\nRozpocznij parowanie z Bluetooth!\n', nazwa_urządzenia.c_str(), SerialBT.getMacString());
#ifdef UŻYJ_PIN
SerialBT. ustawPin ( szpilka ) ;
Seryjny. drukuj ( „Używanie kodu PIN” ) ;
#endif
}

próżnia pętla ( ) {
Jeśli ( Seryjny. dostępny ( ) ) {
SerialBT. pisać ( Seryjny. Czytać ( ) ) ;
}
Jeśli ( SerialBT. dostępny ( ) ) {
Seryjny. pisać ( SerialBT. Czytać ( ) ) ;
}
opóźnienie ( 20 ) ;
}

Po przesłaniu kodu na ekranie pojawi się następujący komunikat. Ten komunikat opisuje, że Twoja płyta ESP32 jest gotowa do parowania.

Krok 3: Wyjaśnienie kodu

Kod rozpoczął się od dołączenia niezbędnych bibliotek i sprawdzenia dostępności Bluetooth. Konfiguruje również zmienne dla nazwy urządzenia Bluetooth i kodu PIN.

w organizować coś() funkcja, zdefiniowana jest komunikacja szeregowa i urządzenie Bluetooth jest inicjowane swoją nazwą. Można ustawić niestandardowy kod PIN do uwierzytelniania podczas parowania.

The pętla() funkcja stale sprawdza dane w połączeniach szeregowych i Bluetooth. Umożliwia to nawiązanie dwukierunkowej komunikacji pomiędzy ESP32 a sparowanym urządzeniem Bluetooth.

Krok 4: Zainstaluj aplikację na Androida

Po przesłaniu kodu kolejnym krokiem jest instalacja i konfiguracja aplikacji na Androida do połączenia Bluetooth.

Otwórz Sklep Play i zainstaluj Szeregowy terminal Bluetooth aplikacja.

Po instalacji otwórz ustawienia Bluetooth smartfona i podłącz telefon za pomocą Bluetooth ESP32. Jeśli zdefiniowałeś PIN w kodzie Arduino IDE, musisz wprowadzić PIN, w przeciwnym razie nastąpi bezpośrednie połączenie.

Teraz otwórz aplikację Serial Bluetooth i wybierz Urządzenia opcja.

Z nowo otwartego menu wybierz urządzenie ESP32. Na tej liście znajdują się wszystkie aktualnie aktywne urządzenia Bluetooth.

Jak widać, ESP32 Bluetooth jest połączony ze smartfonem z Androidem.

Aby przetestować połączenie, wyślemy ciąg znaków. Tutaj wysłałem dwa różne ciągi znaków.

Zauważysz, że te same dwa ciągi znaków będą również wyświetlane na terminalu Arduino IDE.

Teraz pójdźmy o krok dalej i steruj zewnętrznym urządzeniem peryferyjnym, takim jak dioda LED, za pomocą ESP32 Bluetooth za pośrednictwem smartfona z Androidem.

Krok 5: Steruj diodą LED za pomocą telefonu z Androidem i Bluetooth

Aby sterować diodą LED za pomocą ESP32 i Androida Bluetooth, najpierw zmodyfikuj powyższy kod i zdefiniuj pin GPIO dla diody LED. Następnie należy ustawić wartości włączania i wyłączania diody LED.

Prześlij poniższy kod, aby kontynuować.

#include // Dołącz bibliotekę komunikacji szeregowej Bluetooth

#define LED_PIN 15 // Zdefiniuj pin diody LED

Bluetooth Szeregowy BT ; // Utwórz obiekt BluetoothSerial
bajt BT_INP ; // Zmienna przechowująca dane wejściowe Bluetooth

// Sprawdź, czy w konfiguracji SDK włączono Bluetooth i Bluedroid
#if!zdefiniowane(CONFIG_BT_ENABLED) || !definiowane(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth nie jest włączony. Uruchom `make menuconfig`, aby go włączyć.
#endif

próżnia organizować coś ( ) {
tryb pin ( LED_PIN , WYJŚCIE ) ; // Ustaw pin LED jako wyjście
Seryjny. zaczynać ( 115200 ) ;
SerialBT. zaczynać ( „ESP32” ) ; // Zainicjuj Bluetooth nazwą „ESP32”
Seryjny. drukuj ( „Urządzenie Bluetooth jest gotowe do sparowania”. ) ; // Wskazuje, że Bluetooth jest gotowy
}

próżnia pętla ( ) {
// Sprawdź, czy są dostępne dane do odczytania przez Bluetooth
Jeśli ( SerialBT. dostępny ( ) ) {
BT_INP = SerialBT. Czytać ( ) ; // Odczytaj przychodzący bajt z Bluetooth
Seryjny. pisać ( BT_INP ) ; // Powtórz odczytany bajt do monitora szeregowego
}

// Sprawdź odebrane dane Bluetooth i ustaw stan diody LED
Jeśli ( BT_INP == „1” ) {
cyfrowy zapis ( LED_PIN , WYSOKI ) ; // Włącz diodę LED, jeśli odebrano „1”.
} w przeciwnym razie Jeśli ( BT_INP == „0” ) {
cyfrowy zapis ( LED_PIN , NISKI ) ; // Wyłącz diodę LED, jeśli odebrane zostanie „0”.
}
}

Ten kod przeznaczony jest dla mikrokontrolera ESP32 do sterowania diodą LED za pomocą Bluetooth. Zawiera bibliotekę do komunikacji Bluetooth. Następnie definiuje pin diody LED i konfiguruje Bluetooth z urządzeniem o nazwie ESP32. Główna pętla odczytuje dane Bluetooth i włącza lub wyłącza diodę LED w zależności od otrzymanego polecenia (1 dla WŁ., 0 dla WYŁ.).

Schemat obwodu

Schemat obwodu jest prosty, z diodą LED podłączoną do pinu D15 z ESP32. Można zdefiniować dowolne inne GPIO do sterowania diodami LED.

Powiązany: Informacje dotyczące pinów ESP32 – kompletny przewodnik

Sprzęt komputerowy

Sprzętowo będziesz potrzebować płytki prototypowej, płytki ESP32 i diody LED. Podłącz ESP32 do systemu i wgraj do niego program.

Teraz wyślij 1 i 0 z aplikacji do komunikacji szeregowej Bluetooth na telefonie z Androidem.

To samo wejście zobaczysz na terminalu Arduino IDE otrzymanym z telefonu z Androidem.

Wyjście

Po wysłaniu wartości High lub 1 dioda LED zaświeci się, podobnie gdy wyślesz wartość Low, dioda LED zgaśnie.

Ustaw przycisk niestandardowy

Możesz także ustawić niestandardowy przycisk w aplikacji Serial Bluetooth. Można na przykład utworzyć przycisk wartości WYSOKI i NISKI. Dzięki temu nie musisz ręcznie wpisywać wartości. Zamiast tego wystarczy nacisnąć przycisk skrótu, a wykona on ustawioną instrukcję.

Notatka: Aby otworzyć ustawienia przycisku, naciśnij i przytrzymaj przycisk.

Aby ustawić wartość przycisku HIGH, zdefiniuj następujące ustawienia.

Podobieństwo wartości przycisku LOW, należy zdefiniować poniższe ustawienia.

Udało nam się połączyć płytkę ESP32 z telefonem z Androidem za pomocą Bluetooth. Teraz możesz stworzyć za jego pomocą wiele projektów. Podobnie, możesz sterować urządzeniami gospodarstwa domowego za pomocą ESP32 Bluetooth poprzez obwód przekaźnika.

Powiązany: Przekaźnik z ESP32 przy użyciu Arduino IDE

Wniosek

ESP32 to zaawansowana płytka mikrokontrolera z obsługą Wi-Fi i Bluetooth. Obydwa wbudowane moduły pomagają w projektowaniu zaawansowanych projektów i bezprzewodowym sterowaniu urządzeniami peryferyjnymi. Podobnie możesz połączyć ESP32 z telefonem z Androidem i wykonywać różne operacje. W tym celu musisz zainstalować aplikację Bluetooth Serial na Androida. Po zainstalowaniu otwórz przykładowy kod dla ESP32 Bluetooth i prześlij go na swoją tablicę. Po przesłaniu kodu możesz sparować go z tablicą za pomocą telefonu z systemem Android.