Desde el punto de vista del desarrollo de aplicaciones, la conectividad Bluetooth simplifica mucho la tarea del programador.

Anteriormente hemos visto el uso del Bluettoth vinculando Arduino con un movil Android. En esta ocasión vamos a avanzar hacia la integración de Arduino y Raspberry pi con bluetooth.

Si bien vamos a hacer el enfoque de la conexión a un modulo HC-06 de Arduino, sirve para cualquier configuración Bluetooth desde el Terminal.

Instalación bluetooth

En esta ocasión he utilizado una Raspberry pi Zero W con Raspbian aunque funciona con cualquier Linux de la familia Debian, Ubuntu, Lubuntu, ….

Necesitamos bluez, bluetooth y blueman:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install bluez bluetooth blueman

Comprobamos estado del bluetooth

 sudo /etc/init.d/bluetooth status -l

Vemos que está activo.

  • Es posible que de un error indicando «Failed to set privacy…», es común y no afecta al funcionamento por lo que ignóralo.

Si estuviera detenido, inicia el servicio con:

sudo systemctl start bluetooth

Una vez iniciado vamos a configurarlo, para ello utilizaremos bluetoothctl.

bluetoothctl

Seguimos con el Terminal, ejecuta:

sudo bluetoothctl

¡¡Es importante hacerlo con sudo o dará problemas con el default-agent!!

Error al establecer default-agent por falta de permisos.

Una vez dentro de Bluetoothctl, definimos default-agent, buscamos dispositivos cercanos, emparejamos y establecemos como dispositivo de confianza:

[bluetooth]# default-agent
...
[bluetooth]# scan on
...

scan on devolverá la lista de dispositivos encontrados, una vez localizado cogemos la MAC Address y emparejamos con pair:

[bluetooth]# pair 99:99:99:99:99:99

Introducimos el PIN de 4 digitos, debemos conocerlo.

Si queremos guardar la configuración y establecer la relación de confianza entre los dispositivos, utilizamos trust:

[bluetooth]#trust 99:99:99:99:99:99

Con esto ya tenemos emparejado nuestra raspberry y el dispositivo.

Conectar con el dispositivo

Una vez establecido el emparejamiento, podrás conectar los dispositivos siempre que lo necesites.

En el Terminal, ejecuta:

sudo rfcomm connect hci 99:99:99:99:99:99

Verás la siguiente respuesta indicando que se ha conectado correctamente:

Connected /dev/rfcomm0 to 20:13:08:14:25:57 on channel 1
Press CTRL-C for hangup

En el caso de la HC-06, dejará de parpadear y el led pasa a estar fijo.

Esta entrada es un paso previo y necesario para lo que vendrá pronto. Utilización de Arduinos y sensores (PIR, temperatura, intensidad luz, consumo electrico, control de dispositivos, luces, …) sincronizados a unidad central Raspberry Pi por bluetooth para notificar y controlar via Telegram de lo que sucede en casa/oficina…, y programado en Python!

Puede que te resulten interesantes las entradas:

Vincular Android y Arduino por Bluetooth

Uso de bluetooth y relé en Arduino. Encender lampara desde el movil.

Nos vemos pronto, Saludos!