Я использую Raspberry PI 3 без головы и хочу, чтобы он автоматически принимал пары с любого устройства.
Я видел этот ответ в идентичном вопросе:
Автоматический прием Bluetooth-соединений на Pi 3
Но это кажется немного устаревшим, и некоторые из используемых команд, кажется, не существуют.
Я запускаю 2016-05-27-raspbian-jessie.img
образ ОС.
bluetooth-agent
, но я не уверен.Ответы:
Поскольку
bluetooth-agent
команда не существует в Jessie, современный способ заключается в передаче соответствующих командbluetoothctl
. Исходя из этого вопроса SO , следующий скрипт должен включить автоматическое сопряжение без ручного ввода пин-кода:источник
No agent is registered
, кажется,default-agent
команда работает быстро. Когда я ввожу команды вручную, это не выдает эту ошибку, но как только яbluetoothctl
завершаю работу, агент регистрируется, и попытка подключения завершается неудачно. Если я ухожуbluetoothctl
, я получаю подсказку с вопросом, следует ли доверять соединению, что не так,NoInputNoOutput
как вы надеетесь ...NoInputNoOutput
это не столько политика авторизации, сколько часть протокола Bluetooth, чтобы выяснить, какие типы механизмов авторизации (например, можно ли использовать пин-код?) Доступны.Я просто использовал новую установку,
2016-09-23-raspbian-jessie-lite.img
чтобы попробовать его без каких-либо дополнительных обновлений. Нетapt-get update
нетapt-get install bluez-utils
или что-нибудь. Эта единственная команда делает Пи обнаружимым и доступным. Без агента, который контролирует, кто может подключиться, он позволяет любому:источник
Распбиан - Джесси
xxxxx.sh
источник
Я столкнулся с той же проблемой и обнаружил, что этот метод работает (RasPi 3, модель B, Raspbian 9 Stretch)
Я использую Raspberry Pi в качестве устройства IoT EDGE и мне нужно было принимать запросы пар Bluetooth без вмешательства. У меня есть приложение для Android, которое передает текстовую информацию Pi через Bluetooth, и для постановки задачи мне нужно было подключить любое устройство Android .
Во-первых, я не использую какие-либо отдельные Bluetooth-агенты (нет Blueman, фактически мне пришлось его удалить)
Отредактировал файл .bashrc в
Добавил две команды к этому в конце
piscan делает Raspberry Pi Bluetooth доступным для обнаружения
sspmode 1 включает «Безопасное простое сопряжение», которое является тем же методом, который используется вашими наушниками или динамиками Bluetooth (в основном это устройства, у которых нет дисплея, на котором вы можете подтвердить PIN-код). И поскольку эти команды находятся в .bashrc, они запускаются при загрузке.
Запустите скрипт Bluetooth. Пара. Хотя есть всплывающее окно с просьбой подтвердить, я могу обмениваться сообщениями с Pi и с помощью моего приложения
Примечание: hci0 может не совпадать, может быть hci1, hci2, пожалуйста, проверьте, запустив hciconfig на вашем CLI
Это почти как уловка, и я не уверен, есть ли какие-то неизвестные последствия, но это работает. Любые улучшения приветствуются
источник
Вы можете взглянуть на исходный код из EcoDroidLink . Он принимает Bluetooth-соединения без необходимости входа в систему.
РЕДАКТИРОВАТЬ: По многочисленным просьбам, вот выдержки из кода
edl_agent
модуля, который делает это.источник