не удается подключить сокет к Bluetooth-сопряженному устройству - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь подключить мой Raspberry Pi 3B к Arduino, в котором есть Bluetooth-чип HC-05 для отправки команд.Я успешно установил пару между HC-05 и Pi, используя

Device 98:7B:F3:57:76:34
    Name: BT05
    Alias: BT05
    Paired: yes
    Trusted: yes
    Blocked: no
    Connected: yes
    LegacyPairing: no
    UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
    UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
    UUID: Device Information        (0000180a-0000-1000-8000-00805f9b34fb)
    UUID: Unknown                   (0000ffe0-0000-1000-8000-00805f9b34fb)
    Modalias: bluetooth:v000Dp0000d0110

Теперь я пытаюсь использовать Python для отправки команд.Мой код:

import bluetooth

bd_addr = "98:7B:F3:57:76:34"

def connect ():
    port = 1
    sock=bluetooth.BluetoothSocket(bluetooth.RFCOMM)
    print("Trying to pair to", bd_addr)
    sock.connect((bd_addr, port))
    a = "a"
    while a != 'quit':
        a = input("<<< ")
        sock.send(a)
    sock.close()

connect()

Я получаю исключение при выполнении кода, говоря, что хост не работает, и я не могу найти проблему:

python3 tests/bt.py 
Trying to pair to 98:7B:F3:57:76:34
Traceback (most recent call last):
  File "<string>", line 3, in connect
_bluetooth.error: (112, 'Host is down')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "tests/bt.py", line 16, in <module>
    connect()
  File "tests/bt.py", line 9, in connect
    sock.connect((bd_addr, port))
  File "<string>", line 5, in connect
bluetooth.btcommon.BluetoothError: (112, 'Host is down')

Я имеюпопытался заменить устройство HC-05 и перезапустить службу Bluetooth, и Pi, но я все еще не могу подключиться к Arduino, и я потерян.

Спасибо всем помощникам

1 Ответ

1 голос
/ 03 июня 2019

Я исправил проблему, выполнив 2 действия: Прежде всего, только один из моих 5 модулей HC-05 в порядке, что затрудняет решение другой половины проблемы.

Другое решение пришло из этой записи. Я изменил раздел класса в

/etc/bluetooth/main.conf

до:

Class = 0x400100

И это все. Мне даже не нужно связывать свое устройство после перезагрузки (Arduino или Pi). Этот код соединяет Pi и Arduino и отправляет все команды.

...