Hoe u de ESP32 kunt instellen en programmeren om via Bluetooth te communiceren met een Android-smartphone

Hoe U De Esp32 Kunt Instellen En Programmeren Om Via Bluetooth Te Communiceren Met Een Android Smartphone



ESP32 is een microcontrollerbord met een breed scala aan mogelijkheden. Het heeft ingebouwde Wi-Fi- en Bluetooth-modules. Met beide modules kun je ESP32 draadloos programmeren. Hiermee hoeft u zich geen zorgen te maken over lange draadverbindingen voor het bedienen van ESP32-randapparatuur.

In dit artikel verbinden we een ESP32-bord met een Android-telefoon en communiceren we gegevens via Bluetooth. Verder zullen we een LED besturen die is verbonden met de GPIO-pinnen van ESP32 rechtstreeks via de Android-smartphone.

Inhoud:







Wat is ESP32 Bluetooth LE

ESP32 is een microcontrollerbord dat zowel Bluetooth Classic als Bluetooth Low Energy ondersteunt, ook bekend als slimme Bluetooth. De BLE of smart Bluetooth is specifiek voor energiezuinige communicatie of ontworpen voor communicatie over korte afstand of kleine dataoverdracht.



Dankzij de BLE-functionaliteit van de ESP32 kan deze fungeren als server of client bij Bluetooth-communicatie. Het kan taken uitvoeren zoals lees- en schrijfdiensten. Het kan ook verbindingen coderen en de Serial Port Profile (SPP)-verbindingen tot stand brengen voor gegevensoverdracht in de UART-BLE pass-through-modus. De ESP32 Bluetooth ondersteunt de 4.2-protocollen, wat betekent dat hij compatibel is met verschillende lagen zoals de Physical Layer (PHY) en Link Layer (LL). Het biedt ook ondersteuning voor onder meer Host Controller Interface (HCI).



Bekijk de verschiltabel voor ESP32 Classic en BLE Bluetooth.





Functie Klassieke Bluetooth Bluetooth met lage energie (BLE)
Communicatietype Duurzame tweerichtingscommunicatie Intermitterende, voornamelijk eenrichtingsdatabursts
Operationeel bereik Kan tot 100 meter reiken Werkt doorgaans onder de 100 meter
Stroomverbruik Verbruikt tot 1 Watt Varieert van 10 milliwatt tot 500 milliwatt
Overdrachtssnelheid Gegevensoverdrachtsnelheden variëren van 1 tot 3 Megabit per seconde Ondersteunt 125 kilobits per seconde tot 2 megabits per seconde
Reactietijd Latency ongeveer 100 milliseconden Snelle reactie met een latentie van 6 milliseconden
Stemondersteuning Uitgerust met spraakoverdracht Ontbreekt aan spraakoverdrachtfunctionaliteit

Bekijk deze ESP32 Bluetooth-artikelen om er meer over te weten te komen.

ESP32 programmeren om via Bluetooth te communiceren met een Android-smartphone

Om ESP32 zo te programmeren dat deze kan communiceren met een Android-telefoon via het Bluetooth-protocol, moet u de ESP32 Bluetooth-seriële bibliotheek instellen. Daarvoor moet je een Arduino IDE-installatie hebben met een ESP32-bord geïnstalleerd.



Nadat u de ESP32 Bluetooth hebt ingesteld, moet u de Bluetooth-seriële Android-applicatie installeren. Hiermee kunt u instructies vanaf een Android-telefoon naar ESP32 verzenden via seriële Bluetooth-communicatie.

Laten we elk van deze stappen eens nader bekijken:

Stappen voor het verbinden van ESP32 Bluetooth met Android-telefoon

Volg deze stappen om het ESP32-bord te programmeren voor Bluetooth-communicatie:

Stap 1: Het ESP32-bord installeren in Arduino IDE

Om de ESP32 op de Arduino IDE te installeren, volgt u eenvoudigweg de handleiding in dit artikel.

Het ESP32-bord installeren in Arduino IDE

Na installatie kan het ESP32-bord worden aangesloten en geprogrammeerd met behulp van Arduino IDE.

Stap 2: Upload de ESP32 Bluetooth-code

Zodra het ESP32-bord is geïnstalleerd, ziet u verschillende vooraf geïnstalleerde bibliotheken en hun voorbeelden in Arduino IDE. Al deze bibliotheken zijn gerelateerd aan het ESP32-bord. Voor seriële Bluetooth-communicatie gaan we de ESP32 gebruiken BluetoothSeriële.h voorbeeldcode van bibliotheek.

Om de voorbeeldcode te openen, opent u Arduino IDE en gaat u naar: Bestand > Voorbeelden > BluetoothSerial > SerialtoSerialBT

