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:
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:
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:
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:
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:
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.