Arduino Nano ESP32 Bluetooth Mehrere Apps Beispiel - Umfassendes BLE-Tutorial
Übersicht
Dieses Beispiel demonstriert das Ausführen von 9 Bluetooth-App-Widgets gleichzeitig auf einem einzigen Arduino Nano ESP32 mit BLE. Mit BLE (Bluetooth Low Energy) kombiniert der Sketch Monitor, Chat, Schieberegler, Joystick, Temperatur, Plotter, Tabelle, Analog-Gauge und Rotator in einem Sketch. Alle Widgets teilen eine einzige BLE-Verbindung und können miteinander interagieren. Geeignet für umfassende Dashboards, komplexe IoT-Projekte und das gleichzeitige Erlernen mehrerer Widget-Typen.
Hinweis: Arduino Nano ESP32 unterstützt nur BLE — Klassisches Bluetooth wird nicht unterstützt. Die DIYables Bluetooth App funktioniert auf Android und iOS mit BLE.
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.
Klicken Sie auf Upload, um den Sketch auf das Board zu laden.
Öffnen Sie den Serial Monitor.
Die Serial Monitor Ausgabe sollte wie folgt aussehen:
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
DIYables Bluetooth - Multiple Apps 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. Keine manuelle Kopplung erforderlich.
Starten Sie die DIYables Bluetooth App.
Beim ersten Start gewähren Sie die folgenden Berechtigungen:
Geräte in der Nähe (Android 12+) / Bluetooth (iOS) — erforderlich zum Scannen und Verbinden mit Bluetooth-Geräten
Standort (nur Android 11 und älter) — erforderlich von älteren Android-Versionen zum Scannen von BLE
Stellen Sie sicher, dass Bluetooth auf Ihrem Gerät aktiviert ist.
Tippen Sie auf Connect auf dem Startbildschirm. Die App scannt nach BLE-Geräten.
Tippen Sie auf "DIYables Multi-App" in den Scann-Ergebnissen.
Nach der Verbindung zeigt der Startbildschirm alle verfügbaren App-Widgets an. Die im Arduino-Sketch initialisierten 9 Widgets reagieren und funktionieren — andere Widgets auf dem Startbildschirm erscheinen aber funktionieren nicht mit diesem Sketch.
Tippen Sie auf das Einstellungssymbol auf dem Startbildschirm, um Apps ein- oder auszublenden. Weitere Informationen finden Sie im DIYables Bluetooth App Benutzerhandbuch.
Öffnen Sie eines der folgenden Widgets, um mit dem Arduino zu interagieren: Monitor, Chat, Schieberegler, Joystick, Temperatur, Plotter, Tabelle, Analog-Gauge, Rotator.
Wechseln Sie frei zwischen Widgets — alle teilen die gleiche BLE-Verbindung.
Schauen Sie nun zurück auf den Serial Monitor in Arduino IDE. Sie werden folgendes sehen:
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
Bluetooth connected!
Monitor: System running, uptime: 5s
Chat message: Hello
Slider value: 128
Joystick: X=0.50, Y=-0.30
Temperature: 22.50 °C
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2
Funktionsweise
App-Initialisierung
Jedes Widget wird mit seiner eigenen Konfiguration und Callbacks erstellt:
// All apps share the same Bluetooth serverDIYables_BluetoothServer bluetoothServer(bluetooth);// Create individual appsDIYables_BluetoothMonitor bluetoothMonitor(bluetoothServer);DIYables_BluetoothChat bluetoothChat(bluetoothServer);DIYables_BluetoothSlider bluetoothSlider(bluetoothServer, 0, 255, 1);DIYables_BluetoothJoystick bluetoothJoystick(bluetoothServer, false, 5);DIYables_BluetoothTemperature bluetoothTemp(bluetoothServer, -10.0, 50.0, "°C");DIYables_BluetoothPlotter bluetoothPlotter(bluetoothServer);DIYables_BluetoothTable bluetoothTable(bluetoothServer);DIYables_BluetoothAnalogGauge bluetoothGauge(bluetoothServer, 0.0, 100.0, "%");DIYables_BluetoothRotator bluetoothRotator(bluetoothServer, ROTATOR_MODE_CONTINUOUS);
Widget-übergreifende Interaktion
Apps können miteinander interagieren. Wenn ein Widget Eingaben erhält, kann es andere Widgets aktualisieren:
Das Beispiel erstellt eine Tabelle mit 10 Zeilen, die Daten von allen Apps anzeigen:
Zeile
Beschriftung
Beschreibung
0
Status
Verbindungs-/Laufstatus
1
Laufzeit
Zeit seit dem Starten
2
Schieberegler 1
Aktueller Schiebereglerwert
3
Schieberegler 2
Zweiter Schiebereglerwert
4
Joystick X
Joystick-X-Position
5
Joystick Y
Joystick-Y-Position
6
Temperatur
Aktuelle Temperatur
7
Gauge-Wert
Aktueller Gauge-Prozentsatz
8
Rotator-Winkel
Aktueller Rotationswinkel
9
Meldungen
Anzahl der Chat-Nachrichten
Kreative Anpassung - Passen Sie den Code an Ihr Projekt an
Widgets hinzufügen oder entfernen
Beziehen Sie nur die für Ihr Projekt erforderlichen Widgets ein:
// Minimal setup: just Monitor and SliderDIYables_BluetoothMonitor bluetoothMonitor(bluetoothServer);DIYables_BluetoothSlider bluetoothSlider(bluetoothServer, 0, 100, 1);// That's it! The app will only show these two
Benutzerdefinierte Widget-übergreifende Logik
// Example: Temperature alarm via Monitorvoid checkTemperatureAlarm(float temp) {if (temp > 40.0) { bluetoothMonitor.send("⚠️ HIGH TEMP ALERT: " + String(temp, 1) + "°C"); bluetoothChat.send("Temperature alarm triggered!"); }}
Fehlerbehebung
Häufige Probleme
1. Gerät ist in der App nicht sichtbar
Bestätigen Sie, dass das Board eingeschaltet ist und der Sketch hochgeladen wurde
Überprüfen Sie, ob Bluetooth auf Ihrem Telefon aktiviert ist
Unter Android 11 und älter müssen Sie auch Standortdienste aktivieren
2. Einige Widgets werden im Menü nicht angezeigt
Alle initialisierten Widgets werden automatisch angezeigt
Überprüfen Sie, dass jedes Widget-Objekt ordnungsgemäß erstellt wird
Die App erkennt verfügbare Widgets vom Arduino
3. Updates scheinen langsam zu sein
Jedes Widget hat absichtlich unterschiedliche Aktualisierungsintervalle
BLE-Bandbreite ist begrenzt; zu viele schnelle Aktualisierungen können zu Staus führen
Reduzieren Sie die Aktualisierungsfrequenz für Widgets, die keine Echtzeit-Daten benötigen
4. Widget-übergreifende Aktualisierungen funktionieren nicht
Überprüfen Sie, dass die Callback-Funktionen ordnungsgemäß registriert sind
Kontrollieren Sie, dass Tabellenzeilennamen genau übereinstimmen (Groß-/Kleinschreibung beachtet)
Bestätigen Sie, dass auf das Ziel-Widget-Objekt innerhalb des Callback-Bereichs zugegriffen werden kann
5. Speicherprobleme oder Abstürze
Das Ausführen von 9 Widgets verwendet erheblich Speicher
Entfernen Sie nicht verwendete Widgets, um Ressourcen freizugeben
Reduzieren Sie bei Bedarf die Tabellenzeilenzahl
6. Upload schlägt fehl oder Board wird nicht erkannt
Installieren Sie das neueste Arduino Nano ESP32 Board-Paket über Board Manager
Versuchen Sie ein anderes USB-Kabel oder einen anderen Port
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!