Como complemento à resposta de Brian. A tela não funcionou para mim, exibindo imediatamente [screen is terminating]
Então, eu encontrei o script python miniterm . O uso é semelhante:
sudo miniterm.py /dev/rfcomm0
Estou tentando conectar-me a um Totalstation que não oferece drivers bluetooth. Como estou fazendo isso por razões puramente diagnósticas, gostaria de ver a saída bruta da conexão serial estabelecida.
O que devo fazer para canalizar a saída all de uma conexão bluetooth para um terminal?
Como complemento à resposta de Brian. A tela não funcionou para mim, exibindo imediatamente [screen is terminating]
Então, eu encontrei o script python miniterm . O uso é semelhante:
sudo miniterm.py /dev/rfcomm0
1) Use hcitool scan
para encontrar o endereço Mac do dispositivo.
O dispositivo deve ser configurado para o modo escravo com um pino conhecido. Se você não usa um pino conhecido, o ubuntu faz um backup e você geralmente não terá tempo de inseri-lo nos menus desajeitados de sua ferramenta de medição.
2) Eu não tenho certeza se isso é necessário, mas no menu bluetooth gui, emparelhe o dispositivo.
3) em /etc/bluetooth/rfcomm.conf
rfcomm0 {
bind no;
device 00:07:80:44:4F:37;
channel 1;
comment "Serial Port";
}
O "bind no" é importante, caso contrário, ele tentará se ligar automaticamente, o que apresenta todos os tipos de problemas para realmente acessar o dispositivo (como é bastante exigente quando o seu associado)
4) sudo rfcomm connect 0
Se você tiver erros, reinicie o serviço Bluetooth.
5) screen /dev/rfcomm0
Para comandos seriais reais transmitidos dessa maneira, entre em contato com seu fornecedor e implore.
Aqui está o meu caminho para conectar um dispositivo Bluetooth HC-05 conectado ao meu arduino. Não é necessário escrever um arquivo como na resposta de Brian, mas a ideia é semelhante. Eu testei com uma taxa de transmissão 9600 no dispositivo HC-05.
Eu tentei configurar a partir do GUI o emparelhamento, mas não estava funcionando. Aqui está o caminho de linha de comando para prosseguir que funcionou para mim. Primeiro, vamos emparelhar o dispositivo a partir da linha de comando. Executar:
sudo bluetoothctl
Certifique-se de que o dispositivo Bluetooth foi iniciado:
# power on
Agora iniciamos o agente que "lembrará o pin" para rfcomm
:
# agent on
Agora, ativamos o modo de verificação para encontrar nosso dispositivo e poder emparelhá-lo:
# scan on
Após alguns segundos, o MAC do seu dispositivo deve aparecer. Vamos denunciá-lo como depois. Então, você só precisa emparelhar o dispositivo assim:
# pair <MAC>
Você será solicitado a digitar um PIN, por padrão é 1234
no meu dispositivo HC-05. Você pode notar que é possível conectar o dispositivo e desconectar com uma mensagem como essa:
[CHG] Device 20:16:10:24:29:77 UUIDs: 00001101-0000-1000-8000-00805f9b34fb
[CHG] Device 20:16:10:24:29:77 ServicesResolved: yes
[CHG] Device 20:16:10:24:29:77 Paired: yes
Pairing successful
[CHG] Device 20:16:10:24:29:77 ServicesResolved: no
[CHG] Device 20:16:10:24:29:77 Connected: no
mas não é um problema. Você não precisa se conectar, então agora você pode sair do bluetoothctl
digitando Ctrl + D
.
/def/rfcomm0
Primeiramente, certifique-se de não ter executado nenhum comando rfcomm antes. De fato, mesmo se você fechar com Ctrl+C
o programa, ele ainda será executado em segundo plano.
sudo killall rfcomm
Agora, você pode executar
sudo rfcomm connect /dev/rfcomm0 20:16:10:24:29:77 1 &
Note que se você tentar escrever na entrada do rfcom, nada aconteceu. Você precisa usar outro programa.
/dev/rfcomm0
Existem várias maneiras de escrever no arquivo, mas observe que todas as maneiras de prosseguir envolvem o root. Descrevo aqui vários programas que podem fazer isso (para que você possa escolher dependendo de sua necessidade ou do que está instalado em seu sistema, por exemplo). Se você esquecer de executar o programa como root, você pode ter um erro:
stty: /dev/rfcomm0: Device or resource busy
screen
A tela é uma ferramenta muito poderosa. Você pode instalá-lo (é sempre mais útil) usando:
sudo apt-get install screen
e, em seguida, execute
sudo screen /dev/rfcomm0
Se você esquecer de executá-lo como root, você receberá um erro como o Aleksander:
[screen is terminating]
Para sair, digite "Ctrl A +: exit"
minicom
Instale-o
sudo apt-get install minicom
e, em seguida, execute
sudo minicom -D /dev/rfcomm0
Se você esquecer de executá-lo como root, você terá um erro como
minicom: cannot open /dev/rfcomm0: Device or resource busy
Para sair, digite "Ctrl + A X".
Faça o download do script e execute:
chmod +x miniterm.py
sudo ./miniterm.py /dev/rfcomm0
Primeiro, execute o seguinte comando (9600 é a taxa de transmissão):
sudo stty -F /dev/rfcomm0 cs8 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts
Agora você pode escrever neste arquivo como em um arquivo clássico:
sudo su -c "echo 'message' > /dev/rfcomm0"
e, em teoria, lê-lo usando
sudo tail -f /dev/rfcomm0
Mas eu não sei ler não funciona, se algum de vocês tem uma idéia ...
Tags bluetooth