So richten Sie den ESP32 ein und programmieren ihn für die Kommunikation mit einem Android-Smartphone über Bluetooth

So Richten Sie Den Esp32 Ein Und Programmieren Ihn Fur Die Kommunikation Mit Einem Android Smartphone Uber Bluetooth



ESP32 ist ein Mikrocontroller-Board mit einer Vielzahl von Funktionen. Es verfügt über integrierte Wi-Fi- und Bluetooth-Module. Mit diesen beiden Modulen können Sie ESP32 drahtlos programmieren. Damit müssen Sie sich keine Gedanken über lange Kabelverbindungen zur Steuerung von ESP32-Peripheriegeräten machen.

In diesem Artikel verbinden wir ein ESP32-Board mit einem Android-Telefon und kommunizieren Daten über Bluetooth. Darüber hinaus steuern wir eine LED, die mit den GPIO-Pins des ESP32 verbunden ist, direkt über das Android-Smartphone.

Inhalt:







Was ist ESP32 Bluetooth LE?

ESP32 ist ein Mikrocontroller-Board, das sowohl Bluetooth Classic als auch Bluetooth Low Energy, auch bekannt als Smart Bluetooth, unterstützt. BLE oder intelligentes Bluetooth ist speziell für die energieeffiziente Kommunikation konzipiert oder für die Kommunikation über kurze Entfernungen oder kleine Datenübertragungen konzipiert.



Die BLE-Funktionalität des ESP32 ermöglicht es ihm, bei der Bluetooth-Kommunikation als Server oder Client zu fungieren. Es kann Aufgaben wie Lese- und Schreibdienste übernehmen. Es kann auch Verbindungen verschlüsseln und SPP-Verbindungen (Serial Port Profile) für die Datenübertragung im UART-BLE-Passthrough-Modus herstellen. Der ESP32 Bluetooth unterstützt die 4.2-Protokolle, was bedeutet, dass er mit verschiedenen Schichten wie dem Physical Layer (PHY) und dem Link Layer (LL) kompatibel ist. Es unterstützt unter anderem auch das Host Controller Interface (HCI).



Sehen Sie sich die Differenztabelle für ESP32 Classic und BLE Bluetooth an.





Besonderheit Klassisches Bluetooth Low Energy Bluetooth (BLE)
Kommunikationstyp Nachhaltige, wechselseitige Kommunikation Zeitweilige, hauptsächlich einseitige Datenstöße
Einsatzbereich Kann bis zu 100 Meter erreichen Funktioniert normalerweise unter 100 Metern
Stromverbrauch Verbraucht bis zu 1 Watt Der Bereich reicht von 10 Milliwatt bis 500 Milliwatt
Übertragungsgeschwindigkeit Die Datenübertragungsraten variieren zwischen 1 und 3 Megabit pro Sekunde Unterstützt 125 Kilobit pro Sekunde bis 2 Megabit pro Sekunde
Reaktionszeit Latenz etwa 100 Millisekunden Schnelle Reaktion mit 6 Millisekunden Latenz
Sprachunterstützung Ausgestattet mit Sprachübertragung Es fehlt die Sprachübertragungsfunktion

Schauen Sie sich diese ESP32-Bluetooth-Artikel an, um mehr darüber zu erfahren.

So programmieren Sie ESP32 für die Kommunikation über Bluetooth mit einem Android-Smartphone

Um ESP32 so zu programmieren, dass es über das Bluetooth-Protokoll mit einem Android-Telefon kommunizieren kann, müssen Sie die serielle ESP32-Bluetooth-Bibliothek einrichten. Dazu benötigen Sie ein Arduino IDE-Setup mit installierter ESP32-Karte.



Nachdem Sie das ESP32-Bluetooth eingestellt haben, müssen Sie die Bluetooth-Seriell-Android-Anwendung installieren. Auf diese Weise können Sie mithilfe der seriellen Bluetooth-Kommunikation Anweisungen von einem Android-Telefon an ESP32 senden.

