Ich bin ein bisschen neu an all dies, also ertragen Sie mit mir - ich würde wirklich Ihre Hilfe zu schätzen wissen.Schnittstelle Android Nexus One mit Arduino + BlueSmirf
Ich versuche, das Android Nexus One mit einem Arduino (Duemilanove) zu verbinden, das mit einem BlueSmirf verbunden ist. Ich habe ein Programm, das einfach die Zeichenfolge "Hallo Bluetooth" an jedes Gerät ausgibt, mit dem der BlueSmirf verbunden ist. Hier ist das Arduino-Programm:
void setup() { Serial.begin (115200); int i; }
Leere Schleife() {Serial.print ("Hallo Bluetooth!"); Verzögerung (1000); }
Eines meiner Computer BT-Terminal kann ich die Nachricht sehen und verbinden kein Problem. Das Problem ist mit meinem Android-Code. Ich kann mit dem Gerät mit Android verbinden, aber wenn ich das Protokoll anschaue, zeigt es nicht "Hello Bluetooth" an. Hier ist das Debug-Protokoll:
04-09 16: 27: 49,022: ERROR/BTArduino (17288) Firefly-2583 verbunden
04-09 16: 27: 49,022: ERROR/BTArduino (17288): AUSGANG Für die Verbindung der SOCKET
04-09 16: 27: 55,705: ERROR/BTArduino (17288): Received: 16
04-09 16: 27: 56,702: ERROR/BTArduino (17288): Received: 1
04- 09 16: 27: 56.712: FEHLER/BTAroduo (17288): Empfangen: 15
04-09 16: 27: 57.702: FEHLER/BTArduino (17288): Empfangen: 1
04-09 16: 27: 57.702: FEHLER/BTArduino (17288): Erhalten: 15
04-09 16: 27: 58,704: ERROR/BTArduino (17288): Received: 1
04-09 16: 27: 58,704: ERROR/BTArduino (17288): Received: 15
ect ...
hierist der Code, ich versuche nur die relative Code zu setzen, aber wenn Sie mehr benötigen, bitte lassen Sie mich wissen:
private class ConnectThread extends Thread {
private final BluetoothSocket mySocket;
private final BluetoothDevice myDevice;
public ConnectThread(BluetoothDevice device) {
myDevice = device;
BluetoothSocket tmp = null;
try {
tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
} catch (IOException e) {
Log.e(TAG, "CONNECTION IN THREAD DIDNT WORK");
}
mySocket = tmp;
}
public void run() {
Log.e(TAG, "STARTING TO CONNECT THE SOCKET");
InputStream inStream = null;
boolean run = false;
//...More Connection code here...
Je mehr relativen Code ist hier:
byte[] buffer = new byte[1024];
int bytes;
// handle Connection
try {
inStream = mySocket.getInputStream();
while (run) {
try {
bytes = inStream.read(buffer);
Log.e(TAG, "Received: " + bytes);
} catch (IOException e3) {
Log.e(TAG, "disconnected");
}
}
Ich lese Bytes = inStream.read (Puffer). Ich weiß, Bytes sind eine Ganzzahl, also habe ich versucht, Ganzzahlen über Bluetooth zu senden, weil "Bytes" eine ganze Zahl waren, aber es machte immer noch keinen Sinn.
Es scheint fast, dass eine falsche Baudrate gesendet wird. Könnte das wahr sein?
Jede Hilfe wäre willkommen. Vielen Dank.
Versuchen Sie es stattdessen mit einer Writeln/Readln Combo. –