Arduino Nano - BLE

Dieses Tutorial erklärt Ihnen, wie Sie den Arduino Nano verwenden, um das BLE HM-10-Modul zu steuern. Im Detail werden wir lernen:

Arduino Nano BLE

Der Zweck dieses Tutorials ist:

Es ist wichtig zu beachten, dass dieses Tutorial auf Bluetooth Low Energy (BLE, Bluetooth 4.0) ausgerichtet ist. Wenn Sie Informationen zu Classic Bluetooth (Bluetooth 2.0) benötigen, lesen Sie bitte das ähnliche Tutorial Arduino Nano - Bluetooth.

Erforderliche Hardware

1×Official Arduino Nano
1×Alternativ: DIYables ATMEGA328P Nano Development Board
1×USB-A-zu-Mini-B-Kabel
1×HM-10 BLE 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 das HM-10 Bluetooth-Modul

Der HM-10 ist ein serielles BLE-Modul, das als Serielle-zu-Bluetooth-Low-Energy-Konverter fungiert. Es besitzt die Fähigkeit zu:

  • Daten vom seriellen RX-Pin empfangen und sie über BLE an ein gekoppeltes Gerät wie ein Smartphone übertragen
  • Daten von BLE empfangen (vom gekoppelten Gerät) und an den seriellen TX-Pin senden

Wenn ein Arduino Nano verwendet wird, um mit einer Smartphone-App (Android/iOS) zu kommunizieren, finden die folgenden Schritte statt:

  • Der Arduino Nano ist über die Serial/SoftwareSerial-Pins mit dem HM-10-Bluetooth-Modul verbunden.
  • Das HM-10 Bluetooth-Modul ist mit der Smartphone-App gekoppelt.
  • Daten werden vom Arduino Nano an die Smartphone-App über die Serial/SoftwareSerial-Schnittstelle gesendet.
  • Daten werden vom Arduino Nano von der Smartphone-App empfangen, indem sie aus der Serial/SoftwareSerial gelesen werden.
  • Auf dem Arduino Nano ist kein zusätzlicher BLE-Code erforderlich.

Die Pinbelegung des BLE HM-10-Moduls

BLE-Pinbelegung

Das HM-10 BLE-Modul hat sechs Pins:

  • BKR Pin: Dieser Pin wird verwendet, um das Verhalten des Moduls zu steuern. Anfänger sollten diesen Pin ignorieren.
  • RX Pin: Dies ist ein serieller Datenpin, der mit dem TX-Pin des Arduino Nano verbunden werden sollte. Von diesem Pin empfangene Daten werden an Bluetooth gesendet.
  • TX Pin: Dies ist ein serieller Datenpin, der mit dem RX-Pin des Arduino Nano verbunden werden sollte. Über BLE empfangene Daten werden an diesen Pin als serielle Daten gesendet.
  • GND Pin: Dies ist ein Versorgungspin, der mit dem GND der Stromquelle verbunden werden sollte.
  • VCC Pin: Dies ist ein Versorgungspin, der mit 3,3 V der Versorgungsspannung verbunden werden sollte.
  • STATE Pin: Dieser Pin zeigt die Betriebszustände an:
    • Blinkt im Standby-Modus – 500-ms-Impuls wiederholt;
    • Im Verbindungszustand - hoher Pegel.

    ※ Notiz:

    • Nur vier Pins werden für den HM-10 benötigt, und zwar VCC, GND, RX und TX.
    • Einige Hersteller fertigen das HM-10-Modul nur mit diesen vier Pins.

Über Bluetooth-Seriemonitor-App

Um die Bluetooth-Serial-Monitor-App zu verwenden, müssen Sie zuerst Ihr Arduino Nano-Board mit einem HM-10 Bluetooth-Modul verbinden. Dann laden Sie die App auf Ihrem Smartphone herunter und installieren Sie sie. Schließlich öffnen Sie die App und stellen Sie eine Verbindung zum HM-10 Bluetooth-Modul her.

Wenn die Schritte abgeschlossen sind, werden Sie in der Lage sein, Daten vom Arduino Nano zu übertragen und zu empfangen, als würden Sie den Serial Monitor in der Arduino-IDE verwenden, ohne Änderungen am vorhandenen Arduino-Nano-Code vornehmen zu müssen oder Bluetooth-spezifischen Code hinzuzufügen.

Verdrahtungsdiagramm

Arduino Nano BLE-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.

Die Verdrahtungstabelle. Eine Tabelle zur Verdrahtung.

Arduino Nano Pins HM-10 Bluetooth Pins
RX (Pin 0) TX
TX (Pin 1) RX
5V VCC
GND GND
BKR (NOT connected)
STATE (NOT connected)

※ Notiz:

Der Arduino-Nano-Code kann andere Pins verwenden, indem das Serial-Objekt durch eine Alternative wie Serial1, Serial2 oder SoftwareSerial (falls verfügbar) ersetzt wird.

Wie man Bluetooth programmiert

Für Bluetooth-Programmierung sind keine spezifischen Kenntnisse erforderlich, nur serielle Programmierung ist notwendig.

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