Schauen wir uns jeden dieser Schritte genauer an:

Schritte zum Verbinden von ESP32 Bluetooth mit einem Android-Telefon

Um die ESP32-Karte für die Bluetooth-Kommunikation zu programmieren, befolgen Sie diese Schritte:

Schritt 1: Installieren des ESP32-Boards in der Arduino IDE

Um den ESP32 auf der Arduino IDE zu installieren, befolgen Sie einfach die Anleitung in diesem Artikel.

Installieren des ESP32-Boards in der Arduino IDE

Nach der Installation kann das ESP32-Board angeschlossen und über die Arduino IDE programmiert werden.

Schritt 2: Laden Sie den ESP32-Bluetooth-Code hoch

Sobald das ESP32-Board installiert ist, sehen Sie verschiedene vorinstallierte Bibliotheken und deren Beispiele in der Arduino IDE. Alle diese Bibliotheken beziehen sich auf das ESP32-Board. Für die serielle Bluetooth-Kommunikation verwenden wir den ESP32 BluetoothSerial.h Beispielcode der Bibliothek.

Um den Beispielcode zu öffnen, öffnen Sie die Arduino IDE und gehen Sie zu: Datei > Beispiele > BluetoothSerial > SerialtoSerialBT

Um diesen Beispielcode zu öffnen, stellen Sie sicher, dass die ESP32-Karte ausgewählt ist.

Nachdem Sie den Beispielcode geöffnet haben, sehen Sie den folgenden Code in Ihrem Arduino IDE-Fenster:

//Willkommen bei Linuxhint

#include „BluetoothSerial.h“

//#define USE_PIN // Kommentieren Sie dies aus, wenn Sie beim Pairing eine PIN wünschen
const verkohlen * Stift = „1234“ ; // Definieren Sie eine benutzerdefinierte Kopplungs-PIN

Zeichenfolge Gerätename = „ESP32“ ;

#if !definiert(CONFIG_BT_ENABLED) || !definiert(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth ist nicht aktiviert! Führen Sie „make menuconfig“ aus, um es zu aktivieren
#endif

#if !definiert(CONFIG_BT_SPP_ENABLED)
#error Serielles Bluetooth fehlt oder ist nicht aktiviert. Es ist nur für den ESP32-Chip verfügbar.
#endif

BluetoothSerial SerialBT ;

Leere aufstellen ( ) {
Seriell. beginnen ( 115200 ) ;
SerialBT. beginnen ( Gerätename ) ; //Bluetooth-Gerätename
Seriell. printf ( 'Das Gerät ' % S ' ist gestartet. \N Beginnen Sie mit der Kopplung Ihres Geräts! \N ' , Gerätename. c_str ( ) ) ;
//Serial.printf('Das Gerät „%s“ mit der MAC-Adresse %s wurde gestartet.\nKoppeln Sie es mit Bluetooth!\n', device_name.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
SerialBT. setPin ( Stift ) ;
Seriell. println ( „PIN verwenden“ ) ;
#endif
}

Leere Schleife ( ) {
Wenn ( Seriell. verfügbar ( ) ) {
SerialBT. schreiben ( Seriell. lesen ( ) ) ;
}
Wenn ( SerialBT. verfügbar ( ) ) {
Seriell. schreiben ( SerialBT. lesen ( ) ) ;
}
Verzögerung ( zwanzig ) ;
}

Nach dem Hochladen des Codes wird die folgende Meldung auf dem Bildschirm angezeigt. Diese Meldung beschreibt, dass Ihr ESP32-Board zum Pairing bereit ist.

Schritt 3: Code-Erklärung

Der Code begann mit der Einbindung der notwendigen Bibliotheken und der Prüfung der Bluetooth-Verfügbarkeit. Außerdem werden Variablen für den Bluetooth-Gerätenamen und die PIN eingerichtet.

