Arduino Nano ESP32 Bluetooth-Rotator-Beispiel - Winkelsteuerung über BLE-Anleitung

Übersicht

Dieses Beispiel bietet eine Winkelpositionssteuerung auf dem Arduino Nano ESP32 mit BLE (Bluetooth Low Energy) über die DIYables Bluetooth STEM-App. Steuern Sie Rotationswinkel und Servomotoren drahtlos von einem Smartphone aus. Unterstützt Modus mit beschränktem Bereich und Dauerdrehung. Geeignet für Servosteuerung, Robotik, Pan-Tilt-Mechanismen und Winkelpositionierung.

Hinweis: Der Arduino Nano ESP32 unterstützt nur BLE — Classic Bluetooth wird nicht unterstützt. Die DIYables Bluetooth App funktioniert auf Android und iOS mit BLE.

Arduino Nano ESP32 Bluetooth-Rotator-Beispiel - Winkelsteuerung über BLE-Anleitung

Funktionen

  • Modus mit Beschränkung: Legen Sie einen Mindest-/Maximalwinkelbereich fest (z. B. 0° bis 180°)
  • Kontinuierlicher Modus: Vollständige 360°-Dauerdrehung
  • Echtzeit-Winkel: Erhalten Sie Winkelaktualisierungen, wenn der Benutzer das Zifferblatt dreht
  • Servointegration: Direkte Servomotorsteuerung
  • Initiale Winkelsynchronisierung: Aktuelle Position beim Verbinden senden
  • Android- und iOS-Unterstützung: BLE ist mit beiden Plattformen kompatibel
  • Keine Kopplung erforderlich: BLE verbindet sich ohne manuelle Kopplung

Erforderliche Hardware

1×Arduino Nano ESP32
1×USB-Kabel Typ-C
1×(optional) Servomotor
1×Breadboard
1×Jumper-Drähte
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano ESP32

Oder Sie können die folgenden Kits kaufen:

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.

Kaufhinweis: Falls Sie mehrere Servomotoren verwenden möchten, empfehlen wir die Verwendung des PCA9685 16 Channel PWM Servo Driver Module, um MCU-Pins zu sparen und die Verdrahtung zu vereinfachen.

Arduino Nano ESP32 Code

Schnelle Schritte

  • Neu beim Arduino Nano ESP32? Beginnen Sie mit der Arduino Nano ESP32 Anleitung für Anfänger.
  • Verbinden Sie den Arduino Nano ESP32 über USB mit Ihrem Computer.
  • Öffnen Sie Arduino IDE.
  • Wählen Sie die Arduino Nano ESP32 Platine und den korrekten COM-Port.
  • Klicken Sie auf das Bibliotheken Symbol in der linken Seitenleiste.
  • Suchen Sie nach "DIYables Bluetooth" und wählen Sie die DIYables Bluetooth Bibliothek von DIYables.
  • Klicken Sie auf Installieren.
Arduino Nano ESP32 DIYables Bluetooth Bibliothek
  • Wenn Sie aufgefordert werden, Abhängigkeiten zu installieren, klicken Sie auf Alles installieren.
Arduino Nano ESP32 DIYables Bluetooth Abhängigkeit

BLE-Code

  • In Arduino IDE öffnen Sie Datei Beispiele DIYables Bluetooth ArduinoBLE_Rotator, oder fügen Sie den Code in den Editor ein.
