- Erforderliche Komponenten
- Schaltplan des Bluetooth-Moduls ESP8266 HC-05
- HC-05 Bluetooth-Modul
- Verwenden des seriellen Bluetooth-Terminals (Android App)
- Programmieren der NodeMCU ESP8266 für die Bluetooth-Schnittstelle
Heute ist Bluetooth ein fester Bestandteil digitaler Geräte und in den meisten Geräten wie Smartphones, Laptops, PCs, Kameras, Uhren, Fitnessbändern und vielen mehr integriert. Bluetooth hat das Protokoll in der drahtlosen Kommunikation seit seiner Entdeckung immer dominiert. Die Bluetooth-Technologie ist zwar grundsätzlich ein Kabelersatzsystem, nutzt jedoch auch eine universelle Brücke zu vorhandenen Datennetzen und einen Ad-hoc-Verbindungsmechanismus für die Anzahl der Geräte in verschiedenen Konfigurationen. Wir haben die Bluetooth-Module HC05 und HC06 mit vielen anderen Mikrocontrollern verwendet, damit sie drahtlos kommunizieren können:
- Verbindung von Bluetooth HC-05 mit STM32F103C8 Blue Pill: Kontroll-LED
- Verbindung des Bluetooth-Moduls HC-05 mit dem AVR-Mikrocontroller
- Android-gesteuerter Roboter mit 8051-Mikrocontroller
- Steuern von Raspberry Pi GPIO mit der Android App über Bluetooth
- Bluetooth-gesteuertes Spielzeugauto mit Arduino
Heute werden wir das HC-05 Bluetooth-Modul mit dem beliebten Wi-Fi-Modul ESP8266 verbinden und eine LED drahtlos steuern, indem wir Befehle über Bluetooth senden. Diese LED kann durch ein Relais und eine AC-Appliance ersetzt werden, um eine Hausautomationsanwendung zu erstellen.
Erforderliche Komponenten
Hardware:
- NodeMCU ESP8266
- HC-05 Bluetooth-Modul
Software:
- Arduino IDE
- Serielles Bluetooth-Terminal (Android App): Zum Überwachen von Bluetooth-Daten auf dem Smartphone.
Schaltplan des Bluetooth-Moduls ESP8266 HC-05
Der Schaltplan zum Verbinden des Bluetooth-Moduls HC-05 mit der NodeMCU ESP8266 ist sehr einfach und wird nachfolgend gezeigt:
Für ESP8266 wird ein externes Bluetooth-Modul benötigt, da es kein eingebautes Bluetooth wie ESP32 hat. ESP32 verfügt über Bluetooth Low Energy (BLE) und Classic Bluetooth, auf denen wir zuvor einige Tutorials behandelt haben:
- ESP32 BLE Server - GATT-Dienst zur Anzeige des Batteriestands
- ESP32 BLE Client - Verbindung zum Fitnessband herstellen, um eine Glühbirne auszulösen
- Verwendung von seriellem Bluetooth in ESP32
HC-05 Bluetooth-Modul
HC-05 ist ein serielles Bluetooth-Modul. Es kann mit AT-Befehlen konfiguriert werden. Es kann in drei verschiedenen Konfigurationen arbeiten (Master, Slave, Loopback). In unserem Projekt werden wir es als Sklaven verwenden. Die Funktionen des HC-05-Moduls umfassen:
- Typische Empfindlichkeit von -80 dBm.
- Standardbaudrate: 9600 bps, 8 Datenbits, 1 Stoppbit, keine Parität.
- PIN-Code für das automatische Pairing: Standard-PIN-Code „1234“ oder „0000“.
- Es hat 6 Stifte.
- Vcc- und Gnd-Pins werden zur Stromversorgung des HC-05 verwendet.
- Tx- und Rx-Pins werden für die Kommunikation mit dem Mikrocontroller verwendet.
- Aktivierungsstift zum Aktivieren des HC-05-Moduls. Wenn es niedrig ist, ist das Modul deaktiviert
- Der Status-Pin dient als Statusanzeige. Wenn es nicht mit einem anderen Bluetooth-Gerät gekoppelt / verbunden ist, blinkt die LED kontinuierlich. Wenn es mit einem anderen Bluetooth-Gerät verbunden / gekoppelt ist, blinkt die LED mit einer konstanten Verzögerung von 2 Sekunden.
Weitere Informationen zum Bluetooth-Modul finden Sie in unseren anderen Bluetooth-Projekten.
Verwenden des seriellen Bluetooth-Terminals (Android App)
Die Verwendung dieser App ist sehr einfach und erfordert nur wenige Schritte. Die Screenshots sind unten mit Schritten angegeben. Koppeln Sie einfach den HC-05 mit dem Smartphone. Der Standardcode ist '0000' oder '1234', aber meistens funktioniert '1234'.
- Laden Sie zuerst die App herunter und installieren Sie sie. Gehen Sie dann zu den Geräten, um das HC-05-Modul zu finden. Wählen Sie das in der App gesuchte HC-05-Modul aus. Wenn nicht gefunden, prüfen Sie, ob der HC-05 ordnungsgemäß mit Strom versorgt wird.
- Nach dem Klicken auf den HC-05 wird eine Verbindung hergestellt. Geben Sie nun eine Nachricht in das Nachrichtenfeld ein und senden Sie sie. Es wird auf dem Arduino Serial Monitor gedruckt.
Programmieren der NodeMCU ESP8266 für die Bluetooth-Schnittstelle
Um die NodeMCU ESP8266 mit ArduinoIDE zu programmieren, schließen Sie sie einfach mit einem Micro-USB-Kabel an einen Laptop oder PC an und öffnen Sie die Arduino IDE. Für dieses Tutorial werden die Hardware-Serien und die Software-Serien verwendet. Die Hardware-Seriennummer wird zum Lesen und Schreiben von Daten in den Arduino Serial Monitor verwendet, und die Software-Seriennummer wird für die Kommunikation mit HC-05 verwendet. Wie immer finden Sie am Ende des Tutorials vollständigen Code und Demo-Video.
Fügen Sie zunächst die Software Serial-Bibliothek hinzu, da diese in diesem Lernprogramm verwendet wird.
#einschließen
Definieren Sie den RX- und TX-Pin für die serielle Software-Kommunikation und den an NodeMCU angeschlossenen LED-Pin. Wir verwenden die interne LED der NodeMCU an Pin D4.
SoftwareSerial btSerial (D2, D3); // RX, int led = D4;
Starten Sie die Software- und Hardware-Serie mit einer Baudrate von 9600. Stellen Sie den LED-Pin als Ausgang ein. Drucken Sie eine Begrüßungs- und Debug-Nachricht aus.
Serial.begin (9600); btSerial.begin (9600); PinMode (D4, OUTPUT); Serial.println ("Gestartet…");
Lesen Sie zunächst vom Bluetooth-Modul und definieren Sie einen Fall , in dem das Bluetooth-Modul , wenn es „B“ vom Telefon empfängt, die mit D4 der NodeMCU verbundene blinkende LED startet. Wenn das Bluetooth-Modul „S“ empfängt, hört die blinkende LED auf. Wir verwenden hier keine delay () . Aber Arduino 'Millis' wird verwendet, um die Leistung von Arduino nicht zu beeinträchtigen.
if (btSerial.available ()> 0) { char data = btSerial.read (); switch (data) { case 'B': ledB = "blinken"; Unterbrechung; case 'S': ledB = "stop"; Unterbrechung; Standard: break; } }
Der Millis wird definiert und die Verzögerung auf 500 ms eingestellt, dh die LED blinkt alle 500 ms. Sie können die LED-Verzögerung auch konfigurieren, indem Sie den Wert von 'Intervall' ändern. Der geführte Zustand wird umgeschaltet.
unsigned long currentMillis = millis ();
if (ledB == "blinken") { Serial.println ("blinken gestartet"); if (currentMillis - previousMillis> = Intervall) { previousMillis = currentMillis; if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } digitalWrite (led, ledState); } }
Damit ist die Programmierung von NodeMCU zum drahtlosen Blinken der LED über Bluetooth abgeschlossen. Sie können das Programm auch ändern, um verschiedene Aufgaben mit LED auszuführen, z. B. kann die LED durch ein Relais mit Wechselstromgerät ersetzt werden, um ein Bluetooth-Hausautomationsprojekt durchzuführen. Im Zweifelsfall oder Vorschlag wenden Sie sich bitte an unser Forum oder an einen Kommentar unten.