ESP8266 - BLE

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

ESP8266 NodeMCU BLE

Der Zweck dieses Tutorials ist:

Es ist wichtig zu beachten, dass dieses Tutorial speziell Bluetooth Low Energy (BLE, bzw. Bluetooth 4.0) behandelt. Wenn Sie Informationen über klassisches Bluetooth (Bluetooth 2.0) benötigen, konsultieren Sie bitte ein ähnliches Tutorial ESP8266 - Bluetooth.

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×HM-10 BLE 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 HM-10 Bluetooth-Modul

Der HM-10 ist ein serielles BLE-Modul, das als Seriell-zu-Bluetooth Low Energy-Adapter fungiert. Es führt die folgenden Aufgaben aus:

  • Daten vom seriellen RX-Pin entnehmen und an ein verbundenes Gerät, z. B. ein Smartphone, über BLE senden
  • Daten von BLE (vom gekoppelten Gerät) empfangen und an den seriellen TX-Pin senden

Wenn ein ESP8266 verwendet wird, um mit einer Smartphone-App (Android/iOS) zu kommunizieren, erfolgen die folgenden Schritte:

  • Eine Verbindung zwischen dem ESP8266 und dem HM-10 Bluetooth-Modul über Serial-/SoftwareSerial-Pins wird hergestellt.
  • Das HM-10 Bluetooth-Modul ist mit der Smartphone-App gekoppelt.
  • Daten werden vom ESP8266 an die Smartphone-App gesendet, indem sie über Serial-/SoftwareSerial übertragen werden.
  • Daten werden von der Smartphone-App durch den ESP8266 empfangen, indem sie aus dem Serial-/SoftwareSerial gelesen werden.
  • Es ist kein zusätzlicher BLE-Code auf dem ESP8266 erforderlich.

Pinbelegung des BLE HM-10-Moduls

BLE-Pinbelegung

Das HM-10 BLE-Modul hat 6 Pins:

  • Der BKR-Pin wird verwendet, um das Verhalten des Moduls zu steuern. Wenn Sie Anfänger sind, können Sie diesen Pin ignorieren.
  • Der RX-Pin ist der serielle Dateneingang und sollte mit dem TX-Pin des ESP8266 verbunden werden. Von diesem Pin empfangene Daten werden über Bluetooth gesendet.
  • Der TX-Pin ist der serielle Datenpin und sollte mit dem RX-Pin des ESP8266 verbunden werden. Daten, die über BLE empfangen werden, werden an diesen Pin als serielle Daten gesendet.
  • Der GND-Pin ist der Massepin und sollte mit der Masse der Stromquelle verbunden werden.
  • Der VCC-Pin ist der Versorgungs-Pin und sollte mit 3,3 V der Versorgungsspannung verbunden werden.
  • Der STATE-Pin zeigt den Arbeitszustand an:
    • Im Standby-Modus blinkt er – er wiederholt einen 500 ms Impuls;
    • Im Verbindungszustand liegt er auf einem hohen Pegel.

    ※ Notiz:

    • Nur vier Pins sind für den HM-10 notwendig: VCC, GND, RX und TX.
    • Einige Hersteller des HM-10 fertigen es nur mit diesen vier Pins.

Über Bluetooth-Seriemonitor-App

Um die Bluetooth-Serial-Monitor-App zu verwenden, müssen Sie zunächst den ESP8266 mit einem HM-10-Bluetooth-Modul verbinden. Dann laden Sie die App auf Ihr Smartphone herunter und installieren Sie sie. Schließlich öffnen Sie die App und verbinden Sie sie mit dem HM-10-Bluetooth-Modul.

Sobald Sie diese Schritte abgeschlossen haben, können Sie Daten vom ESP8266 senden und empfangen, als würden Sie den seriellen Monitor in der Arduino-IDE verwenden, ohne Änderungen an Ihrem ESP8266-Code vornehmen zu müssen oder Code im Zusammenhang mit Bluetooth hinzuzufügen.

Verdrahtungsdiagramm

ESP8266 NodeMCU BLE-Schaltplan

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.

Eine Verdrahtungstabelle ist eine Art Diagramm, das die Verbindungen zwischen verschiedenen Bauteilen darstellt. Eine Verdrahtungstabelle ist ein Diagramm, das die Verknüpfungen zwischen verschiedenen Komponenten zeigt.

ESP8266 Pins HM-10 Bluetooth Pins
Pin D7 TX
Pin D6 RX
5V VCC
GND GND
BKR (NOT connected)
STATE (NOT connected)

※ Notiz:

Der ESP8266-Code kann so angepasst werden, dass er andere Pins verwendet, indem das Serial-Objekt durch eine alternative Option ersetzt wird, z. B. Serial1, Serial2 oder SoftwareSerial (falls verfügbar).

Wie man Bluetooth programmiert

Für Bluetooth ist keine besondere Programmierung erforderlich; nur die serielle Programmierung ist notwendig.

ESP8266 sendet Daten an die Bluetooth-App auf dem Smartphone

Um Daten von einer ESP8266-Platine an eine Bluetooth-App auf einem Smartphone zu senden, kann der folgende Code verwendet werden. Dieses Beispiel zeigt die Übertragung der Nachricht „ESP8266 hier, gib mir Befehle!“ vom ESP8266 an die Smartphone-App jede Sekunde.