/* * DIYables Bluetooth Library - ESP32 BLE Rotator Example * Works with DIYables Bluetooth STEM app on Android and iOS * * This example demonstrates the Bluetooth Rotator feature: * - Rotatable disc/knob control (0-360 degrees) * - Continuous or limited angle range * - Perfect for servo control, compass display, volume knobs * * Tutorial: https://diyables.io/bluetooth-app * Author: DIYables */ #include <DIYables_BluetoothServer.h> #include <DIYables_BluetoothRotator.h> #include <platforms/DIYables_Esp32BLE.h> // BLE Configuration const char* DEVICE_NAME = "ESP32BLE_Rotator"; const char* SERVICE_UUID = "19B10000-E8F2-537E-4F6C-D104768A1214"; const char* TX_UUID = "19B10001-E8F2-537E-4F6C-D104768A1214"; const char* RX_UUID = "19B10002-E8F2-537E-4F6C-D104768A1214"; // Create Bluetooth instances DIYables_Esp32BLE bluetooth(DEVICE_NAME, SERVICE_UUID, TX_UUID, RX_UUID); DIYables_BluetoothServer bluetoothServer(bluetooth); // Create Rotator app instance DIYables_BluetoothRotator bluetoothRotator(ROTATOR_MODE_LIMITED, 0, 180); // Variables to store current angle float currentAngle = 0.0; void setup() { Serial.begin(115200); delay(1000); Serial.println("DIYables Bluetooth - ESP32 BLE Rotator Example"); bluetoothServer.begin(); bluetoothServer.addApp(&bluetoothRotator); bluetoothServer.setOnConnected([]() { Serial.println("Bluetooth connected!"); bluetoothRotator.send(currentAngle); }); bluetoothServer.setOnDisconnected([]() { Serial.println("Bluetooth disconnected!"); }); bluetoothRotator.onRotatorAngle([](float angle) { currentAngle = angle; Serial.print("Rotator angle: "); Serial.print(angle); Serial.println("°"); // TODO: Add your control logic here based on angle }); Serial.println("Waiting for Bluetooth connection..."); } void loop() { bluetoothServer.loop(); delay(10); }
  • Klicken Sie auf Hochladen, um die Skizze auf die Platine zu flashen.
  • Öffnen Sie den Serial Monitor.
  • Die Ausgabe des Serial Monitor sollte wie folgt aussehen:
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
DIYables Bluetooth - Rotator Example Waiting for Bluetooth connection...
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Mobile App

  • Installieren Sie die DIYables Bluetooth App auf Ihrem Smartphone: Android | iOS

Hinweis: Die DIYables Bluetooth App funktioniert auf Android und iOS mit BLE. Es ist keine manuelle Kopplung erforderlich.

  • Starten Sie die DIYables Bluetooth App.
  • Erteilen Sie beim ersten Start die folgenden Berechtigungen:
    • Nahegelegene Geräte (Android 12+) / Bluetooth (iOS) — erforderlich zum Scannen und Verbinden von Bluetooth-Geräten
    • Standort (nur Android 11 und früher) — erforderlich von älteren Android-Versionen zum Scannen von BLE
  • Stellen Sie sicher, dass Bluetooth auf Ihrem Gerät aktiviert ist.
  • Tippen Sie auf Verbinden auf dem Startbildschirm. Die App scannt nach BLE-Geräten.
DIYables Bluetooth App - Startbildschirm mit Schaltfläche Scannen
  • Tippen Sie auf "Arduino_Rotator" in den Scan-Ergebnissen.
  • Nach dem Verbinden kehren Sie zum Startbildschirm zurück und öffnen die Rotator App.
DIYables Bluetooth App - Startbildschirm mit Rotator App

Tippen Sie auf das Einstellungssymbol auf dem Startbildschirm, um Apps anzuzeigen oder auszublenden. Weitere Informationen finden Sie im DIYables Bluetooth App-Benutzerhandbuch.

  • Ein Zifferblatt mit Werten von 0° bis 180° wird angezeigt.
  • Drehen Sie das Zifferblatt, um Winkelwerte an den Arduino zu senden.
DIYables Bluetooth App - Rotator-Bildschirm

Schauen Sie jetzt zurück auf den Serial Monitor in Arduino IDE. Sie sollten sehen:

Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
Bluetooth connected! Angle changed: 45.00° Angle changed: 90.00° Angle changed: 135.00°
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Kreative Anpassung - Passen Sie den Code an Ihr Projekt an

Rotationsmodi

