2016-07-11 6 views
2

でLinuxデバイスにIは、Bluetoothにかなり新しいですので、これは些細なことかもしれないが、私はまだ頼むよ:ブルートゥース - ペアリングを聞いでもPythonの

私はBluetooth経由で2つのデバイスを接続したいと思います - Linuxデバイスを搭載したモバイルデバイス(Raspberry Piのようなものですが、別のもの...)。

サイド1 - モバイル:これは、Linuxデバイスとペアにして、いくつかのデータを送信するアプリケーションを持っています(この時点では "Hello"というメッセージ)。

サイド2 - Linuxデバイス:デバイスがブルートゥースを介してデバイスに接続されていて、データを受信し、受信して処理するという点で、リスナーが必要です。

サイド1はすばらしいです。

サイド2に関しては、今のところ私はBluetoothをオンにし、デバイスに何らかの名前を付けてスキャンを待つために、いくつかのコマンドラインコマンドしか使用しません。この時点で

hciconfig hci0 up 
hciconfig hci0 name MyDevice 
hciconfig hci0 sspmode 1 
hciconfig hci0 piscan 

、私のデバイスが正常にそれと対を私の携帯に可能な発見とそれである:私は次々、Pythonスクリプトで次のコマンドを実行して、「hciconfig」でそれを行います。今、私はリスニングパートについています。私は、デバイスがペアになっているときにLinuxデバイスが特定の機能(Pythonで好む)を実行し、そのデバイスからデータを受け取ることを期待しています。私はRFCOMMとBluezを使用してネット上のリンクをいくつか見てきましたが、成功しなかった...

誰かが助けてくれますか? おかげ

答えて

3

おはよう、あなたはすでにPyBluez がここに使用sudo pip install pybluez をインストールするためのBluetoothデバイスと通信するためのソケットを使用する方法の例があるのBluetooth接続を処理Pythonで書かれたライブラリがあり

import bluetooth 
bd_addr = "01:23:45:67:89:AB" 
port = 1 
sock=bluetooth.BluetoothSocket(bluetooth.RFCOMM) 
sock.connect((bd_addr, port)) 
sock.send("hello!!") 
sock.close() 

完全ガイドはBluetooth Programming with PyBluez である。

+0

私はその前の例を見てきた。問題は、一方の側がもう一方のMACを事前に知っていることではないので、bd_addrでは何ができますか?何もない...モバイル側にあるべきコードのように見える別のものは、Linuxデバイスに接続するものです。私は、データを受信するLinuxデバイスにあるコードを探しています(送信しません) – DanielY

+0

1 - どちらのMACアドレスでスキャンを行う必要があるかを知るために、スキャンで使用可能なMACのリストが表示されますソケットをバインドするMACアドレスを知るために、デバイスの実際の名前を探すためにディスカバリを使用してください。 2 - 両方のMACアドレスをLinuxマシンとモバイルの両方のソケットにバインドしたら、通常のソケット通信(両側でrecvを送信) –

+0

私は部分的に理解しています...モバイルデバイスはBLデバイスをスキャンし、そのデバイスを見つけてペアにします。今は、そのMACアドレスを知っています。他のデバイスは、モバイルデバイスがペアになっていることをどのように知ることができますか? – DanielY

関連する問題