Estoy tratando de conectarme a una estación total que no ofrece controladores bluetooth. Como estoy haciendo esto por razones puramente diagnósticas, me gustaría ver la salida sin formato de la conexión en serie establecida.
¿Qué debo hacer para canalizar toda la salida de una conexión bluetooth a un terminal?
Respuestas:
Como una adición a la respuesta de Brian. La pantalla no funcionó para mí, mostrando inmediatamente
[screen is terminating]
Así que encontré este script de Python miniterm . El uso es similar:
fuente
1) Use
hcitool scan
para encontrar la dirección Mac del dispositivo.El dispositivo debe configurarse en modo esclavo con un pin conocido. Si no usa un pin conocido, ubuntu lo inventa y generalmente no tendrá tiempo para ingresarlo en los menús torpes de su herramienta de medición.
2) No estoy completamente seguro de que esto sea necesario, pero en el menú de la interfaz gráfica de Bluetooth, empareje el dispositivo.
3) en /etc/bluetooth/rfcomm.conf
El "enlace no" es importante, de lo contrario, intentará unirse automáticamente, lo que presenta todo tipo de problemas para acceder realmente al dispositivo (ya que es bastante exigente cuando está asociado)
4)
sudo rfcomm connect 0
Si tiene errores, reinicie el servicio bluetooth.
5)
screen /dev/rfcomm0
Para los comandos seriales reales transmitidos de esta manera, comuníquese con su proveedor y rogue.
fuente
Aquí está mi manera de proceder para conectarme a un dispositivo Bluetooth HC-05 conectado a mi arduino. No necesita escribir un archivo como en la respuesta de Brian, pero la idea es similar. Lo probé con una configuración de velocidad en baudios de 9600 en el dispositivo HC-05.
Primer paso: emparejar el dispositivo y proporcionar el PIN
Traté de configurar desde la GUI el emparejamiento, pero no estaba funcionando. Aquí está la forma de proceder de la línea de comando que funcionó para mí. Primero, emparejemos el dispositivo desde la línea de comandos. Correr :
Asegúrese de que se inicie el dispositivo bluetooth:
Ahora iniciamos el agente que "recordará el pin" para
rfcomm
:Ahora habilitamos el modo de escaneo para encontrar nuestro dispositivo y poder emparejarlo:
Después de unos segundos, debería aparecer el MAC de su dispositivo. Lo denotaremos como después. Luego, solo necesita emparejar el dispositivo de esta manera:
Se le pedirá que escriba un PIN, de manera predeterminada está
1234
en mi dispositivo HC-05. Puede observar que es posible que su dispositivo se conecte y luego se desconecte con un mensaje como ese:Pero no es un problema. No necesita conectarse, por lo que ahora puede salir
bluetoothctl
escribiendoCtrl + D
.Proporcionar un archivo utilizable
/dev/rfcomm0
En primer lugar, asegúrese de no haber ejecutado ningún comando rfcomm antes. De hecho, incluso si cierra con
Ctrl+C
el programa, todavía se ejecuta en segundo plano.Ahora puedes correr
Tenga en cuenta que si intenta escribir en la entrada de rfcom, no pasó nada. Necesitas usar otro programa.
Tercer y último paso: escriba en el
/dev/rfcomm0
Hay varias formas de escribir en el archivo, pero tenga en cuenta que todas las formas de proceder implican la raíz. Describo aquí varios programas que pueden hacer eso (para que pueda elegir dependiendo de su necesidad o de lo que esté instalado en su sistema, por ejemplo). Si olvida ejecutar el programa como root, puede tener un error:
Primera opción: conectarse usando
screen
La pantalla es una herramienta muy poderosa. Puede instalarlo (siempre es útil) usando:
y luego correr
Si olvida ejecutarlo como root, recibirá un error como Aleksander obtuvo:
Para salir, escriba "(CTRL + A) +: salir"
Segunda opción: conectarse usando
minicom
Instalarlo
y luego correr
Si olvida ejecutarlo como root, tendrá un error como
Para salir, escriba "Ctrl + A X".
Tercera opción: miniterm de script de Python
Descargue este script y ejecute:
Escribir directamente en el archivo
Primero ejecute el siguiente comando (9600 es la velocidad en baudios):
Ahora puede escribir en este archivo como en un archivo clásico:
y, en teoría, lee de ella usando
Pero no sé leer no funciona, si alguno de ustedes tiene una idea ...
fuente
/def/rfcomm0
debería ser/dev/rfcomm0