Im aufstellen() Mit dieser Funktion wird die serielle Baud-Kommunikation definiert und das Bluetooth-Gerät mit seinem Namen initialisiert. Zur Authentifizierung beim Pairing kann eine benutzerdefinierte PIN festgelegt werden.

Der Schleife() Die Funktion prüft kontinuierlich die Daten auf den seriellen und Bluetooth-Verbindungen. Dadurch kann eine bidirektionale Kommunikation zwischen dem ESP32 und einem gekoppelten Bluetooth-Gerät hergestellt werden.

Schritt 4: Installieren Sie die Android-Anwendung

Sobald der Code hochgeladen ist, besteht der nächste Schritt darin, die Android-Anwendung für die Bluetooth-Verbindung zu installieren und zu konfigurieren.

Öffnen Sie den Play Store und installieren Sie den Serielles Bluetooth-Terminal Anwendung.

Öffnen Sie nach der Installation die Bluetooth-Einstellungen des Smartphones und verbinden Sie Ihr Telefon mit ESP32 Bluetooth. Wenn Sie im Arduino IDE-Code eine PIN definiert haben, müssen Sie die PIN eingeben, sonst wird eine direkte Verbindung hergestellt.

Öffnen Sie nun die Anwendung „Serielles Bluetooth“ und wählen Sie die aus Geräte Möglichkeit.

Wählen Sie im neu geöffneten Menü das ESP32-Gerät aus. In dieser Liste werden alle derzeit aktiven Bluetooth-Geräte angezeigt.

Wie Sie sehen, ist der ESP32 Bluetooth mit Ihrem Android-Smartphone verbunden.

Um die Verbindung zu testen, senden wir einen String. Hier habe ich zwei verschiedene Saiten geschickt.

Sie werden feststellen, dass dieselben zwei Zeichenfolgen auch auf dem Arduino IDE-Terminal angezeigt werden.

Gehen wir nun noch einen Schritt weiter und steuern ein externes Peripheriegerät wie eine LED mithilfe von ESP32 Bluetooth über das Android-Smartphone.

Schritt 5: Steuern Sie eine LED mit einem Android-Telefon über Bluetooth

Um eine LED mit ESP32 und Android Bluetooth zu steuern, ändern Sie zunächst den obigen Code und definieren Sie einen GPIO-Pin für die LED. Danach müssen Sie die Werte zum Ein- und Ausschalten der LED festlegen.

Laden Sie den Code unten hoch, um fortzufahren.

#include // Die serielle Bluetooth-Kommunikationsbibliothek einschließen

#define LED_PIN 15 // Definiere den LED-Pin

BluetoothSerial SerialBT ; // Ein BluetoothSerial-Objekt erstellen
Byte BT_INP ; // Variable zum Speichern der Bluetooth-Eingabe

// Überprüfen Sie, ob Bluetooth und Bluedroid in der SDK-Konfiguration aktiviert sind
#if !definiert(CONFIG_BT_ENABLED) || !definiert(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth ist nicht aktiviert. Führen Sie „make menuconfig“ aus, um es zu aktivieren.
#endif

Leere aufstellen ( ) {
​ pinMode ( LED_PIN , AUSGABE ) ; // Den LED-Pin als Ausgang festlegen
Seriell. beginnen ( 115200 ) ;
SerialBT. beginnen ( „ESP32“ ) ; // Bluetooth mit dem Namen „ESP32“ initialisieren
Seriell. println ( „Bluetooth-Gerät ist zum Koppeln bereit.“ ) ; // Zeigt an, dass Bluetooth bereit ist
}

