ESP32 unterstützt die Dual -Bluetooth -enthalten Bluetooth Classic und das Bluetooth niedrige Energie (BLE). In diesem Artikel werden wir die Arbeit dieser beiden Bluetooth diskutieren.
Hier finden Sie einen kurzen Vergleich von Bluetooth Classic mit Bluetooth Low Energy:
Spezifikation | Bluetooth Classic | Bluetooth niedriger Energie/BLE |
Datenübertragungsrate | 2-3 Mbit / s | 1 Mbit / s |
Bereich | ~ 10-100 m | ~ 50 m |
Arbeitsfrequenz | 79 rf | 40 rf |
Spitzenstromverbrauch | ~ 30 mA | <15mA |
Energieverbrauch | 1W | 0.01-0.5W |
Gesamtzeit zum Senden von Daten | 100 ms | 3 ms |
Anwendungen | Audio, Musik -Streaming | Sensor, Wearables |
Für einen detaillierteren Vergleich finden Sie hier, um die offizielle Bluetooth -Site zu besuchen.
Im Folgenden finden Sie die beiden Bluetooth -Modi, die in der ESP32 -Karte verfügbar sind:
1: ESP32 Bluetooth Classic mit Arduino IDE
Die ESP32 -Karte wird mit einer Dual -Bluetooth -Unterstützung geliefert. Heute werden wir nur über Bluetooth Classic diskutieren. Der einzige Unterschied, der zwischen beiden besteht. Ble bleibt im Schlafmodus, bis es für die Datenübertragung initialisiert wird.
ESP32 Bluetooth Classic serielle Kommunikation
ESP32 verfügt über integrierte Bluetooth-Module, die zuerst Daten empfangen und dann an den XTensa-Prozessor weiterleiten. Also, um diese Kommunikation festzustellen "Bluetoothserial" Die Bibliothek wird verwendet, die der Arduino -Serienbibliothek ähnelt, aber nur innerhalb von ESP32 ist. Im Folgenden finden Sie einige Funktionen, die von der Bluetooth -Serienbibliothek angeboten werden:
Bluetooth kontrollierte LED mit ESP32
Schreiben wir einen einfachen Code, mit dem eine LED mithilfe von Mobile Bluetooth über Bluetooth -drahtlose Kommunikation steuern kann. Im Folgenden ist die Hardware erforderlich, um die LED mithilfe der Bluetooth -Serienkommunikation zu steuern:
Schaltkreis
Verbinden Sie die LED am Digital Pin 15 von ESP32 mit einem negativen Anschluss an GND der ESP32 -Karte. Für eine sichere Stromlimit können wir auch den Widerstand (220 Ohm) zwischen ihnen anschließen:
Code
Öffnen Sie Arduino IDE und wählen Sie das ESP32 -Board im Board Manager aus, um zu sehen, wie Sie das ESP32 -Board in Arduino IDE installieren. Klicken. Nach Auswahl der Karte schreiben Sie den folgenden Code im Editor -Fenster:
#include /*Bluetooth Serienkommunikationsbibliothek* /Hier im obigen Code haben wir mit der Bluetooth -Serienbibliothek für ESP32 begonnen. Als nächstes haben wir Bluetooth Serial Library -Funktionen aufgenommen, mit denen das ESP32 Bluetooth ermöglicht werden kann.
Der nächste LED -Pin 15 wird initialisiert und verwendet die PinMode () Funktions -LED -Pin wird als Ausgabe eingestellt.
Im Schleifen Teil des Codes wird das Programm auf serielle Bluetooth -Datenverfügbarkeit überprüfen. Wenn die Eingabedaten 1 LED eingeschaltet sind und die empfangenen Daten 0 LED sind, schaltet sich die LED aus.
Sobald der Code hochgeladen ist. Bluetooth der ESP32 -Karte wird eingeschaltet und die folgende Nachricht wird auf dem Serienmonitor angezeigt:
Installation des seriellen Bluetooth -Terminals auf Smartphone
Wir benötigen ein Bluetooth -Gerät, mit dem Anweisungen an ESP32 gesendet werden können, sodass wir ein Android -Smartphone verwenden können, um es mit ESP32 Bluetooth zu interpretieren. Zuerst müssen wir ein Serienterminal in einem Android -Telefon installieren. Befolgen Sie die unten angegebenen Schritte, um das Android -Telefon mit ESP32 Schnittstellen zu haben:
Schritt 1: Öffnen Sie den Google Play Store auf Ihrem Smartphone und suchen Sie Serial Bluetooth Terminal. Installieren Sie die folgende Anwendung:
Schritt 2: Öffnen Sie nach der Installation die Bluetooth -Einstellungen von Mobiltelefonen. Suchen Sie nach ESP32 Bluetooth und klicken Sie, um es mit Ihrem Smartphone zu kombinieren, indem Sie auf klicken Paar:
Schritt 3: Nach dem Tippen auf ein Paar, Das Mobiltelefon beginnt mit ESP32 Bluetooth:
Schritt 4: Öffnen Sie nun die serielle Bluetooth -Terminalanwendung und gehen Sie zu Geräte Aus der Seitenmenü:
Schritt 5: Sobald die Geräteoption geöffnet ist, fordert sie einige Berechtigungen an oder drücken Sie die AKTUALISIERUNG Schaltfläche oben rechts Ecke:
Schritt 6: Das folgende Pop-up kommt auf Klicken Sie auf Einstellungen und erlauben Sie die Erlaubnis, die sie fordert:
Schritt 7: Jetzt ist ESP32 -Board bereit, Anweisungen über Bluetooth zu nehmen. Unter Bluetooth Classic Option Wählen Sie ESP32 -Board:
Schritt 8: Sobald ESP32 ausgewählt ist, beginnt es mit der Verbindung und bei Erfolg a In Verbindung gebracht Nachricht erscheint:
Schritt 9: Jetzt können wir jede Anweisung senden, indem wir sie hier eingeben. Typ 1 und klicken. In ähnlicher Weise durch Tippen 0 LED wird ausschalten:
In ähnlicher Weise können wir den Ausgang auf dem Serienmonitor des Arduino -IDE sehen, was er erhält:
Ausgang
LED schaltet sich nach dem Senden 1 ein:
LED schaltet sich nach dem Senden von 0 aus:
Notiz: Wir können auch Schaltflächen für bestimmte Anweisungen konfigurieren, wie sie im Bild unten gezeigt sind. Klicken Sie dazu auf die Schaltflächen und legen Sie den gewünschten Wert ein. Hier haben wir zwei Schaltflächen für hoch und andere für einen niedrigen Zustand gesetzt. Sie können diese Verknüpfungen auch in Hexadezimalwerten konfigurieren.
2: ESP32 Bluetooth Low Energy (BLE) mit Arduino IDE
Ble oder Bluetooth Low Energy ist ein Stromsparmodus von Bluetooth. Die Hauptanwendung umfasst die Datenübertragung über kurze Entfernungen wie Türeintritt, Smart Watches, Wearables, Blutdruckmonitor, Sicherheit und Heimautomationen. Ble kann begrenzte Daten übertragen.
Im Gegensatz zu Bluetooth Classic, der die ganze Zeit eingeschaltet bleibt, bleibt Ble im Schlafmodus, außer wenn er aufgerufen wird, oder die Verbindung wird eingeleitet. Dies macht die BLE sehr leistungsfähig und verbraucht 100 -mal weniger Leistung als die klassische.
Ble Server und Client
Bluetooth Low Energy unterstützt das Gerät auf zwei verschiedene Arten, wodurch ESP32 sowohl als Server als auch als Client für Bluetooth mit niedrigem Energie.
Ble -Unterstützung nach Kommunikationsmodi:
Wenn ESP32 als Server fungiert. Sobald der Client -Geräte nach verfügbaren Bluetooth -Geräten scannt, stellt der Server die Verbindung zwischen ihnen her und überträgt die Daten vom Server zum Client -Gerät. Diese Kommunikation wird als Punkt zu Punkt bezeichnet.
In diesem Tutorial werden wir ein Beispiel für eine Punkt-zu-Punkt-Kommunikation zwischen zwei ESP32-Boards nehmen.
Wichtige Begriffe in BLE
Hier sind einige wichtige Begriffe, die Sie bei der Arbeit mit ESP32 -Anwendungen kennen sollten:
Gatt: GATT- oder GATERISCHE Attribute, die eine hierarchische Struktur für Datenübertragungen zwischen BLE -Geräten unter Verwendung von Dienst und Merkmal definieren. Es definiert die Art und Weise, wie zwei Geräte Daten zwischen ihnen kommunizieren.
BEIISCHER SERVICE: Die obere Ebene in der GATT -Hierarchie ist ein Profil, das einen oder mehrere Dienste enthält. Ble hat mehr als einen Service. Jeder dieser Dienste hat ihre eigenen Merkmale, die auch als Referenz für andere Dienste dienen können.
Ble charakteristisch: Merkmal ist eine Gruppe von Informationen, die immer im Besitz von Dienst sind. Hier werden tatsächliche Daten in Hierarchie (Wert) gespeichert. Es enthält immer zwei Attribute:
UUid: UUID (allgemein eindeutige Kennung) wird jedem Dienst und Charakteristik gegeben. Es ist eine eindeutige 128-Bit-ID, die mit einem Online-UUID-Generator generiert werden kann. Überprüfen Sie diesen kostenlosen UUID -Generator. Ein Beispiel Uuid sieht so aus:
583F8B30-74B4-4757-8143-56048FD88B25Eine Universal Bluetooth Special Interest Group (SIG) hat einige der verkürzten Uuids für verschiedene Arten von Diensten und Profilen vordefiniert, um sie hier zu lesen.
Auf ESP32 mit Arduino IDE aufstellen
Um die Arbeit von Ble zu verstehen, werden wir zwei verschiedene ESP32 -Boards verwenden Server und bewerben Klient Versucht, den Server -Bluetooth zu verbinden.
Arduino IDE hat separate Beispiele für Scanner und Server.
Um zu sehen, wie Sie eine ESP32 -Karte mit Arduino IDE in Windows installieren.
ESP32 Ble Server
Zunächst werden wir den Server -Beispielcode in unserem ersten ESP32 -Board hochladen, der als a wirkt Server.
Zum Öffnen von Ble Server -Beispiel gehen Sie zu: Datei> Beispiele> ESP32 Ble Arduino> Ble_Server:
Der folgende Code wird in Arduino IDE geöffnet.
Servercode
Laden Sie den folgenden Code in der ESP32 -Board mit Arduino IDE hoch, stellen Sie jedoch sicher, dass Sie die zweite Karte für eine Weile trennen, um zu vermeiden, dass der gleiche Code auf eine einzelne Karte hochgeladen wird:
#enthaltenDer Code beginnt mit der Einbeziehung der erforderlichen Bluetooth -Bibliotheksdateien. Dann ist UUID sowohl für Service als auch für die Eigenschaft definiert. Sie können mit dem Standard -UUID gehen oder mit dem kostenlosen UUID -Generator generieren. Die nächste serielle Kommunikation wird durch Definition der Baudrate initialisiert.
Als nächstes haben wir ein BLE -Gerät namens ESP32 erstellt und danach das BLE -Gerät als Server mithilfe des CreateServer () Funktion und später setzen wir den charakteristischen Wert. Im letzten Schritt begannen wir den Service, indem wir ihn bewerben, damit andere Geräte danach suchen können.
ESP32 BLE -Scanner
Jetzt werden wir ein ESP32 -Scan -Beispiel in der zweiten ESP32 -Karte hochladen. Um dies zu tun, gehen Sie zu: Datei> Beispiele> ESP32 BLE Arduino> Ble_Scan:
Der folgende Code ist im Arduino IDE -Editor geöffnet.
Scannercode
Der angegebene Code wird im Scanner ESP32 -Board verwendet. Öffnen Sie die IDE und laden Sie den Code hoch. Denken Sie daran, andere Boards zu trennen, bevor Sie den Scannercode hochladen.
#enthaltenDer obere Code sucht nach der Anzahl der verfügbaren verfügbaren Geräte für BLE und zeigt deren Gesamtzahl mit Adressen an. Nach dem Hochladen des Code in der ESP32 -Scannerplatine drücken Sie die Ermöglichen Button, ESP32 -Board sucht automatisch nach verfügbaren Geräten:
Ausgang
Sobald der ESP32 die verfügbaren Geräte scannt, wird das folgende Ergebnis angezeigt. Hier sind ESP32 9 Geräte gescannt, darunter eine ESP32 -Karte mit Ble_Server -Code und ein anderes Gerät ist Mi Band 6. Der Rest aller Geräte sind in der Nähe meines ESP32 erhältlich.
So reparieren Sie die ESP32 -BLE -Scan -Bibliothek nicht Zählgeräte
Das Beispiel für die ESP32 -Scan -Bibliothek hat den Fehler, nicht die Gesamtzahl der Geräte zu zählen. Um dieses Problem zu beheben, gehen Sie zum genannten Ort und ersetzen Sie den unten angegebenen Code:
C: \ Benutzer \ Benutzername \ AppData \ Local \ Arduino15 \ Pakete \ ESP32 \ Hardware \ ESP32 \ 1.0.6 \ Bibliotheken \ Ble \ src \ blescan.CPPErinnere dich an unhide Alle Ordner, da der AppData -Ordner im C -Verzeichnis standardmäßig verborgen bleibt. Nach dem Öffnen der BLE_SCAN -Quelldatei .CPP Ersetzen Sie die folgende Bedingung im Code:
if (m_padvertisedDeviceCallbacks)Testen von ESP32 Ble Server mit Smartphone
Die meisten modernen Smartphones arbeiten mit BLE -Technologie, um mit verschiedenen Geräten wie Smartwatch, Wearables, Sensoren und anderen Hausautomationskräften zu kommunizieren. Hier ist ESP32 ein Zugangspunkt für Geräte. Also verbinden wir ein Android -Telefon mit einem ESP32 -Board.
BLE -Servercode für ESP32 -Smartphone -Zugriff
Laden Sie den folgenden Code in ESP32 -Board hoch:
#include /*Bluetooth -Bibliothek inklusive* /Installation der BLE -Anwendung im Android -Smartphone
In den folgenden Schritten werden BLE -Anwendungen in Smartphones installiert und dazu beitragen, mobile Geräte mit ESP32 -Boards zu fördern.
Schritt 1: Öffnen Sie die Installation von Google Play Store Ble Scanner Anwendung:
Schritt 2: Öffnen Sie nach der Installation die Anwendung und ermöglichen Sie die erforderliche Berechtigung und denken Sie daran, mobile Bluetooth einzuschalten:
Schritt 3: Scannen Sie nun nach den verfügbaren Bluetooth -Geräten. ESP32 -Board verbinden:
Schritt 4: Sobald die ESP32 -Karte mit dem Smartphone verbunden ist, wird die ESP32 -Karte angezeigt. Hier sehen wir die UUID -Adressen und können neue charakteristische Werte lesen und schreiben:
Schritt 5: Um den gespeicherten charakteristischen Wert zu lesen, klicken Sie auf R. Das Ergebnis wird wie in Bild unten erwähnt angezeigt:
Schritt 6: Um einen neuen charakteristischen Wert zu schreiben, klicken Sie auf W:
Schritt 7: Hier erscheint ein neues Popup, wo wir einen jeglichen charakteristischen Wert schreiben und klicken können OK:
Schritt 8: Der neue Wert, der geschrieben wird, erscheint wie in Bild gezeigt:
Schritt 9: Außerdem können wir den gleichen neuen charakteristischen Wert sehen, der auf dem seriellen Monitor von Arduino IDE gedruckt ist:
Wir haben ein Gerät erfolgreich mit ESP32 Ble verbunden.
Abschluss
ESP32 wird mit Dual Bluetooth geliefert, die Bluetooth Classic und Bluetooth Low Energy sind. Hier in diesem Artikel haben wir sowohl Bluetooth Classic als auch seine verschiedenen Anwendungen und Arbeiten besprochen. Bluetooth Classic wird zur hohen Datenübertragung verwendet, während BLE (Bluetooth Low Energy) für kurze Strecken mit weniger Strombedarf verwendet wird. Dieser Artikel gibt einen ultimativen Leitfaden für die ESP32 -Board -Bluetooth -Arbeit und die Konfiguration.