Um Daten von einem Arduino Nano-Board an eine Bluetooth-Anwendung auf einem Smartphone zu senden, kann folgender Arduino Nano-Code verwendet werden. Dieses Beispiel zeigt die Übertragung der Nachricht “Arduino here, command me!” vom Arduino Nano an die Smartphone-App jede Sekunde.

/* * 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-ble */ void setup() { Serial.begin(9600); } void loop() { Serial.println("Arduino here, command me!"); delay(1000); }

Schnelle Schritte

  • Scannen Sie nach verfügbaren Geräten und wählen Sie das HM-10-Modul aus.

Um den Code zu verwenden und eine Verbindung zwischen einem Arduino Nano-Board und einem Smartphone über BLE herzustellen, befolgen Sie diese Schritte:

  • Lade die Bluetooth Serial Monitor App auf dein Smartphone herunter und installiere sie.
  • Verbinde gemäß dem Schaltplan das HM-10 Bluetooth-Modul mit dem Arduino Nano-Board.
  • Öffne die Arduino IDE, kopiere den bereitgestellten Code und lade ihn auf das Arduino Nano-Board hoch. Falls du Schwierigkeiten beim Hochladen des Codes hast, trenne die TX- und RX-Pins vom Bluetooth-Modul, lade den Code hoch und verbinde anschließend die RX- und TX-Pins wieder.
  • Öffne den Seriellen Monitor in der Arduino IDE.
  • Öffne auf deinem Smartphone die Bluetooth Serial Monitor App und schalte in den BLE-Modus.
  • Suche nach verfügbaren Geräten und wähle das HM-10-Modul aus.
Bluetooth serieller Monitor App
  • Verbinde das Smartphone mit dem HM-10 Bluetooth-Modul.
Bluetooth-Seriemonitor-Kopplung
  • Schau dir das Ergebnis in der Android-App an.
Bluetooth-Seriemonitor-App
  • Schau dir die Ausgabe an, die im Serial Monitor der Arduino-IDE angezeigt wird.
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  

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

Bluetooth-App sendet Daten an Arduino Nano

Der unten stehende Code führt die folgenden Aufgaben aus:

  • Daten von der Bluetooth-App an das Arduino Nano-Board senden
  • Das Arduino Nano-Board liest die eingehenden Daten und sendet dann eine Antwort zurück an das Bluetooth-Gerät
/* * 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-ble */ // 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

Hier sind die Schritte, um den Code mit dem Arduino Nano und einer Android-App zu verwenden:

  • Starte die Arduino-IDE und kopiere den bereitgestellten Code.
  • Klicke den Upload-Button, um den Code auf das Arduino Nano-Board zu übertragen.
  • Öffne den seriellen Monitor in der Arduino-IDE.
  • Starte die Android-App und kopple sie mit dem HM-10-Bluetooth-Modul, befolge dabei die Anweisungen eines vorherigen Beispiels.
  • Nachdem die Verbindung hergestellt ist, tippe in der Android-App 'LED ON' oder 'LED OFF' ein und drücke den 'SEND'-Knopf.
Bluetooth-Seriemonitor-App
  • Das Arduino Nano-Board empfängt die Daten und gibt eine Antwort über den seriellen Port aus. Anschließend werden diese Daten an die Bluetooth-App übertragen. Schließlich kann das Ergebnis in der Android-App angezeigt werden.
Bluetooth-Seriemonitor-App
  • Untersuchen Sie die Ausgabe, die im Serial Monitor der Arduino-IDE angezeigt wird.
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  

Sobald Sie die oben genannten Schritte abgeschlossen haben, werden Sie feststellen, dass die im Serial Monitor der Arduino-IDE und in der Android-App angezeigten Daten übereinstimmen.

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

Der folgende Arduino Nano-Beispielcode verwendet Befehle “AN” und “AUS”, die über die Bluetooth Serial Monitor App erhalten werden, um eine integrierte LED ein- bzw. 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-ble */ #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 finden weitere Informationen zu den Anleitungen im Tutorial mit dem Titel Arduino Nano controls LED via Bluetooth/BLE. Für einen detaillierteren Einblick in die Anleitungen verweisen Sie auf das Tutorial Arduino Nano controls LED via Bluetooth/BLE.

Arduino Nano Code - Servo-Motor mit Smartphone-App über BLE steuern

i. Der unten gezeigte Arduino Nano-Code wird verwendet, um einen Winkelwert von der Bluetooth-Serial-Monitor-App zu empfangen. 2. Dieser Winkelwert wird anschließend dazu verwendet, den Winkel eines Servo-Motors 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-ble */ #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 sich einen detaillierteren Blick auf die Anweisungen im Arduino Nano steuert Servomotor über Bluetooth/BLE Tutorial verschaffen.

Für einen genaueren Blick auf die Anweisungen schauen Sie sich bitte das Arduino Nano steuert Servomotor über Bluetooth/BLE Tutorial an.

Wenn Sie die Anweisungen besser verstehen möchten, lesen Sie bitte das Arduino Nano steuert Servomotor über Bluetooth/BLE Tutorial.

Wenn Sie die Bluetooth Serial Monitor-App hilfreich finden, bewerten Sie sie bitte mit 5 Sternen im Play Store. Ihre Wertschä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!