ESP8266 - Bluetooth

Dieses Tutorial zeigt Ihnen, wie Sie den ESP8266 verwenden, um das Bluetooth-HC-05-Modul zu steuern. Im Detail werden wir Folgendes lernen:

ESP8266 NodeMCU Bluetooth

Der Zweck dieses Tutorials besteht darin, ...

Dieses Tutorial konzentriert sich auf Classic Bluetooth (Bluetooth 2.0). Wenn Sie Informationen zu Bluetooth Low Energy – BLE (Bluetooth 4.0) suchen, verweisen Sie bitte auf dieses ähnliche Tutorial: ESP8266 - Bluetooth Low Energy

Erforderliche Hardware

1×ESP8266 NodeMCU
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×HC-05 Bluetooth-Modul
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über das HC-05 Bluetooth-Modul

HC-05 ist ein serielles Bluetooth-Modul, das als Seriell-zu-Bluetooth-Konverter fungiert. Es verfügt über die Fähigkeit zu:

  • Daten vom Serial RX-Pin aufnehmen und sie über Bluetooth an das gekoppelte Gerät (z. B. ein Smartphone) senden
  • Daten über Bluetooth (vom gekoppelten Gerät) empfangen und an den Serial TX-Pin übertragen

Insbesondere, wenn der ESP8266 mit einer Smartphone-App (Android/iOS) kommuniziert:

  • Es verbindet sich über seine Serial/SoftwareSerial-Pins mit dem HC-05 Bluetooth-Modul.
  • Das HC-05 Bluetooth-Modul ist mit der Smartphone-App gekoppelt.
  • Um Daten an die Smartphone-App zu senden, sendet der ESP8266 sie einfach an die Serial/SoftwareSerial.
  • Um Daten von der Smartphone-App zu empfangen, liest der ESP8266 sie von der Serial/SoftwareSerial aus.
  • Kein spezieller Bluetooth-Code ist auf dem ESP8266 erforderlich.

Die Pinbelegung des Bluetooth-HC-05-Moduls

Bluetooth-Pinbelegung

Das HC-05 Bluetooth-Modul hat 6 Stifte:

  • Enable-/Key-Pin: Dieser Pin wird verwendet, um zwischen Datemodus (auf LOW) und Befehlsmodus (auf HIGH) zu wechseln. Wenn er nicht verbunden ist, befindet er sich standardmäßig im Datemodus.
  • VCC-Pin: Versorgungs-Pin, dieser sollte mit dem +5V der Versorgungsspannung verbunden werden.
  • GND-Pin: Versorgungs-Pin, dieser sollte mit dem GND der Stromquelle verbunden werden.
  • TX-Pin: Serieller Datenpin, dieser sollte mit dem RX-Pin des ESP8266 verbunden werden. Die über Bluetooth empfangenen Daten werden an diesen Pin als serieller Daten gesendet.
  • RX-Pin: Serieller Datenpin, dieser sollte mit dem TX-Pin des ESP8266 verbunden werden. Die von diesem Pin empfangenen Daten werden an das Bluetooth-Modul gesendet.
  • Status-Pin: Der Statuspin ist mit der eingebauten LED verbunden; er kann als Feedback verwendet werden, um zu prüfen, ob das Bluetooth ordnungsgemäß funktioniert.

Dennoch müssen für grundlegende Operationen nur vier Pins des HC-05 Bluetooth-Moduls mit dem ESP8266 verbunden sein.

Das HC-05 Bluetooth-Modul hat zwei integrierte Bauteile:

  • Eine LED, die den Status des Moduls anzeigt:
    • Einmaliges Blinken alle zwei Sekunden bedeutet, dass das Modul in den Befehlsmodus gewechselt hat
    • Schnelles Blinken zeigt an, dass es im Datenmodus auf eine Verbindung wartet
    • Blinken zweimal pro Sekunde bedeutet, dass die Verbindung im Datenmodus erfolgreich hergestellt wurde
  • Eine Taste, mit der der Key/Enable-Pin gesteuert werden kann, um den Betriebsmodus auszuwählen (Daten- oder Befehlsmodus)

