Bluetooth-Kommunikation zwischen Arduino und PyBluez

Ich bin versuchen, um die bluetooth-Kommunikation zwischen einem Arduino Uno board (mit einem bluetooth-shield), und mein Linux-OS, mit Python PyBluez.

Habe ich erfolgreich verbunden mein laptop mit der Uno. Ich bin in der Lage, eine Verbindung zu dem board, aber das board ist nicht das Lesen der gesendeten Daten, noch ist es in der Lage, Daten zu senden.

Hier ist der Arduino Sketch

#include <SoftwareSerial.h>

#define RxD 0    //receive data on digital 0
#define TxD 1 //transmit on digital 1

SoftwareSerial blueToothSerial(RxD, TxD);
int counter = 0;
int incoming;
void setup(void){
  Serial.begin(9600);
  //pinMode(RxD,INPUT);
  //pinMode(TxD,OUTPUT);
  setupBlueToothConnection();
}

void setupBlueToothConnection(){
  blueToothSerial.begin(19200);
  blueToothSerial.print("\r\n+STWMOD=0\r\n"); //set the bluetooth work in slave mode
  blueToothSerial.print("\r\n+STNA=SeeedBTSlave\r\n"); //set the bluetooth name as     "SeeedBTSlave"
  blueToothSerial.print("\r\n+STOAUT=1\r\n"); // Permit Paired device to connect me
  //blueToothSerial.print("\r\n+STAUTO=0\r\n"); // Auto-connection should be forbidden here
  delay(2000); // This delay is required.
  blueToothSerial.print("\r\n+INQ=1\r\n"); //make the slave bluetooth inquirable
  Serial.println("The slave bluetooth is inquirable!");
  delay(2000); // This delay is required.
  blueToothSerial.flush();
} 

void loop(){
  if(blueToothSerial.available())
     Serial.println(blueToothSerial.read());
  blueToothSerial.write('x');
}

Und mein Python-Modul:

import bluetooth
import sys
bd_addr = "00:12:10:23:10:18" #itade address

port = 1
sock=bluetooth.BluetoothSocket( bluetooth.RFCOMM )
sock.connect((bd_addr, port))
print 'Connected'
sock.settimeout(1.0)
sock.send("x")
print 'Sent data'

data = sock.recv(1)
print 'received [%s]'%data

sock.close()

Ich habe die Arduino-IDE 1.0.4, mein laptop läuft Ubuntu 11.10

  • Können Sie senden und empfangen von Daten zum/vom Arduino-board über die Serielle Monitor innerhalb der Arduino IDE?
  • Scheint zu funktionieren für mich. Ich habe dein Skript auf meinem Arduino Uno. Und ausgeführt das python-Skript. Dies ist das Ergebnis: user@ubuntu:~/$ python w.py Connected Sent data received [2]. Sind Sie sicher, dass Sie über funktionierende Verbindung zu Ihrem Arduino und Bluetooth-Gerät?
  • Die Bth-Schild verwenden Sie: ist es diese eine?
  • Nein, RS232
  • ja, ich kann senden/empfangen von Daten über den serial monitor innerhalb der Arduino-IDE.
  • Nein, ich bin nicht mit dem Seeed-Schild, noch bin ich über die RS232 verwende ich den itead BT shield link
  • Mein python-Modul gibt 'Gesendet' aber ich sehe nicht, dass es die gesendeten Daten auf dem seriellen monitor der IDE. Und meine module stecken auf recv()
  • Ist die SoftwareSerial-library noch notwendig? Jemand mit einem ähnlichen problem nicht die SoftwareSerial-Bibliothek.
  • Warten Sie, wie alle ähnlichen Bth boards dieses Schild verwendet 9600 baud standardmäßig. Warum haben Sie blueToothSerial.begin(19200); statt blueToothSerial.begin(9600);?
  • Haben Sie versucht, mit software-serial auf den pins 2 und 3?

InformationsquelleAutor mingxiao | 2013-03-18
Schreibe einen Kommentar