Comunicación Bluetooth con pybluez en Python

Comunicación Bluetooth con pybluez en Python

En este tutorial aprenderemos a realizar comunicación Bluetooth con Python utilizando la biblioteca pybluez.

Requisitos

  • Python 3.6 o superior
  • La biblioteca pybluez

Instalación

Para instalar pybluez, ejecutamos el siguiente comando en la terminal:

pip install pybluez

Explorando los dispositivos Bluetooth

Para explorar los dispositivos Bluetooth disponibles, podemos utilizar el siguiente código:

Python
import bluetooth

devices = bluetooth.discover_devices()

for device in devices:
    print(device)

Este código imprimirá la siguiente información para cada dispositivo Bluetooth encontrado:

['MAC address', 'Name', 'Class', 'UUIDs', 'Paired', 'Trusted']

Conectando a un dispositivo Bluetooth

Para conectarnos a un dispositivo Bluetooth, podemos utilizar el siguiente código:

Python
import bluetooth

addr = "00:11:22:33:44:55"
name = "Mi dispositivo Bluetooth"

sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
sock.connect((addr, 1))

print("Conectado a {} ({})".format(name, addr))

Este código conectará nuestro dispositivo al dispositivo Bluetooth con la dirección MAC 00:11:22:33:44:55 y el nombre Mi dispositivo Bluetooth.

Enviando y recibiendo datos

Para enviar datos a un dispositivo Bluetooth, podemos utilizar el siguiente código:

Python
import bluetooth

addr = "00:11:22:33:44:55"
name = "Mi dispositivo Bluetooth"

sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
sock.connect((addr, 1))

data = "Hola mundo!"
sock.send(data)

print("Datos enviados: {}".format(data))

Este código enviará el mensaje «Hola mundo!» al dispositivo Bluetooth conectado.

Para recibir datos de un dispositivo Bluetooth, podemos utilizar el siguiente código:

Python
import bluetooth

addr = "00:11:22:33:44:55"
name = "Mi dispositivo Bluetooth"

sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
sock.connect((addr, 1))

data = sock.recv(1024)

print("Datos recibidos: {}".format(data))

Este código recibirá hasta 1024 bytes de datos del dispositivo Bluetooth conectado.

Ejemplo completo

El siguiente código muestra un ejemplo completo de comunicación Bluetooth con pybluez:

Python
import bluetooth

# Exploramos los dispositivos Bluetooth disponibles
devices = bluetooth.discover_devices()

# Encontramos el dispositivo Bluetooth que queremos conectar
for device in devices:
    if device[1] == "Mi dispositivo Bluetooth":
        addr = device[0]
        break

# Nos conectamos al dispositivo Bluetooth
sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
sock.connect((addr, 1))

# Enviamos un mensaje al dispositivo Bluetooth
data = "Hola mundo!"
sock.send(data)

# Recibimos un mensaje del dispositivo Bluetooth
data = sock.recv(1024)

# Imprimimos los datos recibidos
print("Datos recibidos: {}".format(data))

# Cerramos la conexión
sock.close()

Este código explorará los dispositivos Bluetooth disponibles y se conectará al dispositivo con el nombre «Mi dispositivo Bluetooth». Luego, enviará el mensaje «Hola mundo!» al dispositivo Bluetooth y recibirá un mensaje del dispositivo Bluetooth. Finalmente, cerrará la conexión.

Conclusión

En este tutorial hemos aprendido a realizar comunicación Bluetooth con Python utilizando la biblioteca pybluez.