Wie es funktioniert

Das HC-05 Bluetooth-Modul verfügt über zwei Betriebsarten:

  • Datenmodus, der zum Austausch von Daten mit dem gekoppelten Gerät verwendet wird
  • Befehlsmodus, der zum Konfigurieren von Parametern verwendet wird

Glücklicherweise kann das HC-05 Bluetooth-Modul mit dem ESP8266 ohne jegliche Konfiguration betrieben werden, wobei die Standardeinstellungen verwendet werden.

HC-05 Standardeinstellungen

Default Bluetooth Name “HC-05”
Default Password 1234 or 0000
Default Communication Slave
Default Mode Data Mode
Default Data Mode Baud Rate 9600, 8, N, 1
Default Command Mode Baud Rate 38400, 8, N, 1

Über die Bluetooth-Seriemonitor-App

Die Bluetooth Serial Monitor App ist eine mobile Anwendung mit einer Benutzeroberfläche, die dem Serial Monitor der Arduino-IDE ähnelt. Sie kann verwendet werden, um über Bluetooth mit dem ESP8266 zu kommunizieren, ohne dass spezieller Code für das Bluetooth-Modul im ESP8266-Code erforderlich ist. Um dies zu tun, sollten die folgenden Schritte befolgt werden:

  • Verbinde den ESP8266 mit dem HC-05 Bluetooth-Modul
  • Installiere die Bluetooth Serial Monitor App auf deinem Smartphone
  • Öffne die App und koppel sie mit dem HC-05 Bluetooth-Modul

Jetzt können Sie Daten vom ESP8266 genauso senden und empfangen, wie Sie es mit dem Serial Monitor der Arduino-IDE tun würden. Sie müssen keine Änderungen an Ihrem bestehenden ESP8266-Code vornehmen oder Bluetooth-Code zu Ihrem neuen ESP8266-Code hinzufügen.

Verdrahtungsdiagramm

ESP8266 NodeMCU Bluetooth-Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

Verdrahtungstabelle

Verdrahtungsdiagramm

Diagramm der Verdrahtung

ESP8266 Pins HC-05 Bluetooth Pins
Pin D7 TX
Pin D6 RX
5V VCC
GND GND
Enable/Key (NOT connected)
State (NOT connected)

※ Notiz:

Sie können andere ESP8266-Pins verwenden, indem Sie das Serial-Objekt im ESP8266-Code auf ein anderes ändern, z. B. Serial1, Serial2 oder SoftwareSerial, falls verfügbar.

Wie programmiert man für Bluetooth

Es ist keine Bluetooth-spezifische Programmierung erforderlich. Wir müssen lediglich den seriellen Code verwenden.

ESP8266 sendet Daten an die Bluetooth-App auf dem Smartphone

Um Daten von einem ESP8266 zu einer Bluetooth-App auf einem Smartphone zu übertragen, muss auf dem Arduino der folgende Code verwendet werden:

In diesem Fall veranlassen wir, dass der ESP8266 in Ein-Sekunden-Intervallen das „ESP8266 hier, gib mir Befehle!“ an die Bluetooth-App auf einem Smartphone sendet.

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp8266/esp8266-bluetooth */ #include <SoftwareSerial.h> #define SOFT_RX D7 // The ESP8266 pin connected to the TX of the bluetooth module #define SOFT_TX D6 // The ESP8266 pin connected to the RX of the bluetooth module SoftwareSerial bluetooth(SOFT_RX, SOFT_TX); void setup() { Serial.begin(9600); bluetooth.begin(9600); } void loop() { Serial.println("ESP8266 here, command me!"); bluetooth.println("ESP8266 here, command me!"); delay(1000); }

Schnelle Schritte

