2016-05-28 10 views
0

Ich verwende den folgenden Code für einen Arduino Uno:Wie sende ich serielle Daten über Bluetooth an ein nicht spezifiziertes Gerät?

#include <SoftwareSerial.h> 

SoftwareSerial device(2, 3); 

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

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

Kein bestimmtes Gerät zu senden, um festgelegt ist.

Wenn ich will, um die Daten auf meinem Laptop (Ubuntu 14.04) Ich rufen Sie einfach erhalten:

sudo rfcomm bind rfcomm0 [MAC ADDRESS] 1 

und

screen /dev/rfcomm0 

in einer anderen Terminal-Instanz und es funktioniert.

Wie kann ich das gleiche Verhalten mit einer Android App erreichen? Folgendes example code gibt ein Gerät an. Ich kann keinen anderen Code finden. Zusätzlich es nur funktioniert, wenn ich auf dem Laptop für eine eingehende Verbindung wie diese höre:

sudo rfcomm listen rfcomm0 [MAC ADDRESS] 

ich mein Android App will genau Beispiel wie der Arduino zu arbeiten. Wie kann ich das erreichen?

Antwort

1

Leider scheint Android keine Low-Level-Classic-Bluetooth-APIs zu haben, mit denen Sie Broadcast-Verhalten erzielen können. Dies macht einen gewissen Sinn, da Android dazu gedacht ist, in ein leistungsbegrenztes Gerät zu gehen und aktive Radios Energie zu verwenden. Wenn Sie Classic Bluetooth (3.x) und Android zum Senden oder Empfangen von Broadcast-Verhalten verwenden müssen, müssen Sie wahrscheinlich ein benutzerdefiniertes ROM schreiben.

Allerdings gibt es eine Spezifikation namens Bluetooth Low Energy (4.x) ermöglicht weniger Energieverbrauch, aber langsamer/weniger Datendurchsatz. Speziell der Werbemodus. Android-Geräte, die scannen, können das kurz beworbene Datenpaket aufnehmen, das von einem Gerät gesendet wird, das "Beacon" genannt wird. Protokolle, die diesen Modus verwenden, sind Apples iBeacon und Googles Eddystone.

Schauen Sie hier für Beispielanwendungen beteiligt Anzeigen:

Beachten Sie auch, dass Android-Geräte nicht immer BLE Peripheral-Modus unterstützen, das ist, was Sie brauchen für Ihre Android-Gerät als Beacon fungieren.

Related Link: Can an Android device act as an iBeacon?

Und eine schöne Liste von dem, was Geräte wurden getestet: http://altbeacon.github.io/android-beacon-library/beacon-transmitter-devices.html

Also in Ihrem Fall sollten Sie noch in der Lage sein, Ihre Sony Xperia Z3 als Scanner zu verwenden, aber muss ein Beacon zum Testen kaufen/bauen.