2016-05-28 24 views
0

私はArduinoの宇野のために、次のコードを使用します。シリアルデータをBluetooth経由で不特定のデバイスに送信する方法は?

#include <SoftwareSerial.h> 

SoftwareSerial device(2, 3); 

void setup() 
{ 
    device.begin(9600); 
} 

void loop() 
{ 
    device.println("33,89,156,203,978,0,0;"); 
} 

ない特定のデバイスが設定されているために送信します。

私は(Ubuntuの14.04を実行している)私のラップトップ上のデータを受信したい場合は、私は単純に呼び出す:別の端末のインスタンスで

sudo rfcomm bind rfcomm0 [MAC ADDRESS] 1 

screen /dev/rfcomm0 

をし、それが動作します。

Androidアプリでどのように同じ動作を達成できますか? example codeはデバイスを指定します。私は他のコードを見つけることができません。私はこのような着信接続のためのラップトップ上で聴くとさらにそれだけで動作します:

sudo rfcomm listen rfcomm0 [MAC ADDRESS] 

私は私のAndroidアプリが正確にArduinoの例のように仕事をしたいです。それをどうすれば実現できますか?

答えて

1

Androidは低レベルのクラシックBluetooth APIを搭載していないため、ブロードキャストタイプの動作ができません。これは、Androidが電力制限されたデバイスに入り、アクティブラジオがエネルギーを使用するように意図されているので、ある意味があります。クラシックBluetooth(3.x)とAndroidを使用してブロードキャストタイプの動作の送受信を処理する必要がある場合は、おそらくカスタムROMを作成する必要があります。

しかし、Bluetooth Low Energy(4.x)と呼ばれる仕様では、消費電力は少なくてもデータスループットは遅くなります。特に広告モード。スキャンしているAndroidデバイスは、「ビーコン」と呼ばれるデバイスによってブロードキャストされた短い広告データパケットを受け取ることができます。このモードを使用するプロトコルは、AppleのiBeaconとGoogleのEddystoneです。

は、広告を含むサンプルアプリをここを見て:

はまた、Androidデバイスは常に、あなたのために必要なものであるBLEペリフェラルモードをサポートしていないことに注意してくださいビーコンのように動作するAndroidデバイス。

関連リンク: Can an Android device act as an iBeacon?

とデバイスがテストされているかどうかの素敵なリスト: http://altbeacon.github.io/android-beacon-library/beacon-transmitter-devices.html

をだからあなたの場合には、あなたがまだスキャナとしてソニーのXperia Z3を使用することができるはずですが、テストのためにビーコンを購入/構築する必要があります。

関連する問題