// Modus mit Beschränkung: Mindest- und Maximalwinkel angeben DIYables_BluetoothRotator bluetoothRotator(bluetoothServer, ROTATOR_MODE_LIMITED, 0, 180); // Kontinuierlicher Modus: vollständige 360°-Drehung DIYables_BluetoothRotator bluetoothRotator(bluetoothServer, ROTATOR_MODE_CONTINUOUS);

Winkeländerungen verarbeiten

bluetoothRotator.onRotatorAngle([](float angle) { Serial.print("Angle: "); Serial.println(angle); // Steuern Sie einen Servomotor myServo.write((int)angle); });

Aktuellen Winkel senden

// Aktuellen Winkel an die App senden (z. B. beim Verbinden) bluetoothRotator.sendAngle(currentAngle);

Programmierbeispiele

Servomotorsteuerung

#include <Servo.h> Servo myServo; float currentAngle = 90; void setup() { myServo.attach(9); myServo.write(currentAngle); bluetoothRotator.onRotatorAngle([](float angle) { currentAngle = angle; myServo.write((int)angle); Serial.print("Servo: "); Serial.println(angle); }); } void loop() { bluetoothServer.loop(); }

Pan-Tilt-Kamerahaltung

Servo panServo; Servo tiltServo; // Verwenden Sie zwei Rotator-Instanzen für Pan und Tilt // Oder verwenden Sie einen einzelnen Rotator für eine Achse // und einen Schieberegler für die andere void setup() { panServo.attach(9); tiltServo.attach(10); bluetoothRotator.onRotatorAngle([](float angle) { panServo.write((int)angle); Serial.print("Pan: "); Serial.println(angle); }); }

Fehlerbehebung

Häufig auftretende Probleme

1. Gerät ist nicht in der App sichtbar

  • Bestätigen Sie, dass die Platine eingeschaltet und die Skizze hochgeladen ist
  • Überprüfen Sie, ob Bluetooth auf Ihrem Telefon aktiviert ist
  • Aktivieren Sie unter Android 11 und früher auch die Standortdienste

2. Servo reagiert nicht

  • Überprüfen Sie, ob der Servo mit dem richtigen Pin verbunden ist
  • Bestätigen Sie, dass die Servo-Bibliothek enthalten und attach() aufgerufen wurde
  • Stellen Sie sicher, dass die Stromversorgung für den Servo ausreichend ist

3. Winkelbereich scheint falsch zu sein

  • Überprüfen Sie die Min-/Maxwerte im Konstruktor
  • Bestätigen Sie, dass ROTATOR_MODE_LIMITED für einen beschränkten Bereich verwendet wird

4. Zifferblatt setzt sich beim Wiederherstellen der Verbindung auf 0 zurück

  • Senden Sie den aktuellen Winkel mit sendAngle(), wenn sich das Gerät erneut verbindet
  • Der Beispielcode behandelt dies im onRotatorAngle Callback

5. Upload schlägt fehl oder Platine wird nicht erkannt

  • Installieren Sie das neueste Arduino Nano ESP32 Board-Paket über Board Manager
  • Probieren Sie ein anderes USB-Kabel oder einen anderen Port

Projektideen

  • Servomotor-Controller
  • Pan-Tilt-Kamerahaltung
  • Roboterarmgelenksteuerung
  • Wahlbasierte Thermostatsteuerung
  • Kompass-/Kursanzeige

Nächste Schritte

Nach Abschluss des Bluetooth-Rotator-Beispiels erkunden Sie:

  1. Bluetooth-Schieberegler — Lineare Wertsteuerung
  2. Bluetooth-Joystick — 2D-Positionssteuerung
  3. Bluetooth-Analoganzeige — Visuelle Rückmeldungsanzeige
  4. Mehrere Bluetooth-Apps — Kombinieren Sie Rotator mit anderen App-Widgets

Unterstützung

Für weitere Hilfe:

  • Überprüfen Sie die API-Referenzdokumentation
  • Besuchen Sie DIYables Tutorials
  • Arduino-Community-Foren

※ 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!