2016-04-08 332 views
1

我想用python控制(發送值)通過藍牙連接到HC-06的arduino。Python通過藍牙與Arduino通信

我在Windows 10機器上使用python 3.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綁定。

​​

這似乎是它的工作,但幾秒鐘後嘗試建立連接,我收到以下錯誤:

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創建,連接時設備會彈出一個窗口,要求您「設置」設備。如果您點擊它,會出現一個新窗口,指出存在問題,您應該重新連接設備。無論您是否單擊此彈出窗口,錯誤仍然保持不變。

任何幫助將不勝感激。

回答

0

所以時間癒合了我所有的傷口。

解決方案是使用pyserial並首先將筆記本電腦與HC-06配對。

重要的是要確保對成功是非常重要的,所有的HC-06的芯片有一個默認密碼「1234」

一旦配對,你必須去你的藍牙設置窗口中和會有一個提前菜單在這裏你可以找到傳出COM端口號,這是數量,您將在pyserial使用開到HC-06

s = serial.Serial("COM3",9600,timeout = 2) 
s.write(bytes("hello!",'utf-8')) 

田田串行連接!