Estou procurando desenvolver uma plataforma para o meu carro que conecte automaticamente qualquer dispositivo que tente se conectar ao Pi via bluetooth. Atualmente, ele exige uma aceitação de emparelhamento pelo Pi, mas neste caso não haverá tela, portanto será necessário fazê-lo automaticamente. Como posso fazer isso?
14
Respostas:
( Observe que esta resposta não está mais funcionando como no Raspbian Jessie, pois o bluez removeu o comando bluetooth-agent )
Portanto, atualmente você declara que pode se conectar perfeitamente ao Pi, mas precisa de um monitor para o processo de emparelhamento.
Nota: aceitar qualquer conexão é uma ideia incrivelmente insegura e, se você estiver usando apenas um conjunto limitado de dispositivos, configurá-los como dispositivos confiáveis faria muito mais sentido, pois limitaria a conexão com os endereços do Mac, mas não permitiria novos dispositivos a serem adicionados sem um monitor
Mas, de qualquer maneira, os comandos que você precisará executar para aceitar todas as conexões feitas no Pi, para torná-lo detectável e definir um pino previsível estão listados abaixo:
Nota: pode ser necessário alterar o zero
hci0
para o número Bluetooth do seu dispositivo.Agora, depois de executar esses comandos e ver se eles funcionam como esperado, podemos prosseguir para configurá-los para iniciar a inicialização do seu Pi.
sudo nano mohammadIsAmazing.sh
Agora, inserimos o seguinte nesse arquivo:
Agora salvamos e fechamos nosso arquivo usando o
control key and x
Abrimos o arquivo
/etc/rc.local
usando o seguinte comando:Agora inserimos o comando para executar nosso script bash no
/etc/rc.local
Nota: você deve colocar o comando antes da última linha em /etc/rc.local que contém:
exit 0
Agora, salvamos e fechamos esse arquivo e reiniciamos o Pi.
Em uma nota lateral: certifique-se de escolher um pino aleatório para aumentar marginalmente a segurança
Em outra observação: Se você deseja alterar o nome do dispositivo bluetooth, é necessário criar um arquivo chamado
/etc/machine-info
que deve conter o seguinte:Então corra
service bluetooth restart
depois dissofonte
&
no final da linha norc.local
arquivo - sem ela, o RPI pode não terminar a inicialização como as esperas shell para seu script/path/to/script/mohammadIsAmazing.sh
para concluir a execução antes de continuar - e se ele não terminar a inicialização que você não será capaz dessh
em para consertar as coisas ...!apt-get install bluetooth bluez
primeiro e me diga se isso funciona para você.bluetooth-agent
e não consegui encontrá-lo também. A instalação dos pacotes não foi corrigida.Com base no que entendo, o que você precisa é de um módulo bluetooth escravo. Você pode usar o popular módulo HC-06 e conectá-lo ao raspberry pi por meio de um deslocador de nível nos pinos TX e RX no Pi e usar um script python para ler os dados seriais e processá-los conforme necessário
fonte
systemd
tem um, você presumivelmente precisa configurá-lo para se comportar de maneiras específicas.Não vou discutir a implicação de segurança ou não, mas é assim que faço:
O que tudo isso faz:
Define o dispositivo para ser sempre detectável.
Quando um dispositivo é emparelhado, ele o marca automaticamente no dispositivo confiável e se conecta a ele.
Em cada inicialização, ele percorre a lista de dispositivos conhecidos e tenta se conectar a eles.
Esteja ciente de que essa abordagem vai diretamente contra qualquer tipo de segurança, mas pode haver casos de usuários quando você deseja obter exatamente isso.
fonte
No Raspberry Pi3 Modelo B, há um bulit em bluetooth e wifi. Usando o servidor OBEX, você pode receber os arquivos de outros dispositivos sem perguntar sempre sobre a solicitação de emparelhamento. É necessário emparelhar pela primeira vez com esse dispositivo e criar um diretório, em que os arquivos são recebidos o tempo todo.
Basta seguir o passo abaixo.
https://www.raspberrypi.org/forums/viewtopic.php?p=963751#p963751
fonte