Estou executando um Raspberry PI 3 decapitado e quero que ele aceite automaticamente emparelhamentos de qualquer dispositivo.
Eu vi essa resposta em uma pergunta idêntica:
Aceitar automaticamente conexões Bluetooth em um Pi 3
Mas parece estar um pouco desatualizado e alguns dos comandos usados parecem não existir.
Estou executando a 2016-05-27-raspbian-jessie.img
imagem do sistema operacional.
bluetooth-agent
, mas não tenho certeza.Respostas:
Como o
bluetooth-agent
comando não existe em Jessie, a maneira moderna é canalizar comandos relevantes parabluetoothctl
. Com base nessa pergunta de SO , o seguinte script deve habilitar o emparelhamento automático sem a entrada manual de pinos:fonte
No agent is registered
, parece que odefault-agent
comando é executado rapidamente. Quando eu insiro os comandos manualmente, ele não apresenta esse erro, mas, depois que eubluetoothctl
o encerro, o registro do agente é cancelado e a tentativa de conexão falha. Se eu sairbluetoothctl
correndo, eu recebo um prompt perguntando se você deseja realizar a conexão, que não é tãoNoInputNoOutput
como você esperaria ...NoInputNoOutput
política não é tanto uma autorização, mas parte do protocolo bluetooth para descobrir que tipo de mecanismo de autorização (por exemplo, um pino pode ser usado?) Está disponível.Eu apenas usei uma nova instalação
2016-09-23-raspbian-jessie-lite.img
para experimentá-lo sem atualizações adicionais. Não,apt-get update
não,apt-get install bluez-utils
nem nada. Esse comando único torna o Pi detectável e emparelhado. Sem um agente para controlar quem pode se conectar, ele permite que qualquer pessoa:fonte
Raspbian - Jessie
xxxxx.sh
fonte
Eu estava enfrentando o mesmo problema e encontrei esse método para funcionar (RasPi 3, Modelo B, Raspbian 9 Stretch)
Estou usando o Raspberry Pi como um dispositivo IoT EDGE e precisava dele para aceitar solicitações de par de Bluetooth sem intervenção. Eu tenho um aplicativo Android que comunica informações de texto para o Pi via Bluetooth e minha declaração de problema precisava de qualquer dispositivo Android para conectar.
Em primeiro lugar, não estou executando nenhum agente Bluetooth separado (No Blueman, na verdade, tive que removê-lo)
Editou o arquivo .bashrc em
Adicionado dois comandos para isso no final
piscan torna Raspberry Pi Bluetooth detectável
O sspmode 1 habilita o 'Pareamento simples seguro', que é o mesmo tipo de método usado pelos fones de ouvido ou alto-falantes Bluetooth (basicamente dispositivos que não possuem uma tela onde você pode confirmar o PIN). E como esses comandos estão no .bashrc, eles são executados na inicialização.
Execute o script Bluetooth. Par. Embora exista um pop-up solicitando a confirmação, posso comunicar mensagens de e para o Pi com meu aplicativo
Nota: hci0 pode não ser o mesmo todo, pode ser hci1, hci2, verifique executando hciconfig na sua CLI
Isso é quase como uma engenhoca, e não tenho certeza se há alguma repercussão desconhecida, mas funciona. Quaisquer melhorias são apreciadas
fonte
Você pode dar uma olhada no código fonte do EcoDroidLink . Ele aceita conexões Bluetooth sem a necessidade de fazer login.
EDIT: Pela demanda popular, aqui estão trechos de código do
edl_agent
módulo que faz isso acontecer.fonte