Hallo Community,
mittlerweile versuche ich auch eine Bluetooth-Verbindung mit einem iPhone herzustellen.
Dazu habe ich einen sehr einfachen Sketch verwendet.
#include "BluetoothSerial.h"
BluetoothSerial SerialBT;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
SerialBT.begin("ESP32test");
Serial.println("Der ESP32 ist bereit. Verbinde dich nun über Bluetooth.");
}
void loop() {
// put your main code here, to run repeatedly:
if (Serial.available()){
SerialBT.write(Serial.read());
}
delay(25);
}
Der ESP32 wird problemlos in der Bluetooth-Liste eines iMACPro (OS X) oder eines älteren DELL - Tablet Venus 8 Pro (Android) angezeigt.
Leider jedoch an keinem der mir zur Verfügung stehenden iPhones oder meines iPad.
Sicher hat Jemand von euch die Expertise, mir den Grund zu verraten. Die IOS sind 18.6.2 aktuell beim iPhone.
Der Code verwendet die Bibliothek BluetoothSerial des ESP32, die nur Bluetooth Classic (SPP, Serial Port Profile) implementiert. iOS unterstützt jedoch SPP über Bluetooth Classic nicht, sondern ausschließlich Bluetooth Low Energy (BLE) und bestimmte spezielle Profile wie Audio oder HID. Deshalb erscheint dein ESP32 unter macOS und Android, die Bluetooth Classic SPP akzeptieren, aber niemals auf iPhone oder iPad, da iOS diese Art von Verbindung absichtlich blockiert. Um mit iOS zu kommunizieren, muss man statt BluetoothSerial BLE verwenden.
Ich habe jetzt "BluetoothSerial" 1.1.0 von Henry Abrahamsen installiert.
Leider ist auf meinem iPhone weiter nichts zu sehen.
Ich bin mir sicher, ich bin das Problem.
Sicher muss noch was in den Sketch rein/raus?
Wie Henry auf der Beschreibungsseite seiner Bibliothek sagt
This library handles the data formating, transmission and receiving with the BluetoothSerial Connect App. Download the iOS app at Bluetooth Serial Connect on the App Store"
Ja ich hatte die App bereits heruntergeladen.
Bei den Beispielen von Abrahamsen (z.B. Boiler Plate.ino) kommen schon Hochladefehler, deren Grund ich nicht interpretieren kann. Somit die App auch noch nicht zum Einsatz kommen kann.
/*
Boiler_Plate.ino
Henry Abrahamsen
8/12/23
Basic code "required" for all BluetoothSerial Projects
Details available at https://docs.henhen1227.com/
*/
#include <BluetoothSerial.h>
#define bluetoothModuleSerial Serial1
// Create a BluetoothSerial object
// Serial port that the bluetooth module is connected
// Verbose mode: true
BluetoothSerial blueSerial(bluetoothModuleSerial, true);
void setup() {
// Start communication with bluetooth device
bluetoothModuleSerial.begin(9600);
Serial.begin(9600);
Serial.println("Setup Complete");
}
void loop() {
blueSerial.readSerial();
// Do awesome stuff here!
// 🍀 Good Luck 🍀!
}
Ich lese das gerade auf meinem iPhone und kann so kleinen Text nicht entziffern ➜ poste niemals Bilder von Text, kopiere ihn einfach hier hinein und benutze Code-Tags.
Ich hoffe ich nerve nicht wie bei den anderen Themen (die ich aber mittlerweile gut verstanden habe) Ist der Fehlertext besser so:
/private/var/folders/ly/znj_yydj7d55gnw6205lt5f40000gn/T/.arduinoIDE-unsaved202582-905-dnhqqs.26z2n/Boiler_Plate/Boiler_Plate.ino:16:55: error: no matching function for call to 'BluetoothSerial::BluetoothSerial(HardwareSerial&, bool)'
16 | BluetoothSerial blueSerial(bluetoothModuleSerial, true);
| ^
In file included from /private/var/folders/ly/znj_yydj7d55gnw6205lt5f40000gn/T/.arduinoIDE-unsaved202582-905-dnhqqs.26z2n/Boiler_Plate/Boiler_Plate.ino:9:
/Users/mh/Library/Arduino15/packages/esp32/hardware/esp32/3.3.0/libraries/BluetoothSerial/src/BluetoothSerial.h:40:3: note: candidate: 'BluetoothSerial::BluetoothSerial()'
40 | BluetoothSerial(void);
| ^~~~~~~~~~~~~~~
/Users/mh/Library/Arduino15/packages/esp32/hardware/esp32/3.3.0/libraries/BluetoothSerial/src/BluetoothSerial.h:40:3: note: candidate expects 0 arguments, 2 provided
/Users/mh/Library/Arduino15/packages/esp32/hardware/esp32/3.3.0/libraries/BluetoothSerial/src/BluetoothSerial.h:38:7: note: candidate: 'BluetoothSerial::BluetoothSerial(const BluetoothSerial&)'
38 | class BluetoothSerial : public Stream {
| ^~~~~~~~~~~~~~~
/Users/mh/Library/Arduino15/packages/esp32/hardware/esp32/3.3.0/libraries/BluetoothSerial/src/BluetoothSerial.h:38:7: note: candidate expects 1 argument, 2 provided
/private/var/folders/ly/znj_yydj7d55gnw6205lt5f40000gn/T/.arduinoIDE-unsaved202582-905-dnhqqs.26z2n/Boiler_Plate/Boiler_Plate.ino: In function 'void loop()':
/private/var/folders/ly/znj_yydj7d55gnw6205lt5f40000gn/T/.arduinoIDE-unsaved202582-905-dnhqqs.26z2n/Boiler_Plate/Boiler_Plate.ino:27:16: error: 'class BluetoothSerial' has no member named 'readSerial'; did you mean 'readString'?
27 | blueSerial.readSerial();
| ^~~~~~~~~~
| readString
Mehrere Bibliotheken wurden für "BluetoothSerial.h" gefunden
Benutzt: /Users/mh/Library/Arduino15/packages/esp32/hardware/esp32/3.3.0/libraries/BluetoothSerial
Nicht benutzt: /Users/mh/Documents/Arduino/libraries/BluetoothSerial
exit status 1
Compilation error: no matching function for call to 'BluetoothSerial::BluetoothSerial(HardwareSerial&, bool)'
Es scheint, dass Sie zwei Bibliotheken mit demselben Namen haben – sind Sie sicher, dass die richtige ausgewählt ist (oder überhaupt diejenige, die benötigt wird)?
Ich habe nur eine BluetoothSerial in meiner Library. Sorry!!
Ich benutze zwar OS X, das sollte ja nicht der Grund sein. Viele andere Dinge funktionieren ja (dank eurer Unterstützung) excellent. Aber Bluetooth fasziniert mich einfach zu dem WLAN und WIFI als Baustein.
Mit HC BL kann ich leider nichts anfangen. Ich versuche heute Abend alles neu zu installieren in der Hoffnung dass es dann funktioniert. Vielleicht gibt es zu der richtigen zu installierenden Library von Jemanden einen kleinen Hinweis. Sonst bin ich um 1:30 Uhr wieder an der gleichen Stelle.
Es scheinen 2 BluetoothSerial-Ordner (mit Example etc.) angelegt zu werden.
Der erste "BluetoothSerial" Ordner wird scheinbar beim Anlegen des ESP32 - Packages
automatisch beim Installieren angelegt.
Der zweite nicht benutzte "BluetoothSerial"-Ordner ist der von Abrahamsen installierte
Wie krieg ich es hin, dass er den Neuen im Sketch verwendet. Ich nehme ja schon die Beispiele aus der Abrahamsen - Library.
wie bereits erwähnt, habe ich nochmal "Arduino IDE" auf einem anderen Rechner neu installiert und unterschiedliche Controller ausprobiert. Leider kein positives Ergebnis. Es kommen immer die gleichen Fehlermeldungen.
Ich vermute, dass es bezüglich meines Problems auch von euch Spezialisten keine vernünftige Erklärung gibt und es wahrscheinlich keinen iPhone(IOS)-Benutzer gibt, der das nutzt.
Vermutlich muss ich dann das Thema als "gelöst" betrachten.
Danke an die Unterstützer
Danke für die Info und den Link. Nach etlichen neuen Anläufen leider ohne Erfolg. Ich bekomme beim Hochladen der Sketche weiterhin fast identische Fehlermeldungen, die ich nicht interpretieren kann.
Ich werde das Thema "BLE" und Steuerung mit iPhone leider auf die Seite legen müssen.
Ich habe ja mit euerer Unterstützung mein WIFI/HTML - Projekt (DHT11 Messwert...) erfolgreich erweitert und es funktioniert.