Leere Schleife ( ) {
// Überprüfen Sie, ob Daten zum Lesen über Bluetooth verfügbar sind
Wenn ( SerialBT. verfügbar ( ) ) {
BT_INP = SerialBT. lesen ( ) ; // Das eingehende Byte von Bluetooth lesen
Seriell. schreiben ( BT_INP ) ; // Das gelesene Byte an den seriellen Monitor senden
}

// Überprüfen Sie die empfangenen Bluetooth-Daten und stellen Sie den LED-Status ein
Wenn ( BT_INP == '1' ) {
digitalWrite ( LED_PIN , HOCH ) ; // Schalten Sie die LED ein, wenn „1“ empfangen wird
} anders Wenn ( BT_INP == '0' ) {
digitalWrite ( LED_PIN , NIEDRIG ) ; // Schalte die LED aus, wenn „0“ empfangen wird
}
}

Dieser Code dient einem ESP32-Mikrocontroller zur Steuerung einer LED über Bluetooth. Es enthält eine Bibliothek für die Bluetooth-Kommunikation. Als nächstes definiert es den LED-Pin und richtet Bluetooth mit einem Gerät namens ESP32 ein. Die Hauptschleife liest Bluetooth-Daten und schaltet die LED je nach empfangenem Befehl ein oder aus (1 für EIN, 0 für AUS).

Schaltplan

Der Schaltplan ist einfach, mit einer am Pin angeschlossenen LED D15 des ESP32. Sie können jeden anderen GPIO für die LED-Steuerung definieren.

Verwandt: ESP32-Pinbelegungsreferenz – Ultimative Anleitung

Hardware

Als Hardware benötigen Sie ein Steckbrett, ein ESP32-Board und eine LED. Verbinden Sie den ESP32 mit dem System und laden Sie das Programm darauf hoch.

Senden Sie nun 1 und 0 von der seriellen Bluetooth-Kommunikationsanwendung des Android-Telefons.

Sie sehen die gleiche Eingabe auf dem Arduino IDE-Terminal, die Sie vom Android-Telefon empfangen haben.

Ausgabe

Sobald Sie den Wert „Hoch“ oder „1“ senden, schaltet sich die LED ein. Wenn Sie den Wert „Niedrig“ senden, schaltet sich die LED ebenfalls aus.

Legen Sie eine benutzerdefinierte Schaltfläche fest

Sie können auch eine benutzerdefinierte Schaltfläche innerhalb der seriellen Bluetooth-Anwendung festlegen. Beispielsweise kann eine Schaltfläche für HIGH- und LOW-Werte erstellt werden. Auf diese Weise müssen Sie die Werte nicht manuell eingeben. Stattdessen müssen Sie nur die Verknüpfungstaste drücken und die von Ihnen festgelegte Anweisung wird ausgeführt.

Notiz: Um die Tasteneinstellungen zu öffnen, drücken Sie lange auf die Taste.

Um den Wert der Schaltfläche HIGH festzulegen, definieren Sie die folgenden Einstellungen.

Ähnlichkeit für den LOW-Tastenwert, Sie müssen die folgenden Einstellungen definieren.

Wir haben das ESP32-Board erfolgreich über Bluetooth mit einem Android-Telefon verbunden. Jetzt können Sie damit viele Projekte erstellen. Beispielsweise können Sie Ihre Haushaltsgeräte mithilfe des ESP32 Bluetooth über eine Relaisschaltung steuern.

Verwandt: Relais mit ESP32 mit Arduino IDE

Abschluss

ESP32 ist ein fortschrittliches Mikrocontroller-Board mit Wi-Fi- und Bluetooth-Funktionen. Mit diesen beiden integrierten Modulen können Sie anspruchsvolle Projekte entwerfen und die Peripheriegeräte drahtlos steuern. Ebenso können Sie ESP32 mit einem Android-Telefon verbinden und verschiedene Vorgänge ausführen. Dazu müssen Sie die Bluetooth Serial Android-Anwendung installieren. Öffnen Sie nach der Installation den Beispielcode für ESP32 Bluetooth und laden Sie ihn auf Ihr Board hoch. Sobald der Code hochgeladen ist, können Sie ihn über ein Android-Telefon mit Ihrem Board koppeln.