我无法从 arduino 和蓝牙模块 HC-05 接收数据。我尝试使用 PySerial 和 Pybluez 接收数据,但没有一个对我有用。如果有人可以审查我做错了什么,我将不胜感激。
我在 StackOverflow 中找到了这个,但它不起作用。 Arduino 和 PyBluez 之间的蓝牙通信
这是我的arduino代码:
#include <SoftwareSerial.h>
#define RxD 10
#define TxD 11
SoftwareSerial BTSerial(RxD, TxD);
void setup()
{
BTSerial.flush();
delay(500);
BTSerial.begin(9600);
BTSerial.println("The controller has successfuly connected to the PC");
Serial.begin(9600);
delay(100);
}
void loop()
{
BTSerial.write("{Dato1: 545}");
}
这就是我用 pyserial 测试它的方式:
import serial
device_handler = serial.Serial('COM6', 9600, timeout=1)
count = 0
while (count < 5):
print device_handler.readline()
count += 1
device_handler.close()
这就是我尝试使用 pybluez 的方式,如以下链接所述: https ://people.csail.mit.edu/albert/bluez-intro/x232.html
import bluetooth
import sys
bd_addr = "20:15:03:19:27:02"
port = 1
sock = bluetooth.BluetoothSocket( bluetooth.RFCOMM )
sock.connect((bd_addr, port))
print 'Connected'
sock.settimeout(1.0)
count = 0;
while (count < 10):
data = sock.recv(12)
print 'received: %s'%data
count += 1
sock.close()
这两种形式都不适合我。Pyserial 不会抛出错误并执行五个读数。显然它一无所获。另一方面,pybluez 抛出这个异常:
IOError: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
谢谢你的帮助,对不起我的英语这么差。