Arduino Nano - Bluetooth

Dieses Tutorial zeigt dir, wie du den Arduino Nano verwendest, um das Bluetooth-HC-05-Modul zu steuern. Im Detail werden wir lernen:

Arduino Nano Bluetooth

Der Zweck dieses Tutorials:

Dieses Tutorial konzentriert sich auf Classic Bluetooth (Bluetooth 2.0). Wenn Sie Informationen zu Bluetooth Low Energy – BLE (Bluetooth 4.0) benötigen, schauen Sie sich bitte dieses ähnliche Tutorial an: Arduino Nano - Bluetooth Low Energy

Erforderliche Hardware

1×Official Arduino Nano
1×Alternativ: DIYables ATMEGA328P Nano Development Board
1×USB-A-zu-Mini-B-Kabel
1×HC-05 Bluetooth-Modul
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano

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 HC-05 Bluetooth-Modul

HC-05 ist ein serielles Bluetooth-Modul, das als Seriell-zu-Bluetooth-Konverter fungiert. Es erfüllt folgende Aufgaben:

  • Daten vom RX-Pin der seriellen Schnittstelle empfangen und über Bluetooth an das gekoppelte Gerät (wie ein Smartphone) übertragen
  • Daten über Bluetooth (vom gekoppelten Gerät) empfangen und an den TX-Pin der seriellen Schnittstelle senden

Speziell in Bezug auf die Kommunikation des Arduino Nano mit einer Smartphone-App (Android/iOS):

  • Der Arduino Nano ist über die Serial/SoftwareSerial-Pins mit einem HC-05 Bluetooth-Modul verbunden.
  • Das HC-05 Bluetooth-Modul ist mit der Smartphone-App verbunden.
  • Der Arduino Nano sendet Daten an die Smartphone-App, indem er sie über Serial/SoftwareSerial sendet.
  • Der Arduino Nano empfängt Daten von der Smartphone-App, indem er sie über Serial/SoftwareSerial ausliest.
  • Es wird kein spezieller Bluetooth-Code auf dem Arduino Nano benötigt.

Pinbelegung des Bluetooth HC-05-Moduls

Bluetooth-Pinbelegung

Das HC-05 Bluetooth-Modul hat 6 Pins:

  • Enable/Key-Pin: Dieser Pin wird verwendet, um zwischen dem Datenmodus (LOW setzen) und dem Befehlsmodus (HIGH setzen) zu wechseln. Wenn er nicht verbunden ist, befindet er sich standardmäßig im Datenmodus.
  • VCC-Pin: Versorgungs-Pin, dieser Pin muss mit +5 V der Versorgungsspannung verbunden werden.
  • GND-Pin: Versorgungs-Pin, dieser Pin muss mit dem GND der Stromquelle verbunden werden.
  • TX-Pin: Serieller Datenpin, dieser Pin muss mit dem RX-Pin des Arduino Nano verbunden werden. Die über Bluetooth empfangenen Daten werden über diesen Pin als serielle Daten gesendet.
  • RX-Pin: Serieller Datenpin, dieser Pin muss mit dem TX-Pin des Arduino Nano verbunden werden. Die von diesem Pin empfangenen Daten werden an Bluetooth gesendet.
  • Status-Pin: Der Statuspin ist mit der integrierten LED verbunden, er kann als Rückmeldung verwendet werden, um zu prüfen, ob Bluetooth ordnungsgemäß funktioniert.

Dennoch müssen zum Ausführen grundlegender Funktionen nur vier Pins des HC-05 Bluetooth-Moduls mit dem Arduino Nano verbunden werden.

Das HC-05 Bluetooth-Modul verfügt auch über zwei integrierte Komponenten:

  • Eine LED, die den Status des Moduls anzeigt:
    • Blinkt alle zwei Sekunden einmal – dies zeigt an, dass das Modul in den Kommandomodus gewechselt hat
    • Schnelles Blinken deutet darauf hin, dass es im Datenmodus auf eine Verbindung wartet
    • Blinkt zweimal pro Sekunde – zeigt im Datenmodus eine erfolgreiche Verbindung an
  • Eine Taste, mit der der Key-/Enable-Pin gesteuert werden kann, um den Betriebsmodus auszuwählen (Datenmodus oder Kommandomodus)

Wie es funktioniert