Um mit ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:

  • Schauen Sie sich die Anleitung zur Einrichtung der ESP8266-Umgebung in der Arduino-IDE an, falls Sie ESP8266 zum ersten Mal verwenden.
  • Verbinden Sie die Bauteile wie im Diagramm gezeigt.
  • Verbinden Sie das ESP8266-Board über ein USB-Kabel mit Ihrem Computer.
  • Öffnen Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das richtige ESP8266-Board aus, z. B. NodeMCU 1.0 (ESP-12E Module), und seinen jeweiligen COM-Port.
  • Installieren Sie die Bluetooth Serial Monitor App auf Ihrem Smartphone. Verbinden Sie das HC-05 Bluetooth-Modul gemäß dem Verdrahtungsdiagramm mit dem ESP8266. Kopieren Sie den Code und öffnen Sie ihn mit der Arduino IDE. Klicken Sie in der Arduino-IDE auf die Schaltfläche Hochladen, um den Code auf den ESP8266 hochzuladen. Wenn das Hochladen des Codes fehlschlägt, trennen Sie die TX- und RX-Pins vom Bluetooth-Modul, laden Sie den Code erneut hoch und verbinden Sie dann RX- und TX-Pins wieder. Öffnen Sie den Seriellen Monitor in der Arduino-IDE. Öffnen Sie die Bluetooth Serial Monitor App auf Ihrem Smartphone und wählen Sie den klassischen Bluetooth-Modus.
Bluetooth-Seriemonitor-App
  • Verbinde es mit dem HC-05 Bluetooth-Modul.
Bluetooth-Seriemonitor-Paarung
  • Schau dir das Ergebnis in der Android-App an.
Bluetooth-Seriemonitor-App
  • Zeigen Sie das Ergebnis im seriellen Monitor der ESP8266-Entwicklungsumgebung an.
COM6
Send
ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me!
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Sie werden feststellen, dass die im Serial Monitor der Arduino-IDE und in der Android-App angezeigten Informationen dieselben sind.

Bluetooth-App Daten an ESP8266 senden

Der folgende Code ermöglicht:

  • Datenübertragung von einer Bluetooth-App an einen ESP8266
  • Auslesen der Daten durch den ESP8266, gefolgt von der Rücksendung einer Antwort an die Bluetooth-App
/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp8266/esp8266-bluetooth */ #include <SoftwareSerial.h> #define SOFT_RX D7 // The ESP8266 pin connected to the TX of the bluetooth module #define SOFT_TX D6 // The ESP8266 pin connected to the RX of the bluetooth module SoftwareSerial bluetooth(SOFT_RX, SOFT_TX); void setup() { Serial.begin(9600); bluetooth.begin(9600); } void loop() { bluetooth.println(F("ESP8266 here, command me!")); if (bluetooth.available()) { // if there is data comming String command = bluetooth.readStringUntil('\n'); // read string until meet newline character if (command == "LED OFF") { bluetooth.println("LED is turned OFF"); // reports action to smartphone app // TODO: control your LED here } else if (command == "LED ON") { bluetooth.println("LED is turned ON"); // reports action to smartphone app // TODO: control your LED here } } delay(500); }

Schnelle Schritte

  • Verdrahten Sie die Komponenten wie im Diagramm gezeigt.
  • Schließen Sie das ESP8266-Board über ein USB-Kabel an Ihren Computer an.
  • Öffnen Sie die Arduino-IDE auf Ihrem Computer.
  • Wählen Sie das richtige ESP8266-Board aus, zum Beispiel (z. B. NodeMCU 1.0 (ESP-12E Module)), und den entsprechenden COM-Port.
  • Kopieren Sie den Code und öffnen Sie ihn mit der Arduino-IDE.
  • Klicken Sie auf die Schaltfläche Hochladen in der Arduino-IDE, um den Code für den ESP8266 zu kompilieren und hochzuladen.
  • Öffnen Sie den Serial Monitor in der Arduino-IDE.
  • Verbinden Sie die Android-App mit dem HC-05-Bluetooth-Modul, wie im vorherigen Beispiel durchgeführt.
  • Sobald die Verbindung hergestellt ist, geben Sie entweder „LED AN“ oder „LED AUS“ in der Android-App ein und drücken Sie die Schaltfläche „Senden“.
Bluetooth-Seriemonitor-App
  • Der ESP8266 empfängt die Daten und gibt die Antwort über den seriellen Port aus. Diese Daten werden anschließend an die Bluetooth-App gesendet, und das Ergebnis kann in der Android-App gesehen werden.
