По-видимому, можно выполнить сопряжение и обмен данными с модулем без с помощью штыря, но пока только с помощью gatttool
. Я все еще изучаю BLE, и мне неясно, является ли это нормальной функцией (например, режимом по умолчанию с низким уровнем безопасности), или используются ли модули, которые я использую (серийный BLE в стиле JDY-08 / BT05 / HM-10) может быть несовместимым и просто не использовать пин-код, как установлено.
Я запускаю Ubuntu Mate на Lenovo P50. Я изучаю модуль BLE BT05, но не могу подключиться к устройству из-за того, что, по моему мнению, может быть ошибкой в Ubuntu. Шаги, которые я предпринимаю для подключения устройства:
Пин настроен и не может быть выведен операционной системой (если не считать принудительных 10 ^ 6 возможностей), поэтому я должен иметь возможность ввести его при подключении к устройству. Эта проблема может быть связана. Команды , найденные здесь , являются возможным решением, но на сегодняшний день не существует метода связи с устройствами Bluetooth через графический интерфейс пользователя.
bluetoothctl
bluetoothctl
заявляет о подключении (без использования пользовательского пина). ( этот вопрос полезен для понимания того, что делает bluetoothctl
). Тем не менее, кажется, что невозможно прочитать / записать характеристики после сопряжения устройства?
φ bluetoothctl
[bluetooth]# agent on
Agent registered
[bluetooth]# default-agent
Default agent request successful
[bluetooth]# scan on
[NEW] Device [address] [name]
[bluetooth]# scan off
[bluetooth]# pair [address]
Attempting to pair with [address]
[CHG] Device [address] Paired: yes
Pairing successful
[name]# info [address]
Device [address]
Name: [name]
Alias: [name]
Paired: yes
Trusted: yes
Blocked: no
Connected: yes
LegacyPairing: no
UUID: Generic Access Profile ([ID1])
UUID: Generic Attribute Profile ([ID2])
UUID: Device Information ([ID3])
UUID: Unknown ([ID4])
Modalias: bluetooth:[number]
[name]# list-attributes
[no attributes]
На основании, например, этого учебного пособия, я ожидаю, что характеристики и атрибуты станут доступно после сопряжения.
hcitool
и gatttool
I я могу подключиться к модулям и получить доступ к соответствующим свойствам с помощью команд hcitool
и gatttool
. Это также без булавки.
φ sudo hcitool -i hci0 lescan --duplicates | grep 'earlybird'
[ADDRESS] [NAME]
φ gatttool -i hci0 -b [ADDRESS] -I
[ADDRESS][LE]> connect
Attempting to connect to [ADDRESS]
Connection successful
[ADDRESS][LE]> primary
attr handle: 0x0001, end grp handle: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb
attr handle: 0x000c, end grp handle: 0x000f uuid: 00001801-0000-1000-8000-00805f9b34fb
attr handle: 0x0010, end grp handle: 0x0022 uuid: 0000180a-0000-1000-8000-00805f9b34fb
attr handle: 0x0023, end grp handle: 0xffff uuid: 0000ffe0-0000-1000-8000-00805f9b34fb
[ADDRESS][LE]> included
No included services found for this range
[ADDRESS][LE]> characteristics
handle: 0x0002, char properties: 0x02, char value handle: 0x0003, uuid: 00002a00-0000-1000-8000-00805f9b34fb
...
handle: 0x0024, char properties: 0x1e, char value handle: 0x0025, uuid: 0000ffe1-0000-1000-8000-00805f9b34fb
На самом деле пост, на который вы ссылались, идентичен, поскольку у них никогда не было опции PIN-кода, второе изображение было от кого-то другого. Я хотел бы попробовать в терминале, с вашим устройством BT05 в режиме сопряжения
echo -e "power on\n scan on" |bluetoothctl
Затем вы должны увидеть ссылку на новое устройство с MAC-адресом и именем, использовать MAC точно так, как показано в терминале, или вы можете ввести первые две цифры пары и используйте клавишу TAB для автозаполнения pair {MAC}
trust {MAC}
connect {MAC}
. Если вам повезет, он соединится или попросит ввести PIN-код. Если это не сработает, установите Blueman sudo apt install blueman
. Проверьте, позволит ли вам использовать 6-значный PIN-код, поскольку это было ошибкой в gnome-bluetooth в 16.04.