Das HC-05 Bluetooth-Modul hat zwei Betriebsmodi:

  • Datenmodus, der zum Übertragen und Empfangen von Daten mit dem verbundenen Gerät verwendet wird.
  • Befehlsmodus, der zum Konfigurieren von Einstellungen verwendet wird.

Glücklicherweise ist das HC-05 Bluetooth-Modul in der Lage, mit dem Arduino Nano ohne jegliche Konfiguration zu arbeiten, wobei die Standardeinstellung verwendet wird.

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 Bluetooth-Serienmonitor-App

Die Bluetooth Serial Monitor App ist eine mobile Anwendung, die eine Benutzeroberfläche besitzt, die dem Serial Monitor der Arduino IDE ähnlich ist. Sie kommuniziert über Bluetooth mit einem Arduino Nano-Gerät. Sie können mit dem Arduino Nano interagieren, als wäre es mit dem Serial Monitor eines PCs verbunden, ohne in Ihrem Arduino Nano-Code speziellen Code für das Bluetooth-Modul hinzufügen zu müssen. Um dies zu tun, befolgen Sie diese Schritte:

  • Verbinden Sie das Arduino Nano mit einem HC-05 Bluetooth-Modul
  • Installieren Sie die Bluetooth Serial Monitor App auf Ihrem Smartphone
  • Öffnen Sie die App und koppeln Sie sie mit dem HC-05 Bluetooth-Modul

Jetzt können Sie Daten vom Arduino Nano auf dieselbe Weise senden und empfangen wie mit dem seriellen Monitor der Arduino-IDE. Es sind weder Änderungen am bestehenden Arduino-Nano-Code noch das Hinzufügen von Bluetooth-Code zum neuen Arduino-Nano-Code erforderlich.

Verdrahtungsdiagramm

Arduino Nano Bluetooth-Schaltplan

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

Siehe Der beste Weg, den Arduino Nano und andere Komponenten mit Strom zu versorgen.

Verdrahtungstabelle. Verdrahtungsdiagramm. Diagramm der Verdrahtung

Arduino Nano Pins HC-05 Bluetooth Pins
RX (Pin 0) TX
TX (Pin 1) RX
5V VCC
GND GND
Enable/Key (NOT connected)
State (NOT connected)

※ Notiz:

Sie können andere Pins des Arduino Nano verwenden, indem Sie im Arduino-Nano-Code das Serial-Objekt auf ein anderes Serial1, Serial2,... oder SoftwareSerial ändern, sofern verfügbar.

Wie man Bluetooth programmiert

Es ist kein spezieller Code für Bluetooth erforderlich. Wir müssen nur den Serial-Code verwenden.

Arduino Nano sendet Daten an die Bluetooth-App auf dem Smartphone

Um Daten von einem Arduino Nano an eine Bluetooth-App auf einem Smartphone zu übertragen, muss der folgende Code mit dem Arduino verwendet werden:

In diesem Beispiel wird der Arduino Nano jede Sekunde eine Nachricht an die Bluetooth-App auf einem Smartphone senden “Arduino hier, befehle mir!”.

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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/arduino-nano/arduino-nano-bluetooth */ void setup() { Serial.begin(9600); } void loop() { Serial.println("Arduino here, command me!"); delay(1000); }

Schnelle Schritte

  • Laden Sie die Bluetooth Serial Monitor App auf Ihrem Smartphone herunter und installieren Sie sie.
  • Verbinden Sie das HC-05 Bluetooth-Modul gemäß dem Schaltplan mit dem Arduino Nano.
  • Öffnen Sie die Arduino IDE, kopieren Sie den Code und fügen Sie ihn in die IDE ein.
  • Klicken Sie auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf den Arduino Nano hochzuladen. Falls dies nicht erfolgreich ist, trennen Sie die TX- und RX-Pins vom Bluetooth-Modul, laden Sie den Code erneut hoch und schließen Sie anschließend die RX-/TX-Pins wieder an.
  • Öffnen Sie den seriellen Monitor in der Arduino IDE.
  • Öffnen Sie die Bluetooth Serial Monitor App auf Ihrem Smartphone und wählen Sie den Classic Bluetooth-Modus.
Bluetooth-Seriemonitor-App
  • Schließen Sie das HC-05 Bluetooth-Modul daran an.
Bluetooth-Seriemonitor-Kopplung
  • Schau dir das Ergebnis in der Android-App an.
Bluetooth-Seriemonitor-App
  • Zeige das Ergebnis im seriellen Monitor der Arduino Nano IDE.
COM6
Send
Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me!
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

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

