3.9 🚧 Bluetooth
Synopsis: [Heise: Bluetooth: Auf den blauen Zahn gefühlt]
Bluetooth-Probleme
Update: iOS-Software BitBlue gibt es nicht mehr, damit verschwindet aber auch das Problem mit dem Funduino-Modul, habe zwei Ersatzlösungen gefunden!
HC-05 Modul
Ich habe das AZ-Delivery HC-05 6-Pin Modul unter iOS und macOS ausprobiert: Da es sich um klassisches Bluetooth handelt ist eine Paarung mit Passwort notwendig. Das Modul wurde unter iOS nicht angezeigt, daher keine Paarung möglich. Unter macOS konnte ich paaren, allerdings war die Verbindung nicht stabil. Mit dem Taster auf dem Modul kann in den AT-Modus bei Spannung an oder mit dem Enable-Eingang=1 geschaltet werden.
Fazit: Besser nicht für den Unterricht verwenden.
Links:
HM-10 BLE 4.0 Modul
Ich habe das DSD TECH HM-10 Modul unter iOS ausprobiert mit : Funktioniert gut. Beim Sturm-Board gibt es nur mechanisches Problem mit der Nähe zum LCD-Display.
Das alte Funduino-Modul funktioniert mittlerweile auch mit der neuen Software, siehe unten.
- Amazon: DSD TECH HM-10 Bluetooth 4.0 BLE iBeacon UART Modul mit 4 PIN Base Board für Arduino UNO R3 Mega 2560 Nano
- Funduino (neues Modul): HM-10 Bluetooth MASTER/SLAVE Modul BT 4.0 BLE (für iOS)
Software fürs iPhone, iPad mit HM-10 4.0 Modulen
Hier eine Liste von Software für iOS, iPadOS und ggfs. macOS (mit AppleSilicon)
- 😢 BluetoothforArduino: Kostet, läuft in der Schule nicht stabil, wenn viele BT-Geräte in der Umgebung sind..
- 🤔 Dabble: Getting Started with Dabble : Noch nicht getestet
- 😢 ArduinoBlue : Braucht entsprechende Lib auf dem STM32, zeigt zu viele Geräte in der Nachbarschaft an…
- 😢 BLESerial tiny: Prima zum Testen, allerdings kein GamePad.
- 🤔 https://remotexy.com/en/ : Läuft noch nicht mit STM32..
- 🤠 MicroBlue: (geht auch mit MacOS)
- 🤠 Bluetooth Serial Connect: Hat auch eine Lib: [github.com/hen1227/bluetooth-serial/tree/master]
#define BTRX PB11 // USART3-RX
#define BTTX PB10 // USART3-TX
#define ENABLE PB12
#define STATE PA1
#define LED D13 // Board-LED
HardwareSerial SerialBT(BTRX,BTTX);
char c;
String s ="";
void setup() {
Serial.begin(9600); // über Pins D0, D1
SerialBT.begin(9600); // über Pins PB10 und PB11
Serial.println("Bluetooth-Verbindung...");
delay(100);
pinMode(LED, OUTPUT);
pinMode(STATE,INPUT);
Serial.println("Ende Setup");
}
void loop() {
digitalWrite(LED,digitalRead(STATE));
if (SerialBT.available()){ // Daten liegen an
//c = SerialBT.read(); // Nachricht lesen
//s = SerialBT.readString();
s = SerialBT.readStringUntil('\n');
Serial.print(s);
}
if (Serial.available()) {
c = Serial.read();
//Serial.print(c);
SerialBT.print(c);
}
}