Estou tentando configurar uma porta serial virtual através de um adaptador USB-Bluetooth no Linux e enviar uma mensagem através de um dispositivo Android. Estou no kernel 3.6. Consigo emparelhar com êxito o dispositivo usando o gnome-bluetooth e também enviar arquivos para ele.
Para configurar a porta serial, primeiro adiciono um canal com um perfil SP ao meu adaptador:
sdptool add --channel=22 SP
Então eu chamo 'listen' com rfcomm:
rfcomm listen /dev/rfcomm0 22
que bloqueia
Waiting for connection on channel 22
Aparentemente, o rfcomm criará / dev / rfcomm0 após uma conexão bem-sucedida. Quando isso acontecer, eu gostaria de usar algo como cutecom para enviar e receber mensagens para o dispositivo conectado.
No meu dispositivo Android, abro um terminal Bluetooth SPP (existem vários por aí, tentei alguns diferentes) e tento conectar. Todos eles falham.
Como posso emparelhar com êxito e enviar arquivos sem problemas, sei que o emparelhamento e a comunicação por bluetooth funcionam.
Não tenho muita certeza do que mais posso tentar. Usei o 'sdptool browse' no meu dispositivo local e no dispositivo Android para garantir que não haja nenhum conflito de canal RFCOMM.
Os passos abaixo funcionaram para mim:
Em primeiro lugar você tem que emparelhar os dispositivos. O emparelhamento é relativamente fácil. Vou ligar para cliente (que começa a falar) e servidor (quem responde)
Você deve configurar o servidor antes: Lado do servidor (como root):
Lado do cliente (como raiz):
Agora, para abrir um terminal serial no cliente:
Comentários:
Quando você chama o último comando rfcomm connect ... no cliente, um dispositivo
/dev/rfcomm0
será criado e associado ao servidor/dev/recomm0
. Isso representa o link serial entre os doisO último comando do servidor:
rfcomm watch
.... 'escutará' as conexões de entrada. Na conexão perdida, o comando reiniciará um novo estado de 'escuta'.fonte
--compat
opção especial , caso contrário, a adição de um SP pode falhar. Veja aqui . Portanto, ajuste / corrija os scripts de inicialização do systemd / initd para que--compat
estejam lá.Eu resolvi isso com uma ligeira variação dos comandos de Pris. Dê a eles uma chance se alguém ainda estiver tendo problemas para configurar uma conexão rfcomm.
Isso ^ garante que você comece com uma lista limpa sempre que tentar configurar uma conexão.
Esse número de canal deve ser diferente de qualquer canal atualmente atribuído.
(OPCIONAL) Para verificar os canais:
Não sei por que esse próximo comando é necessário, mas funcionou para mim.
Em seguida, para ouvir as conexões recebidas:
NOTA: o endereço bt MAC em /etc/bluetooth/rfcomm.conf, mas seja o bt MAC do seu telefone. Além disso, o canal neste arquivo deve ser o mesmo que o escolhido para a_channel_ #.
Depois de fazer tudo isso, usei um emulador de terminal bt no meu telefone para verificar tudo.
fonte
Tentei diferentes ferramentas bluetooth e foi difícil encontrar a sequência correta de comandos para conectar e trocar dados com um módulo bluetooth. Tente usar rfcomm e minicom:
Este é o meu /etc/bluetooth/rfcomm.conf
Procure dispositivos bluetooth:
Vincular usando rfcomm
Nota: bind 0 refere-se ao número de dispositivo 0 (rfcomm0) e 1 é o canal.
Em seguida, use minicom com sudo e salve uma configuração na qual você especifica a taxa de transmissão e a porta. Você pode encontrar mais informações aqui .
fonte