/* * 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-ble */ #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 dem ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:

  • Schau dir Tutorial zur Einrichtung der ESP8266-Umgebung in der Arduino IDE an, falls dies dein erster Einsatz von ESP8266 ist.
  • Verbinde die Bauteile wie im Diagramm gezeigt.
  • Schließe das ESP8266-Board mit einem USB-Kabel an deinen Computer an.
  • Öffne die Arduino IDE auf deinem Computer.
  • Wähle das richtige ESP8266-Board aus, z. B. NodeMCU 1.0 (ESP-12E Modul), und den entsprechenden COM-Port.

Um ein ESP8266-Board so einzurichten, dass es mit einem Smartphone über BLE kommuniziert, sollten diese Schritte befolgt werden:

  • Beschaffen Sie sich die Bluetooth Serial Monitor App (https://arduinogetstarted.com/apps/bluetooth-serial-monitor) und installieren Sie sie auf Ihrem Smartphone.
  • Schließen Sie das HM-10 Bluetooth-Modul gemäß dem Verdrahtungsdiagramm an das ESP8266-Board an.
  • Öffnen Sie die Arduino-IDE, kopieren Sie den oben gezeigten Code und laden Sie ihn auf das ESP8266-Board hoch. Wenn Sie den Code nicht hochladen können, trennen Sie die TX- und RX-Pins vom Bluetooth-Modul, laden Sie den Code hoch und schließen Sie anschließend die RX- und TX-Pins wieder an.
  • Öffnen Sie den Serial Monitor in der Arduino-IDE.
  • Öffnen Sie auf Ihrem Smartphone die Bluetooth Serial Monitor App und wählen Sie den BLE-Modus.
Bluetooth-Seriemonitor-App
  • Verbinden Sie das Smartphone mit dem HM-10 Bluetooth-Modul.
Bluetooth-Seriemonitor-Kopplung
  • Untersuchen Sie das Ergebnis der Android-App.
Bluetooth-Seriemonitor-App
  • Untersuchen Sie die Ausgabe, die im Serial Monitor der Arduino-IDE angezeigt wird.
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  

Wenn Sie die genannten Schritte befolgen und den Code ausführen, werden Sie feststellen, dass die im Serial Monitor der Arduino IDE und in der Android-App angezeigten Daten dieselben sind.

Bluetooth-App: Daten an ESP8266 senden

Die folgenden Schritte werden vom Code ausgeführt:

  • Daten von der Bluetooth-App auf das ESP8266-Board übertragen
  • Das ESP8266-Board liest die eingehenden Daten und sendet eine Antwort zurück an das Bluetooth-Gerät.
/* * 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-ble */ #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.
  • 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 Modul), und den jeweiligen COM-Port.

So verwenden Sie den Code mit dem ESP8266 und einer Android-App:

  • Beginnen Sie damit, die Arduino-IDE zu öffnen und den bereitgestellten Code einzufügen.
  • Klicken Sie auf die Hochladen-Schaltfläche, um den Code auf das ESP8266-Board zu übertragen.
  • Öffnen Sie jetzt den Serial Monitor in der Arduino-IDE.
  • Öffnen Sie als Nächstes die Android-App und koppeln Sie sie mit dem HM-10-Bluetooth-Modul, indem Sie die Anweisungen aus einem früheren Beispiel befolgen.
  • Geben Sie schließlich in der Android-App entweder "LED ON" oder "LED OFF" ein und drücken Sie die Schaltfläche "SEND".
Bluetooth-Seriemonitor-App
  • Das ESP8266-Board empfängt die Daten und gibt anschließend eine Antwort über den seriellen Port aus. Diese Antwort wird an die Bluetooth-App gesendet, und das Ergebnis kann in der Android-App angezeigt werden.
Bluetooth-Seriemonitor-App
  • Überprüfen Sie die Ausgabe, die im Serial Monitor der Arduino IDE angezeigt wird.
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  

Sobald Sie die obigen Schritte durchlaufen haben, werden Sie feststellen, dass die im Serial Monitor der Arduino-IDE und in der Android-App angezeigten Informationen identisch sind.

ESP8266-Code - Steuerung einer LED mit der Smartphone-App über BLE

Dieser ESP8266-Beispielcode verwendet die Befehle “ON” und “OFF”, die über die Bluetooth Serial Monitor App empfangen werden, um eine integrierte LED 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-ble */ #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 können sich einen genaueren Blick auf die Anweisungen verschaffen, indem Sie das Tutorial ESP8266 steuert LED über Bluetooth/BLE aufrufen. Um die Anweisungen besser zu verstehen, schauen Sie sich das Tutorial ESP8266 steuert LED über Bluetooth/BLE an. Für eine gründliche Prüfung der Anweisungen konsultieren Sie das Tutorial ESP8266 steuert LED über Bluetooth/BLE.

ESP8266-Code - Servomotor steuern mit Smartphone-App über BLE

i. Der unten stehende ESP8266-Code dient dem Empfang eines Winkelwerts. 2. Dieser Wert wird über die Bluetooth-Serial-Monitor-App gesendet. 3. Der Winkelwert wird verwendet, um den Winkel eines 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-ble */ #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 finden weitere Informationen zu den Anweisungen im Tutorial mit dem Titel ESP8266 steuert Servomotor über Bluetooth/BLE. Für einen detaillierteren Blick auf die Anweisungen verweisen Sie bitte auf das ESP8266 steuert Servomotor über Bluetooth/BLE Tutorial.

Wenn Sie die Bluetooth-Serial-Monitor-App hilfreich finden, zeigen Sie bitte Ihre Wertschätzung, indem Sie ihr eine 5-Sterne-Bewertung im Play Store geben. Ihre Unterstützung wird sehr geschätzt!

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!