Raspberry Pi – Bluetooth verbindingen maken

raspberry pi logo

bluetooth netwerkJe kan bluetooth gebruiken op de Raspberry Pi, en zo de services daarvan gebruiken op apparaten die deze ook ondersteunen.

Lees bluetooth dongle en instellingen hier

Met een bluetooth apparaat verbinden vanaf de Raspberry Pi

Je kan met bluez-simple-agent een verbinding maken met bijvoorbeeld je telefoon:

1) Zet je telefoon in “discovery” mode”.

2) Gebruik hcitool scan  op de raspberry pi om het MAC adres van de telefoon te vinden:

3) Gebruik dat mac adres om te koppelen met bluez-simple-agent:

sudo bluez-simple-agent hci0 98:52:B1:4C:29:13

4) voer de pincode in, bijvoorbeeld 0000:

Nu verschijnt er op je telefoon een koppelverzoek, voer hier dezelfde pincode in:

raspberry pi bluetooth koppelen met telefoon

Na het koppelen zie je dit in de console van putty

En je telefoon is gekoppeld:

raspberry pi bluetooth koppelen met telefoon 02

Weiger je de koppeling op de telefoon, dan verschijnt dit in de linux console:

Creating device failed: org.bluez.Error.AuthenticationRejected: Authentication Rejected

Foutmelding “No module named gobject”

Krijg je bij het gebruik van bluez-simple-agent een foutmelding als deze:

Dan moet de module python-gobject nog geïnstalleerd worden, met het commando:

sudo apt-get install python-gobject

Foutmelding “Already Exists”

Krijg je bij het gebruik van bluez-simple-agent een foutmelding als deze:

Creating device failed: org.bluez.Error.AlreadyExists: Already Exists

Dan is er al een connectie met het MAC adres, je kan het MAC adres ontkoppelen met het commando:

sudo bluez-test-device remove [MAC ADRES]

bijvoorbeeld:

sudo bluez-test-device remove 98:52:B1:4C:29:13

Met de Raspberry Pi verbinden vanaf een bluetooth apparaat

1) Zet de Raspberry Pi in “discovery” mode, met het commando:

sudo hciconfig hci0 piscan

2) start de agent met het commando:

sudo bluez-simple-agent hci0

Nu wordt er “geluisterd” voor een bluetooth verbinding.

3) Als je nu met bijvoorbeeld een telefoon verbinding maakt met de Raspberry Pi en je tikt de pin code in op de telefoon, verschijnt er in de console op de Raspberry Pi de vraag om de pin in te voeren:

4) Na het invoeren van de juiste pincode zijn de apparaten gekoppeld.

Vreemd is wel dat je met CTRL+C het script moet beëindigen als je het via de console uitvoert, het script blijft in een loop hangen…

Ps. Je kan ook een PIPE gebruiken voor de wachtwoord zodat de Raspberry Pi automatisch verbind met de telefoon, gebruik daarvoor het voglende commando:

echo "0000" | sudo bluez-simple-agent hci0 [MAC ADRES]

Een bestand verzenden naar de Raspberry Pi

Om een bestand te verzenden via bluetooth op de Raspberry Pi heb je een OBEX (Object Exchange) service nodig voor uitwisselen objecten, zoals adresgegevens, agendagegevens, etc.

Installeer de OBEX pakketten met het commando:

sudo apt-get install obexftp obexpushd

Om de OBEX service te gebruiken start deze met het commando:

obexpushd -B

De -B parameter vertelt het programma te luisteren voor bluetooth connecties.

Zodra er een bestand wordt verzonden, van bijvoorbeeld van een telefoon:

raspberry pi bestandsoverdracht met bluetooth 01

wordt het bestand geplaatst in de folder waar je obexpushd hebt gestart, om een andere folder aan te wijzen om bestanden naartoe weg te schrijven gebruik de parameter -o, een voorbeeld om naar de HOME folder weg te schrijven:

obexpushd -B -o ~/

Je ziet dan de data/bestanden in de desbetreffende folder staan:

raspberry pi bestandsoverdracht met bluetooth 02

Let op: er kan maar 1 service van obexpushd actief zijn, gebruik het commando:

ps aux | grep obexpushd

Om te zien welke commandolijn parameters actief zijn, beëindig een service via een PID nummer met KILL, bijvoorbeeld:

kill 3949

Start dan opnieuw een obexpushd sessie met andere commandolijn parameters.

Bronnen: jamesrobertson.eu / manpages.ubuntu.com / zitzlinux.wordpress.com / elinux.org