Agradecemos tu apoyo para difundir nuestros artículos en referencia a las ciencias informáticas.
Solución:
1) Uso 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 crea uno y, por lo general, no tendrá tiempo de ingresarlo en los torpes menús de su herramienta de medición.
2) No estoy completamente seguro de que esto sea necesario, pero en el menú de interfaz gráfica de usuario de bluetooth, empareje el dispositivo.
3) en /etc/bluetooth/rfcomm.conf
rfcomm0
bind no;
device 00:07:80:44:4F:37;
channel 1;
comment "Serial Port";
El “bind no” es importante, de lo contrario, intentará vincularse automáticamente, lo que presenta todo tipo de problemas para acceder realmente al dispositivo (ya que es bastante exigente con respecto a cuándo está asociado)
4) sudo rfcomm connect 0
Si tiene errores, reinicie el servicio de bluetooth.
5) screen /dev/rfcomm0
Para los comandos en serie reales transmitidos de esta manera, comuníquese con su proveedor y pídale.
Aquí está mi forma 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 de 9600 baudios en el dispositivo HC-05.
Primer paso: vincular el dispositivo y proporcionar el PIN
Intenté configurar el emparejamiento desde la GUI, pero no funcionaba. 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 :
sudo bluetoothctl
Asegúrese de que el dispositivo bluetooth esté iniciado:
# power on
Ahora iniciamos el agente que “recordará el pin” para rfcomm
:
# agent on
Ahora habilitamos el modo de escaneo para encontrar nuestro dispositivo y poder emparejarlo:
# scan on
Después de unos segundos, debería aparecer la MAC de su dispositivo. Lo denotaremos como después. Luego, solo necesita emparejar el dispositivo de esta manera:
# pair
Se le pedirá que escriba un PIN, por defecto es 1234
en mi dispositivo HC-05. Puede tener en cuenta que es posible que su dispositivo se conecte y luego se desconecte con un mensaje como ese:
[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
pero no es un problema. No necesita conectarse, por lo que ahora puede salir bluetoothctl
escribiendo Ctrl + D
.
Proporcione un archivo utilizable /dev/rfcomm0
En primer lugar, asegúrese de no ejecutar ningún comando rfcomm antes. De hecho, incluso si cierras con Ctrl+C
el programa, aún se ejecuta en segundo plano.
sudo killall rfcomm
Ahora, puedes correr
sudo rfcomm connect /dev/rfcomm0 20:16:10:24:29:77 1 &
Tenga en cuenta que si intenta escribir en la entrada de rfcom, no pasó nada. Necesitas usar otro programa.
Tercer y último paso: escribir en el /dev/rfcomm0
Hay varias formas de escribir en el archivo, pero tenga en cuenta que todas las formas de proceder implican root. Aquí describo varios programas que pueden hacer eso (para que puedas elegir dependiendo de tu necesidad o de lo que esté instalado en tu sistema, por ejemplo). Si olvida ejecutar el programa como root, es posible que tenga un error:
stty: /dev/rfcomm0: Device or resource busy
Primera opción: conectarse usando screen
La pantalla es una herramienta muy poderosa. Puedes instalarlo (siempre es útil) usando:
sudo apt-get install screen
y luego corre
sudo screen /dev/rfcomm0
Si olvida ejecutarlo como root, obtendrá un error como el que recibió Aleksander:
[screen is terminating]
Para salir, escriba “(CTRL + A) + :quit”
Segunda opción: conectarse usando minicom
Instalarlo
sudo apt-get install minicom
y luego corre
sudo minicom -D /dev/rfcomm0
Si olvida ejecutarlo como root, tendrá un error como
minicom: cannot open /dev/rfcomm0: Device or resource busy
Para salir, escriba “Ctrl + AX”.
Tercera opción: minitérmino de secuencia de comandos de python
Descargue este script y ejecute:
chmod +x miniterm.py
sudo ./miniterm.py /dev/rfcomm0
Escribir directamente en el archivo
En primer lugar, ejecute el siguiente comando (9600 es la velocidad en baudios):
sudo stty -F /dev/rfcomm0 cs8 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts
Ahora puedes escribir en este archivo como en un archivo clásico:
sudo su -c "echo 'message' > /dev/rfcomm0"
y en teoría leer de él usando
sudo tail -f /dev/rfcomm0
Pero no sé leer no funciona, si alguno de ustedes tiene una idea…
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:
sudo miniterm.py /dev/rfcomm0
Comentarios y valoraciones del artículo
Nos encantaría que puedieras mostrar este enunciado si si solucionó tu problema.