2016-04-08 5 views
1

Я пытаюсь использовать python для управления (отправки значений) ардуино, подключенного к HC-06 через Bluetooth.Python Communication to Arduino через Bluetooth

Я использую python 3.4.2 на машине под Windows 10.

Проблема возникает именно в том, как это сделать. Я пробовал пару методов без успеха.

То, что я пробовал:

Я попытался с помощью библиотеки 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 создает при подключении к на устройстве появляется всплывающее окно с просьбой «настроить» устройство. Если вы нажмете на него, появится новое окно с сообщением о том, что возникла проблема, и вы должны повторно подключить устройство. Независимо от того, нажимаете ли вы на это всплывающее окно, ошибка остается прежней.

Любая помощь была бы принята с благодарностью.

ответ

0

Так что время исцеляет все раны, я думаю.

Решение состояло в том, чтобы использовать pyserial и подключить ноутбук к HC-06.

Очень важно, чтобы убедиться, что пара прошла успешно, все HC-06 чипы имеют пароль по умолчанию «1234»

После подключения вы должны перейти в настройки блютуз в окнах и будет авансовый меню где вы можете найти исходящий номер COM порта, это число, которое вы будете использовать в pyserial, чтобы открыть соединение с последовательным HC-06

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

Тада!

Смежные вопросы