ESP32 Bluetooth Multiple Apps Beispiel - Alle Bluetooth Apps in einem Projekt kombinieren Tutorial
Übersicht
Das Multiple Bluetooth Apps Beispiel zeigt, wie Sie mehrere Bluetooth App-Oberflächen in einem einzigen ESP32-Projekt kombinieren können. Führen Sie Monitor, Chat, Slider, Joystick, Temperature, Plotter, Table, Analog Gauge und Rotator alle gleichzeitig aus — zugänglich über die DIYables Bluetooth STEM App. Entwickelt für ESP32 Boards mit Unterstützung für sowohl BLE (Bluetooth Low Energy) als auch Classic Bluetooth Verbindungen. Dies ist ideal für komplexe Projekte, die mehrere Steuerungs- und Anzeige-Oberflächen gleichzeitig benötigen.
Dieses Beispiel unterstützt zwei Bluetooth Modi:
ESP32 BLE (Bluetooth Low Energy): Funktioniert sowohl auf Android als auch iOS
ESP32 Classic Bluetooth: Funktioniert nur auf Android. iOS unterstützt kein Classic Bluetooth. Verwenden Sie BLE, wenn Sie iOS-Unterstützung benötigen.
Funktionen
9 Apps in einer: Monitor, Chat, Slider, Joystick, Temperature, Plotter, Table, Analog Gauge und Rotator laufen gleichzeitig
Unabhängige Callbacks: Jede App hat ihre eigenen Event-Handler
Unabhängiges Timing: Verschiedene Update-Intervalle für jede App
App-Wechsel: Wechseln Sie frei zwischen Apps in der mobilen App
BLE & Classic Bluetooth: Wählen Sie den Bluetooth-Modus, der zu Ihrem Projekt passt
Cross-Platform: BLE-Modus funktioniert sowohl auf Android als auch iOS; Classic Bluetooth funktioniert auf Android
Low Power Option: BLE-Modus verbraucht weniger Strom als Classic Bluetooth
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.
ESP32 Code
Schnelle Schritte
Folgen Sie diesen Anweisungen Schritt für Schritt:
Verbinden Sie das ESP32 Board mit Ihrem Computer über ein USB-Kabel.
Starten Sie die Arduino IDE auf Ihrem Computer.
Wählen Sie das entsprechende ESP32 Board und COM Port.
Navigieren Sie zum Libraries Icon in der linken Leiste der Arduino IDE.
Suchen Sie "DIYables Bluetooth", finden Sie dann die DIYables Bluetooth Bibliothek von DIYables
Klicken Sie den Install Button, um die Bibliothek zu installieren.
Sie werden gefragt, einige andere Bibliotheks-Abhängigkeiten zu installieren
Klicken Sie den Install All Button, um alle Bibliotheks-Abhängigkeiten zu installieren.
> Wichtig: Da dieses Beispiel viele Bluetooth App-Bibliotheken enthält, ist der kompilierte Sketch größer als gewöhnlich. Sie müssen das korrekte Partition Scheme auswählen (siehe unten).
Wählen Sie einen der beiden Bluetooth Modi unten, je nach Ihren Bedürfnissen:
ESP32 Classic Bluetooth Code (funktioniert nur mit App auf Android)
Hinweis: Classic Bluetooth wird auf iOS NICHT unterstützt. Wenn Sie iOS-Unterstützung benötigen, verwenden Sie den BLE Code unten.
In der Arduino IDE, gehen Sie zu File Examples DIYables Bluetooth Esp32Bluetooth_MultipleApps Beispiel, oder kopieren Sie den obigen Code und fügen Sie ihn in den Editor der Arduino IDE ein
Wichtig: Gehen Sie zu Tools > Partition Scheme und wählen Sie "Huge APP (3MB No OTA/1MB SPIFFS)". Dies ist erforderlich, da das Multiple Apps Beispiel deutlich mehr Flash-Speicher verwendet.
Klicken Sie den Upload Button in der Arduino IDE, um den Code auf den ESP32 hochzuladen
Öffnen Sie den Serial Monitor
Überprüfen Sie das Ergebnis im Serial Monitor. Es sieht etwa so aus:
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
DIYables Bluetooth - ESP32 Multiple Apps Example
Waiting for Bluetooth connection...
Ln 11, Col 1
ESP32 Dev Module on COM15
2
ESP32 BLE Code (funktioniert mit App sowohl auf Android als auch iOS)
In der Arduino IDE, gehen Sie zu File Examples DIYables Bluetooth Esp32BLE_MultipleApps Beispiel, oder kopieren Sie den obigen Code und fügen Sie ihn in den Editor der Arduino IDE ein
Wichtig: Gehen Sie zu Tools > Partition Scheme und wählen Sie "Huge APP (3MB No OTA/1MB SPIFFS)". Dies ist erforderlich, da das Multiple Apps Beispiel deutlich mehr Flash-Speicher verwendet.
Klicken Sie den Upload Button in der Arduino IDE, um den Code auf den ESP32 hochzuladen
Öffnen Sie den Serial Monitor
Überprüfen Sie das Ergebnis im Serial Monitor. Es sieht etwa so aus:
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
DIYables Bluetooth - ESP32 BLE Multiple Apps Example
Waiting for Bluetooth connection...
Ln 11, Col 1
ESP32 Dev Module on COM15
2
Mobile App
Installieren Sie die DIYables Bluetooth App auf Ihrem Smartphone: Android | iOS
Falls Sie den ESP32 Classic Bluetooth Code verwenden, müssen Sie den ESP32 mit Ihrem Android-Telefon vor dem Öffnen der App koppeln:
Gehen Sie zu den Einstellungen > Bluetooth Ihres Telefons
Stellen Sie sicher, dass Bluetooth eingeschaltet ist
Ihr Telefon scannt nach verfügbaren Geräten
Finden und tippen Sie "ESP32 Multi-App" in der Liste verfügbarer Geräte
Bestätigen Sie die Kopplungsanfrage (keine PIN erforderlich)
Warten Sie, bis "Gekoppelt" unter dem Gerätenamen angezeigt wird
Falls Sie den ESP32 BLE Code verwenden, ist keine Kopplung erforderlich. Fahren Sie einfach mit dem nächsten Schritt fort.
Öffnen Sie die DIYables Bluetooth App
Beim ersten Öffnen der App wird sie nach Berechtigungen fragen. Bitte gewähren Sie folgende:
Geräte in der Nähe Berechtigung (Android 12+) / Bluetooth Berechtigung (iOS) - erforderlich zum Scannen und Verbinden mit Bluetooth-Geräten
Standort Berechtigung (nur Android 11 und früher) - von älteren Android-Versionen zum Scannen nach BLE-Geräten benötigt
Stellen Sie sicher, dass Bluetooth eingeschaltet ist auf Ihrem Telefon
Auf dem Startbildschirm tippen Sie den Connect Button. Die App scannt nach BLE und Classic Bluetooth Geräten.
Finden und tippen Sie Ihr Gerät in den Scan-Ergebnissen, um sich zu verbinden:
Für Classic Bluetooth: tippen Sie "ESP32 Multi-App"
Für BLE: tippen Sie "ESP32BLE Multi-App"
Sobald verbunden, geht die App automatisch zurück zum Startbildschirm. Der Startbildschirm zeigt alle verfügbaren Apps. Die 9 Apps, die im Arduino-Code initialisiert wurden, werden reagieren und funktionieren — andere Apps auf dem Startbildschirm werden erscheinen, aber nicht mit diesem Sketch funktionieren.
Hinweis: Sie können das Einstellungssymbol auf dem Startbildschirm tippen, um Apps auf dem Startbildschirm zu verstecken/anzeigen. Für weitere Details siehe das DIYables Bluetooth App Benutzerhandbuch.
Tippen Sie einige der folgenden Apps, um sie zu öffnen und mit dem ESP32 zu interagieren: Monitor, Chat, Slider, Joystick, Temperature, Plotter, Table, Analog Gauge, Rotator
Wechseln Sie frei zwischen Apps — sie teilen alle dieselbe Bluetooth-Verbindung
Schauen Sie nun zurück zum Serial Monitor in der Arduino IDE. Sie werden sehen:
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
Jede App wird als separates Objekt erstellt und beim selben Bluetooth-Server registriert. Sie teilen die einzige Bluetooth-Verbindung, arbeiten aber unabhängig:
// Include all app headers#include <DIYables_BluetoothMonitor.h>#include <DIYables_BluetoothChat.h>#include <DIYables_BluetoothSlider.h>#include <DIYables_BluetoothJoystick.h>#include <DIYables_BluetoothTemperature.h>#include <DIYables_BluetoothPlotter.h>#include <DIYables_BluetoothTable.h>#include <DIYables_BluetoothAnalogGauge.h>#include <DIYables_BluetoothRotator.h>// Create app instancesDIYables_BluetoothMonitor bluetoothMonitor;DIYables_BluetoothChat bluetoothChat;DIYables_BluetoothSlider bluetoothSlider(0, 100, 1);DIYables_BluetoothJoystick bluetoothJoystick;DIYables_BluetoothTemperature bluetoothTemperature(-10.0, 50.0, "°C");DIYables_BluetoothPlotter bluetoothPlotter;DIYables_BluetoothTable bluetoothTable;DIYables_BluetoothAnalogGauge bluetoothGauge(0.0, 100.0, "km/h");DIYables_BluetoothRotator bluetoothRotator(ROTATOR_MODE_LIMITED, 0, 180);// Register all apps with the Bluetooth serverbluetoothServer.addApp(bluetoothMonitor);bluetoothServer.addApp(bluetoothChat);bluetoothServer.addApp(bluetoothSlider);bluetoothServer.addApp(bluetoothJoystick);bluetoothServer.addApp(bluetoothTemperature);bluetoothServer.addApp(bluetoothPlotter);bluetoothServer.addApp(bluetoothTable);bluetoothServer.addApp(bluetoothGauge);bluetoothServer.addApp(bluetoothRotator);
Sie müssen nicht alle 9 Apps einbeziehen. Wählen Sie nur die, die Sie benötigen:
// Example: Only Monitor + Slider + Temperature#include <DIYables_BluetoothMonitor.h>#include <DIYables_BluetoothSlider.h>#include <DIYables_BluetoothTemperature.h>DIYables_BluetoothMonitor bluetoothMonitor;DIYables_BluetoothSlider bluetoothSlider(0, 100, 1);DIYables_BluetoothTemperature bluetoothTemperature(-10.0, 50.0, "°C");voidsetup() {// ... Bluetooth server setup ... bluetoothServer.addApp(bluetoothMonitor); bluetoothServer.addApp(bluetoothSlider); bluetoothServer.addApp(bluetoothTemperature);// Only these 3 apps will appear in the mobile app}
Verbindungs-Events handhaben
bluetoothServer.setOnConnected([]() {Serial.println("Bluetooth connected!");// Send initial values for all apps bluetoothTemperature.send(currentTemperature); bluetoothGauge.send(currentGaugeValue); bluetoothRotator.send(currentAngle);});bluetoothServer.setOnDisconnected([]() {Serial.println("Bluetooth disconnected!");});
Wie Multiple Apps verwendet werden
App-Wechsel
In der DIYables Bluetooth App:
Der Startbildschirm zeigt alle registrierten Apps als Buttons
Tippen Sie jede App, um sie zu öffnen
Verwenden Sie den Zurück-Button oder Home-Button, um zurückzukehren und zu einer anderen App zu wechseln
Alle Apps laufen weiter auf dem ESP32, unabhängig davon, welche App angezeigt wird
Datenfluss
Input Apps (Slider, Joystick, Rotator, Chat): Senden Daten vom Telefon zum ESP32
Output Apps (Monitor, Temperature, Plotter, Table, Gauge): Senden Daten vom ESP32 zum Telefon
Bidirektionale Apps (Chat, Monitor): Können Daten senden und empfangen
> Hinweis für Multiple Apps: Da mehrere Apps gleichzeitig Daten senden, kann die höhere Datenrate von Classic Bluetooth vorteilhaft sein, wenn Sie viele schnell aktualisierenden Apps haben (z.B. Plotter bei 100ms). Für batteriebetriebene Projekte wird BLE dennoch empfohlen.
Fehlerbehebung
Häufige Probleme
1. Kann das Gerät in der App nicht finden
Stellen Sie sicher, dass der ESP32 eingeschaltet ist und der Sketch hochgeladen wurde
Für BLE: Stellen Sie sicher, dass Bluetooth und Standort Ihres Telefons aktiviert sind
Für Classic Bluetooth: Koppeln Sie das Gerät zuerst in den Bluetooth-Einstellungen des Telefons
Überprüfen Sie, dass das korrekte Partition Scheme ausgewählt ist (Huge APP) — dies ist kritisch für Multi-App-Beispiele
2. Sketch zu groß / nicht genügend Speicher
In der Arduino IDE, gehen Sie zu Tools > Partition Scheme und wählen Sie "Huge APP (3MB No OTA/1MB SPIFFS)" oder "No OTA (Large APP)"
Das Standard Partition Scheme bietet nur ~1,2MB für App-Code, was für das Multi-App-Beispiel nicht ausreicht
Diese Einstellung gibt ~3MB durch Aufgabe der OTA (Over-the-Air Update) Partition
Falls immer noch zu groß, entfernen Sie Apps, die Sie nicht benötigen
3. Einige Apps erscheinen nicht in der mobilen App
Stellen Sie sicher, dass jede App mit bluetoothServer.addApp() registriert ist
Überprüfen Sie, dass die Include-Header den erstellten App-Objekten entsprechen
Verifizieren Sie, dass alle Apps vor bluetoothServer.begin() registriert sind
4. Daten-Updates sind langsam oder verzögert
Reduzieren Sie die Anzahl der Apps, die gleichzeitig Daten senden
Erhöhen Sie Update-Intervalle für weniger kritische Apps
BLE hat begrenzte Bandbreite — staffeln Sie Updates über die Zeit
5. ESP32 stürzt ab oder startet neu
Überprüfen Sie verfügbaren Heap-Speicher mit ESP.getFreeHeap()
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!