我一直在尝试将我的hc 05 bt
模块与笔记本电脑连接,并与Idle
进行通信。
首先,我从笔记本电脑的蓝牙设置手动连接我的bt设备,然后我可以使用以下代码获取模块的bt address
:
import bluetooth
target_name = "HC-05"
target_address = None
nearby_devices = bluetooth.discover_devices()
for bdaddr in nearby_devices:
if target_name == bluetooth.lookup_name( bdaddr ):
target_address = bdaddr
break
if target_address is not None:
print "found target bluetooth device with address ", target_address
else:
print "could not find target bluetooth device nearby"
我收到的蓝牙地址为"98:D3:31:70:7D:2D"
现在我编写了以下代码,通过python ..
连接HC-05
bd_addr = "98:D3:31:70:7D:2D"
port = 20
sock=bluetooth.BluetoothSocket( bluetooth.RFCOMM )
sock.connect((bd_addr, port))
sock.send("1")
sock.close()
现在我浏览笔记本电脑的蓝牙通讯端口设置,发现了两件事 第一......
COM19
Direction--- Incoming...
Name--- HC-05
...第二
COM20
Direction--- Outgoing
...
Name--- HC-05 'Dev B'
因此我选择COM20
因为我想从Python传输数据。
当我运行此代码时,我收到错误:
Traceback (most recent call last):
File "C:\Python27\TestBluetooth.py", line 26, in <module>
sock.connect((bd_addr, port))
File "C:\Python27\lib\site-packages\bluetooth\msbt.py", line 72, in connect
bt.connect (self._sockfd, addr, port)
IOError: A socket operation failed because the destination host was down.
我尝试了COM19
和COM20
但得到了同样的错误。
我的蓝牙通过TX
引脚连接到arduino's RX pin
,而arduino已连接到我的电脑,因此有时不会发生COM port
共享错误。
当我将蓝牙模块与笔记本电脑蓝牙连接并打开Bluetooth Serial terminal
并从那里传输数据时,它工作正常。
所以我对Python代码的理解和编写存在一些问题。
请帮忙......