Связь Bluetooth между Arduino и PyBluez

Я пытаюсь установить bluetooth-связь между платой Arduino Uno (с экраном bluetooth) и моей ОС Linux, используя Python PyBluez.

Я успешно соединил свой ноутбук с Uno. Я могу подключиться к плате, однако плата не считывает отправленные данные и не может отправлять данные.

Вот эскиз Arduino

#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'); } 

И мой модуль Python:

 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() 

У меня есть Arduino IDE 1.0.4, на моем ноутбуке работает Ubuntu 11.10

Эта твоя линия:

 data = sock.recv(1) 

может не получать достаточное количество байтов, поэтому попробуйте эту информацию, отправленную Tim: только получение одного байта из сокета

Используя Itade Studio Bluetooth Shield, вы должны загрузить код без прикрепленного экрана, а затем прикрепить экран. Мне интересно, если это так с другими модулями Bluetooth.

Ради завершения, чтобы установить связь между вашим ноутбуком и Arduino Uno w / BT shield:

  1. Соедините ноутбук с экраном bluetooth

  2. Загрузите код Arduino со снятым экраном.

  3. Прикрепите щит

  4. Запустите модуль python.

На экране itade вы знаете, когда соединение установлено, когда светодиод D1 становится сплошным зеленым, так как он противостоит мерцающему зеленому.