viernes, 6 de noviembre de 2009

Python & Bluetooth - gDiscover.py


Vamos a ver un ejmplo muy sencillo de como interactuar con dispositivos bluetooth desde python en ubuntu 9.10. Es un ejemplo muy simple de un programa que se encarga de descubrir dispositivos bluetooth que se encuentren dentro del alcance del ordenador donde ejecutemos gDiscover. La aplicación podrá devolvernos la dirección MAC de los dispositivos bluetooth que encuentre dentro de su radio de acción, el nombre a mostrar de dichos dispositivos o ambas cosas a la vez según lo desee el usuario. Aunque quizás pueda parecer algo difícil, no lo es. Sabiendo lo mínimo sobre python podremos hacer una aplicación como esta y comprenderla. Tampoco resultara demasiado complicado ampliarla añadiendole más funciones.

Para empezar necesitaremos una distribución Ubuntu 9.10 aunque la aplicación funciona desde la versión 7.04 en adelante (no he probado en las anteriores). También necesitaremos tener instalado en el sistema el intérprete de python 2.6.4 y sus librerias estándar que, en caso de ubuntu, viene instalado por defecto. De todos modos podéis descargarlo desde su página web   --->   Descargar

También vamos a necesitar instalar el paquete python-bluez. Podemos encontrarlo en los repositorios de Ubuntu como podeis ver en la imagen:

        ScreenShot01.jpg


O también podemos descargarlo de la página web del proyecto PyBluez, alojado en GoogleCode  --->   Descargar

Obviamente será indispensable disponer de un dispositivo bluetooth ya sea integrado en el pc o portátil, o uno usb.

Una vez aclarado esto ya estamos listos para empezar a programar. Con respecto a la sintaxis general del programa en python hay muy poco que comentar. Es sencillo y fácil de leer y comprender. No tiene nada de extravagante. En relación al bluetooth basta con importar la libreria instalada con "import bluetooth"

Para ver las funciones disponibles podemos ejecutar el interprete python y teclear lo siguiente

$ python
>>> import bluetooth
>>> list=dir(bluetooth)

Esto nos devolvera una lista con todos los metodos que podemos usar. En nuestro caso por ejemplo vamos a usar los dos siguientes:

>>> list[181]
'discover_devices'

>>> list[186]
'lookup_name'

La función discover_devices() se encargará de buscar dispositivos bluetooth activos dentro del alcance del ordenador donde ejecutamos gDiscover y nos devolverá una lista con las direcciones MAC de todos los dispositivos encontrados. Por otra parte lookup_name(MAC) recibe como argumento una cadena con una dirección MAC y devuelve una lista con el nombre asociado a esa dirección. Fácil ¿Verdad?


Ahí os dejo la aplicación terminada para que le echéis un vistazo. No dudéis en mandarnos vuestras propias versiones o extensiones del programa. Espero que os sirva de ayuda. Para cualquier duda, consulta o sugerencia poneros en contacto con nosotros.


germaNRG'09


2 comentarios:

  1. muchas gracias por la referencia..me sirvio mucho..
    saludos

    ResponderEliminar
  2. Hola, muchas gracias por tu trabajo, me ha sido de gran ayuda, me podrías pasar el enlace a la libreria bluetooth, es que quiero implementar el programa para que me envíe a un dispositivo detectado y no lo encuentro por ningún lado

    ResponderEliminar