Bluetooth-Seriemonitor-App
  • Schau dir das Ergebnis im Serial Monitor-Fenster der ESP8266 IDE an.
COM6
Send
ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me! LED ON LED is turned ON ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me! LED OFF LED is turned OFF ESP8266 here, command me! ESP8266 here, command me!
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Sie werden feststellen, dass die auf dem Serial Monitor der Arduino-IDE und der Android-App angezeigten Informationen dieselben sind.

ESP8266-Code - LED mit Smartphone-App über Bluetooth steuern

Dieser ESP8266-Beispielcode wird auf zwei Befehle reagieren: “ON” und “OFF”. Wenn sie empfangen werden, werden diese Befehle verwendet, um eine eingebaute LED über die Bluetooth Serial Monitor App ein- oder auszuschalten.

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp8266/esp8266-bluetooth */ #include <SoftwareSerial.h> #define SOFT_RX D7 // The ESP8266 pin connected to the TX of the bluetooth module #define SOFT_TX D6 // The ESP8266 pin connected to the RX of the bluetooth module #define LED_PIN 8 SoftwareSerial bluetooth(SOFT_RX, SOFT_TX); void setup() { Serial.begin(9600); bluetooth.begin(9600); pinMode(LED_PIN, OUTPUT); // Configure the ESP8266 pin as a digital output pin } void loop() { if (bluetooth.available()) { // if there is data comming String command = bluetooth.readStringUntil('\n'); // read string until meet newline character if (command == "LED OFF") { digitalWrite(LED_PIN, LOW); // turn off LED bluetooth.println("LED is turned OFF"); // reports action to smartphone app } else if (command == "LED ON") { digitalWrite(LED_PIN, HIGH); // turn on LED bluetooth.println("LED is turned ON"); // reports action to smartphone app } } }

Sie finden eine ausführlichere Erläuterung der Anweisungen im ESP8266 steuert LED über Bluetooth/BLE Tutorial.

ESP8266-Code - Steuerung eines Servomotors mit Smartphone-App über Bluetooth

Der untenstehende ESP8266-Code empfängt den Winkelwert von der Bluetooth-Serial-Monitor-App, um den Winkel des Servomotors zu steuern.

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp8266/esp8266-bluetooth */ #include <SoftwareSerial.h> #include <Servo.h> #define SOFT_RX D7 // The ESP8266 pin connected to the TX of the bluetooth module #define SOFT_TX D6 // The ESP8266 pin connected to the RX of the bluetooth module SoftwareSerial bluetooth(SOFT_RX, SOFT_TX); Servo servo; // create servo object to control a servo int pos = 0; // variable to store the servo position void setup() { Serial.begin(9600); bluetooth.begin(9600); servo.attach(11); // attaches the servo on pin 11 to the servo object } void loop() { if (bluetooth.available()) { // if there is data comming int angle = bluetooth.parseInt(); if (angle >= 0 && angle <= 180) { servo.write(angle); // rotate servo bluetooth.print("Rotated servo to angle: ");// reports action to smartphone app bluetooth.println(angle); } else { bluetooth.print("Invalid angle: ");// reports invalid value to smartphone app bluetooth.println(angle); } } }

Sie können die Anweisungen im Detail im ESP8266 controls Servo Motor via Bluetooth/BLE Tutorial einsehen.

Für einen gründlicheren Blick auf die Anweisungen schauen Sie sich das ESP8266 controls Servo Motor via Bluetooth/BLE Tutorial an.

Wenn Sie die Anweisungen eingehender sehen möchten, lesen Sie das ESP8266 controls Servo Motor via Bluetooth/BLE Tutorial.

Um einen umfassenderen Überblick über die Anweisungen zu erhalten, gehen Sie zum ESP8266 controls Servo Motor via Bluetooth/BLE Tutorial.

Wenn Sie die Bluetooth-Serial-Monitor-App hilfreich finden, geben Sie ihr bitte eine 5-Sterne-Bewertung im Google Play Store. Vielen Dank für Ihre Unterstützung!

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

Funktionsreferenzen

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!