我试图使用python来控制(发送值到)通过蓝牙连接到HC-06的arduino。

我在Windows10机器上使用Python3.4.2。

问题是如何做到这一点。我试过几种方法都没有成功。

我试过的:

我试着用Pybluez库找到HC-06,连接到它,然后发送数据。问题是没有办法知道我应该通过哪个端口发送。driver_socket = bluetooth.BluetoothSocket(bluetooth.RFCOMM)

driver_socket.connect((addr,port))

print("Connected!")

time.sleep(1)

driver_socket.send("a")

print("Sent Message!")

driver_socket.close()

我试图通过bluetooth.service找到端口,但返回了一个空列表,这可能是由于HC-06的功能有限。

接下来,我尝试将设备预配对到我的计算机上,并设置一个COM端口以使用Pyserial发送数据。当我进行测试时,HC-06被限制在COM8上。s = serial.Serial('COM8', 9600,timeout = 1)

print("connected!")

time.sleep(10)

s.write(b"Hello")

print("Sent Message!")

这似乎可以工作,但在尝试建立连接几秒钟后,我收到以下错误:self.open()

File "C:\Python34\lib\site-packages\serial\serialwin32.py", line 62, in open

raise SerialException("could not open port %r: %r" % (self.portstr, ctypes.WinError()))

serial.serialutil.SerialException: could not open port 'COM8': OSError(22, 'The network location cannot be reached. For information about network troubleshooting, see Windows Help.', None, 1231)

还有一个问题是Windows 10造成的,当连接到设备时,会出现一个弹出窗口,要求您“设置”设备。如果单击它,将出现一个新窗口,说明出现了问题,您应该重新连接设备。无论是否单击此弹出窗口,错误都保持不变。

任何帮助都将不胜感激。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