Om deze voorbeeldcode te openen, moet u ervoor zorgen dat het ESP32-bord is geselecteerd.

Na het openen van de voorbeeldcode ziet u de volgende code in uw Arduino IDE-venster:

//Welkom bij Linuxhint

#include 'BluetoothSerial.h'

//#define USE_PIN // Verwijder commentaar als u een pincode wilt tijdens het koppelen
const verkoold * pin = '1234' ; // Definieer een aangepaste koppelingspincode

Tekenreeks apparaatnaam = 'ESP32' ;

#if!gedefinieerd(CONFIG_BT_ENABLED) || !gedefinieerd(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is niet ingeschakeld! Voer `make menuconfig` uit om dit in te schakelen
#stop als

#if!gedefinieerd(CONFIG_BT_SPP_ENABLED)
#error Seriële Bluetooth ontbreekt of is niet ingeschakeld. Het is alleen beschikbaar voor de ESP32-chip.
#stop als

BluetoothSerieel SerieelBT ;

leegte opgericht ( ) {
Serieel. beginnen ( 115200 ) ;
SerieelBT. beginnen ( toestelnaam ) ; //Bluetooth-apparaatnaam
Serieel. afdrukkenf ( 'Het apparaat ' % S ' is begonnen. \N Begin met het koppelen van uw apparaat! \N ' , toestelnaam. c_str ( ) ) ;
//Serial.printf('Het apparaat '%s' met MAC-adres %s is gestart.\nStart het koppelen met Bluetooth!\n', device_name.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
SerieelBT. setPin ( pin ) ;
Serieel. println ( 'Pincode gebruiken' ) ;
#stop als
}

leegte lus ( ) {
als ( Serieel. beschikbaar ( ) ) {
SerieelBT. schrijven ( Serieel. lezen ( ) ) ;
}
als ( SerieelBT. beschikbaar ( ) ) {
Serieel. schrijven ( SerieelBT. lezen ( ) ) ;
}
vertraging ( twintig ) ;
}

Na het uploaden van de code ziet u de volgende melding op het scherm. Dit bericht beschrijft dat uw ESP32-bord klaar is om te koppelen.

Stap 3: Code-uitleg

De code begon met het toevoegen van de benodigde bibliotheken en het controleren op Bluetooth-beschikbaarheid. Het stelt ook variabelen in voor de naam en pincode van het Bluetooth-apparaat.

In de opgericht() functie, wordt de seriële baudcommunicatie gedefinieerd en wordt het Bluetooth-apparaat geïnitialiseerd met zijn naam. Er kan een aangepaste pincode worden ingesteld voor authenticatie tijdens het koppelen.

De lus() functie controleert voortdurend op de gegevens op de seriële en Bluetooth-verbindingen. Hierdoor kan tweerichtingscommunicatie tot stand worden gebracht tussen de ESP32 en een gekoppeld Bluetooth-apparaat.

Stap 4: Installeer de Android-applicatie

Zodra de code is geüpload, is de volgende stap het installeren en configureren van de Android-applicatie voor Bluetooth-verbinding.

Open de Play Store en installeer het Seriële Bluetooth-terminal sollicitatie.

Open na de installatie de Bluetooth-instellingen van de smartphone en verbind uw telefoon met ESP32 Bluetooth. Als u een pincode in de Arduino IDE-code hebt gedefinieerd, moet u de pincode invoeren, anders wordt er rechtstreeks verbinding gemaakt.

Open nu de seriële Bluetooth-applicatie en selecteer de Apparaten keuze.

Selecteer in het nieuw geopende menu het ESP32-apparaat. Deze lijst toont alle momenteel actieve Bluetooth-apparaten.

Zoals u kunt zien, is de ESP32 Bluetooth verbonden met uw Android-smartphone.

Om de verbinding te testen, gaan we een string sturen. Hier heb ik twee verschillende strings verzonden.

U zult merken dat dezelfde twee strings ook op de Arduino IDE-terminal worden weergegeven.

Laten we nu nog een stap verder gaan en een extern randapparaat zoals een LED bedienen met behulp van ESP32 Bluetooth via de Android-smartphone.

Stap 5: Bedien een LED met behulp van een Android-telefoon via Bluetooth

Om een ​​LED te besturen met behulp van ESP32 en Android Bluetooth, wijzigt u eerst de bovenstaande code en definieert u een GPIO-pin voor de LED. Daarna moet u de waarden instellen voor het in- en uitschakelen van de LED.

Upload de onderstaande code om verder te gaan.

#include // Voeg de Bluetooth-bibliotheek voor seriële communicatie toe

#define LED_PIN 15 // Definieer de LED-pin

