Seit der 3. Generation unterstützt der Raspberry Pi Bluetooth und WLAN. Damit steigen die Fähigkeiten der Konnektivität und es lassen sich Bluetooth Lautsprecher oder Smartphones verbinden. Und auch der Raspberry Pi Zero W und WH unterstützen seit 2017 die Schnittstellen. Der Raspberry Pi 3 B unterstützt die Schnittstelle in Version 4.1 LE, der A+ und B+ sogar in Version 4.2 LS LE. Die neueste Generation, der Raspberry Pi 4 unterstützt 5.0 LE und ermöglicht damit noch größere Reichweiten.
Bluetooth aktivieren
Zuerst müssen wir sicherstellen, dass Bluetooth überhaupt aktiviert ist. Zum Aktivieren starten wir den Bluetooth Dienst.
sudo systemctl status bluetooth.service
Funktioniert alles, sieht es in etwa so aus.
pi@raspberrypi:~ $ sudo systemctl status bluetooth.service ● bluetooth.service - Bluetooth service Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-05-08 16:53:20 CEST; 42s ago Docs: man:bluetoothd(8) Main PID: 1394 (bluetoothd) Status: "Running" ...
Wenn du Probleme hast, schaue hier vorbei, Raspberry Pi: Bluetooth aktivieren.
Bluetooth verbinden
Zum Starten der Anwendung für Bluetooth muss bluetoothctl
ausgeführt werden.
sudo bluetoothctl
Anschließend landen wir in der Anwendung und können über help
die möglichen Befehle anzeigen. In manchen Fällen wird automatisch ein Agent registriert, wenn nicht, können wir ihn so starten und als Standard definieren.
agent on
default-agent
Um nun nach Bluetooth-Geräte in der Reichweite des Raspberry Pi zu suchen, müssen wir folgenden Befehl ausführen.
scan on
Wenn du einen Fehler „No default controller available“ erhältst, schließe die Anwendung mit exit und führe folgende Befehle aus:sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade -y
sudo apt-get install pi-bluetooth
sudo apt-get install bluez bluez-firmware
sudo usermod -G bluetooth -a pi
cat /etc/group | grep bluetooth
sudo reboot
Das hat in meinem Fall geholfen, die Probleme zu lösen. Quelle: https://learn.pi-supply.com/make/fix-raspberry-pi-3-bluetooth-issues/
Anschließend werden die Bluetooth-Geräte in Reichweite angezeigt. Dabei wird zwischen neuen [NEW], geänderten [CHG] und gelöschten [DEL] Geräten differenziert.
[NEW] Device F0:00:F0:2E:D9:96 iPhone [NEW] Device E7:01:F1:2E:86:D5 F8B3C55EECAA30A3E9 [NEW] Device 7E:02:F2:42:36:C0 7E-EC-B3-42-36-C0 [DEL] Device F8:03:F3:2E:D9:96 [TV] Samsung 6 Series (55) [DEL] Device 72:7F:BE:DD:CE:2E 72-7F-BE-DD-CE-2E [CHG] Device F3:33:86:66:A3:E0 RSSI: -80
Mit den Befehlen pair
und trust
kann in bluetoothctl eine Verbindung zum anderen Gerät aufgebaut werden. Pair erlaubt dies einmalig, trust dagegen auch ein späteres, automatisches verbinden. Als Ziel wird immer die Mac-Adresse verwendet (oben rot markiert). Beispiel für das iPhone:
pair F0:00:F0:2E:D9:96
Der Raspberry und das iPhone erkennen den Versuch und bitten um Bestätigung, wenn der Schlüssel auf beiden Geräten gleich ist.
Attempting to pair with F0:00:F0:2E:D9:96
[CHG] Device F0:00:F0:2E:D9:96 Connected: yes
Request confirmation
[agent] Confirm passkey 136194 (yes/no): yes
Abschließend wird der Vorgang in der Konsole mit Pairing successful bestätigt.
Tastatur verbinden
Bei Eingabegeräten kann schlecht eine Bestätigung wie oben erfolgen. Führe connect
aus, um eine Tastatur zu verbinden.
connect EB:66:3C:00:00:00
Attempting to connect to EB:66:3C:00:00:00 [CHG] Device EB:66:3C:00:00:00 Connected: yes [Keyboard K850]# connect EB:66:3C:00:00:00
Danke für die tolle Anleitung. Habe folgendes Problem:
Nach meiner „pair“-Eingabe erfolgt die Meldung: Attempting to pair with 00:80:……CC (Adresse des zu koppelnden Gerätes)
[CHG]Device 00:80:……CC Connected: yes
Request PIN code statt Request confirmation
[agent]Enter Pin code: Request canceled
Failed to pair: org.bluez.ERROR.AuthenticationCanceled
Kann leider den Pin code nicht eingeben.
Nach sudo systemctl status bluetooth.service
erfolgt Meldung
● bluetooth.service – Bluetooth service
Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-05-08 16:53:20 CEST; 42s ago
Docs: man:bluetoothd(8)
Main PID: 1394 (bluetoothd)
Status: „Running“
Tasks: 1 (Limit: 2063)
CGroup: /system.slice/bluetooth.service
492 /user/lib/Bluetooth/bluetoothd
Was kann ich da tun?
Würde mich über ihre Hilfe sehr freuen.