Heute möchte ich Euch die Schritte erklären, welche dafür nötig sind um einen Bluetooth USB Dongle am Raspberry Pi zu betreiben und sich mit anderen Endgeräten zu verbinden. Dieser Vorgang hat mir schon sehr viel Zeit gekostet und ich bin immer noch nicht am Primär-Ziel angekommen! Aber zumindest bin ich schon recht weit bei der Konfiguration gekommen und diese Basis möchte ich nun mit Euch teilen.
Mein Primärziel:
USB Bluetooth Gerät in Betrieb nehmen, dieses auf „sichtbar“ zu schalten und eine Verbindung zu mehren Endgeräten aufbauen. Die Endgeräte sollten sich immer wieder automatisch auf den Raspberry Pi verbinden um so eine Art von Präsenzmelder zu entwickeln.
Abgeschlossene Punkte:
– Bluetooth am Raspberry Pi erfolgreich eingerichtet
– Raspi kann sich auf Endgeräte wie Computer oder Smartphones verbinden
– Raspberry zum Teil sichtbar
– Endgeräte können von Hand mit dem Raspberry verbunden werden
Nicht abgeschlossene Punkte:
– Sichbarkeit ist nicht für alle Endgeräte gegeben (iPhone und vereinzelte Android Smartphones erkennen den Raspi nicht.)
– automatischer Verbindungsaufbau will mit den oben genannten Endgeräten nicht funktionieren (Verbindungsaufbau vom Smartphone eingeleitet.)
So viel zu den Rand-Schauplätzen.
Was perfekt funktioniert ist die Einrichtung von Bluetooth am Raspberry Pi.
ACHTUNG!
Je nach BASIS System müssen alle Befehle mit einem vorgestellten „sudo“ eingegeben werden!!
Dafür geht man wie folgt vor:
Da das kleine Linux System grundsätzlich schon Bluetooth unterstützt, bringen wir dieses zuerst auf den aktuellen Stand:
apt-get update
apt-get upgrade
apt-get autoremove
Dann verbindet ihr nun den Bluetooth Dongle von Euch!
Meine Empfehlung für einen Bluetooth Dongle lautet:
Wenn ihr jetzt an dieser Stelle den Befehllsusb
absetzt, müsstet ihr jetzt den Adapter im System sehen.
Nun installieren wir uns „Bluez“ und die benötigten Python Objekte, welches ein paar zusätzliche Befehlssätze für Bluetooth liefert:
sudo apt-get bluetooth bluez python-gobject python-gobject-2 bluez-tools
Prima – Damit ist die Einrichtung grundsätzlich schon einmal abgeschlossen!
Checken wir nun das System:
hcitool dev
–> gibt Euch die MAC Adresse des Adapters aus
hciconfig -a
–> zeigt Euch den aktuellen Status des Adpaters
Wenn ihr hier „UP RUNNING PSCAN“ lesen könnt, ist das Gerät bereit mit anderen Geräten zu kommunizieren!
/etc/init.d/bluetooth status
–> zeigt Euch an, ob der Dienst aktiviert ist
hcitool scan
–> liefert Euch hierbei alle sichtbaren Bluetooth Endgeräte in Reichweite des eigenen Adapters
l2ping -i hci0 mac-adresse-des-gerätes
–> setzt einen Ping auf ein entweder verbundenes oder sichtbares Bluetooth Gerät ab
Jetzt müssen wir nur noch eine Verbindung mit einem Gerät herstellen:
Gerät verbinden:
bluez-simple-agent hci0 mac-adresse-des-gerätes
–> Geräte PIN wird abgefragt
Am Endgerät muss sich nun gegen verifiziert werden.
Gerät als trusted Endgerät einrichten:
bluez-test-device trusted mac-adresse-des-gerätes yes
Einige Systeme sind nun schon fest mit dem Raspberry Pi verbunden.
Andere benötigen noch einen kleinen Aufruf:
bluez-test-input connect mac-adresse-des-gerätes yes
Andere Endgeräte wie z.B. iOS Devices müssen nun vom Endgerät aus gekoppelt werden.
Möchtet ihr den umgekehrten Weg gehen, das die Endgeräte sich mit dem Raspberry Pi verbinden dürfen, müssen wir das BlueTooth Modul erst einmal auf sichtbar schalten:
hciconfig hci0 piscan
Wenn wir danach den Befehl
hciconfig -a
ausführen, können wir sehen – ob die Sichtbarkeit aktiviert ist:
UP RUNNING PSCAN ISCAN
–> ISCAN Endgerät ist sichtbar!
Sichtbarkeit deaktivieren:
Bluetooth – Raspberry Pi
hciconfig hci0 noscan
Das Problem ist nun, möchte man sich verbinden – wird eine PIN abgefragt, welche wir nicht wissen!
Dies können wir lösen, in dem wir dem PI eine PIN vorgeben:
bluetooth-agent 1234
TIPP:
Wenn ihr die Sichbarkeit direkt nach dem Start erreichen wollt, dann könnt ihr das mittels eines Crontab Eintrages erledigen.
crontab -e
Folgende Einträge hinzufügen:
@reboot sudo -u root hciconfig hci0 piscan #Raspberry Pi sichtbar schalten
@reboot sudo -u root bluetooth-agent 1234 & #PIN für Pairing definieren
Die Kür:
Namen des Endgerätes und die Eigenschaft des Adapters definieren:
nano /etc/bluetooth/main.conf
Änderungen:
Name = BluetoothTool
Class = 0x20041C
Die Class 0x20041C kennzeichnet das Bluetooth-Gerät als Audio-Device.
Die Class 0x410100 würde das Gerät als PC kennzeichnen.
Eigene Device Class erstellen: Online Class 1 / Online Class 2
Allgemeine Infos zu den Device Klassen – Listen Übersicht
nano /var/lib/bluetooth//config
name BluetoothTool
pairable yes
class 0x20041C
So damit sind wir dann auch schon durch und ich hoffe ich konnte Euch zumindest etwas Wissen zum Thema BlueTooth mit dem Raspberry vermitteln!
Wie ich die Sache mit der „Präsenzmeldung“ und dem iPhone hin bekommen habe, werde ich Euch in einem späteren HowTo erklären!
Tags:
- usb bluetooth raspberry pi
- raspberry pi bluetooth immer sichtbar
- bluetooth stick raspi libreelec
- raspi bluetooth geräte scannen
- raspberry bluetooth sichtbar