BluetoothSerieel SerieelBT ; // Maak een BluetoothSerial-object
byte BT_INP ; // Variabel om Bluetooth-invoer op te slaan

// Controleer of Bluetooth en Bluedroid zijn ingeschakeld in de SDK-configuratie
#if!gedefinieerd(CONFIG_BT_ENABLED) || !gedefinieerd(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is niet ingeschakeld. Voer `make menuconfig` uit om dit in te schakelen.
#stop als

leegte opgericht ( ) {
pinModus ( LED_PIN , UITGANG ) ; // Stel de LED-pin in als uitgang
Serieel. beginnen ( 115200 ) ;
SerieelBT. beginnen ( 'ESP32' ) ; // Initialiseer Bluetooth met de naam 'ESP32'
Serieel. println ( 'Bluetooth-apparaat is klaar om te koppelen.' ) ; // Geef aan dat Bluetooth gereed is
}

leegte lus ( ) {
// Controleer of er gegevens beschikbaar zijn om via Bluetooth te lezen
als ( SerieelBT. beschikbaar ( ) ) {
BT_INP = SerieelBT. lezen ( ) ; // Lees de binnenkomende byte van Bluetooth
Serieel. schrijven ( BT_INP ) ; // Echo de leesbyte naar de seriële monitor
}

// Controleer de ontvangen Bluetooth-gegevens en stel de LED-status in
als ( BT_INP == '1' ) {
digitaalSchrijf ( LED_PIN , HOOG ) ; // Schakel de LED in als '1' wordt ontvangen
} anders als ( BT_INP == '0' ) {
digitaalSchrijf ( LED_PIN , LAAG ) ; // Schakel de LED uit als '0' wordt ontvangen
}
}

Deze code is bedoeld voor een ESP32-microcontroller om een ​​LED te besturen via Bluetooth. Het bevat een bibliotheek voor Bluetooth-communicatie. Vervolgens definieert het de LED-pin en stelt Bluetooth in met een apparaat genaamd ESP32. De hoofdlus leest Bluetooth-gegevens en schakelt de LED AAN of UIT op basis van het ontvangen commando (1 voor AAN, 0 voor UIT).

Schakelschema

Het schakelschema is eenvoudig, met een LED aangesloten op de pin D15 van de ESP32. U kunt elke andere GPIO definiëren voor LED-besturing.

Verwant: ESP32 Pinout-referentie – ultieme gids

Hardware

Qua hardware heb je een breadboard, een ESP32-bord en een LED nodig. Verbind de ESP32 met het systeem en upload het programma ernaartoe.

Verzend nu 1 en 0 vanaf de Bluetooth-toepassing voor seriële communicatie op de Android-telefoon.

U ziet dezelfde invoer op de Arduino IDE-terminal ontvangen van de Android-telefoon.

Uitvoer

Zodra u de hoge of 1-waarde verzendt, gaat de LED AAN, op dezelfde manier gaat de LED UIT als u de Lage-waarde verzendt.

Stel een aangepaste knop in

U kunt ook een aangepaste knop instellen in de seriële Bluetooth-applicatie. Er kan bijvoorbeeld een knop voor HOGE en LAGE waarden worden gemaakt. Op deze manier hoeft u de waarden niet handmatig in te voeren. In plaats daarvan hoeft u alleen maar op de sneltoets te drukken en wordt de door u ingestelde instructie uitgevoerd.

Opmerking: Om de knopinstellingen te openen, drukt u lang op de knop.

Om de knopwaarde HOOG in te stellen, definieert u de volgende instellingen.

Gelijkenis voor de LOW-knopwaarde, u moet de onderstaande instellingen definiëren.

We hebben het ESP32-bord met succes verbonden met een Android-telefoon via Bluetooth. Nu kunt u er veel projecten mee maken. U kunt bijvoorbeeld uw huishoudelijke apparaten bedienen met behulp van de ESP32 Bluetooth via een relaiscircuit.

Verwant: Relay met ESP32 met behulp van Arduino IDE

Conclusie

ESP32 is een geavanceerd microcontrollerbord met Wi-Fi- en Bluetooth-mogelijkheden. Beide ingebouwde modules helpen u bij het ontwerpen van geavanceerde projecten en het draadloos bedienen van de randapparatuur. Op dezelfde manier kunt u ESP32 verbinden met een Android-telefoon en verschillende bewerkingen uitvoeren. Daarvoor moet u de Bluetooth Serial Android-applicatie installeren. Eenmaal geïnstalleerd, open je de voorbeeldcode voor ESP32 Bluetooth en upload je deze naar je board. Zodra de code is geüpload, kunt u deze via een Android-telefoon aan uw bord koppelen.