Bluetooth-App sendet Daten an den Arduino Nano

Der folgende Code:

  • Überträgt Daten von einer Bluetooth-App an einen Arduino Nano
  • Ermöglicht es dem Arduino Nano, die Daten zu lesen und eine Antwort an die Bluetooth-App zurückzusenden
/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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/arduino-nano/arduino-nano-bluetooth */ // NOTE: change the Serial to other Serial/Software Serial if you connects Bluetooth module to other pins void setup() { Serial.begin(9600); } void loop() { Serial.println(F("Arduino here, command me!")); if (Serial.available()) { // if there is data comming String command = Serial.readStringUntil('\n'); // read string until meet newline character if (command == "LED OFF") { Serial.println("LED is turned OFF"); // reports action to smartphone app // TODO: control your LED here } else if (command == "LED ON") { Serial.println("LED is turned ON"); // reports action to smartphone app // TODO: control your LED here } } delay(500); }

Schnelle Schritte

  • Kopiere den Code und öffne ihn in der Arduino IDE.
  • Klicke auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code zu kompilieren und auf den Arduino Nano hochzuladen.
  • Öffne den Seriemonitor in der Arduino IDE.
  • Starte die Android-App und kopple sie wie zuvor mit dem HC-05-Bluetooth-Modul.
  • Sobald die Verbindung hergestellt ist, gib im Android-App entweder "LED ON" oder "LED OFF" ein und drücke die "SEND"-Schaltfläche.
Bluetooth-Seriemonitor-App
  • Arduino Nano erhält die Daten und gibt die Antwort über den seriellen Port aus.
  • Die Daten werden dann an die Bluetooth-App gesendet.
  • Das Ergebnis kann in der Android-App angezeigt werden.
Bluetooth-Seriemonitor-App
  • Zeigen Sie die Ausgabe im seriellen Monitor der Arduino-IDE an.
COM6
Send
Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me! LED ON LED is turned ON Arduino here, command me! Arduino here, command me! Arduino here, command me! LED OFF LED is turned OFF Arduino here, command me! Arduino 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.

Arduino Nano Code - LED mit Smartphone-App über Bluetooth steuern

Der folgende Arduino Nano-Beispielcode ist darauf ausgelegt, zwei Befehle („AN“ und „AUS“) von einer Bluetooth-Serial-Monitor-App zu akzeptieren. Diese Befehle dienen dazu, eine eingebaute LED ein-/auszuschalten.

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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/arduino-nano/arduino-nano-bluetooth */ #include <SoftwareSerial.h> #define SOFT_RX 4 // The Arduino Nano pin connected to the TX of the bluetooth module #define SOFT_TX 5 // The Arduino Nano pin connected to the RX of the bluetooth module #define LED_PIN 12 // The Arduino Nano pin connected to the LED SoftwareSerial bluetooth(SOFT_RX, SOFT_TX); void setup() { Serial.begin(9600); bluetooth.begin(9600); pinMode(LED_PIN, OUTPUT); // set the digital pin as output: } 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 eine detailliertere Beschreibung der Anweisungen im Arduino Nano steuert LED über Bluetooth/BLE Tutorial ansehen.

Arduino Nano Code - Steuerung eines Servomotors mit Smartphone-App über Bluetooth

Der unten gezeigte Arduino Nano-Code empfängt den Winkelwert von der Bluetooth Serial Monitor App, um den Winkel des Servomotors zu steuern.

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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/arduino-nano/arduino-nano-bluetooth */ #include <Servo.h> #include <SoftwareSerial.h> #define SOFT_RX 4 // The Arduino Nano pin connected to the TX of the bluetooth module #define SOFT_TX 5 // The Arduino Nano pin connected to the RX of the bluetooth module #define SERVO_PIN 12 // The Arduino Nano pin connected to the servo motor 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(SERVO_PIN); } 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 Anleitungen im Detail im Arduino Nano controls Servo Motor via Bluetooth/BLE Tutorial einsehen. Sie können sich im Arduino Nano controls Servo Motor via Bluetooth/BLE Tutorial einen gründlicheren Einblick in die Anleitungen verschaffen. Für einen umfassenden Überblick über die Anleitungen lesen Sie bitte das Arduino Nano controls Servo Motor via Bluetooth/BLE Tutorial

Wenn Sie die Bluetooth Serial Monitor-App hilfreich finden, zeigen Sie bitte Ihre Wertschätzung, indem Sie der App 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!