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!!


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!
Buenas tardes, gracias por el tiempo dedicado a tu blog y compartirlo, muy didáctico.
En realidad a estas alturas de buscar y buscar por la web me estoy dando cuenta que quizás no haya manera o no exista la forma de conectar sin cable usb un Arduino con Raspberry Pi y leer la información de sus sensores con un script Python, no se si tú has visto algún tema al respecto o quizás sepas de ello, te agradecería me ayudes con el tema.
Saludos.
Hola Gustavo.
En algún sitio tengo pruebas de envío de datos recogidos por sensores (PIR, GPS, …) por Bluetooth a Raspberry/PC haciendo la recepción y tratamiento de valores con Python.
A fin de cuentas, es lectura/escritura por puerto Serie.
Lo busco y lo subo.
Gracias por el comentario,
un saludo.
es posible enviar una serie de datos, como mencionas, variables de monitoreo a través del puerto serie? como con un HC-06 desde el arduino y crear una base de datos en Raspberry?
Claro, yo he programado cosas así. Te recomiendo que primero te olvides del bluetooth y consigas una aplicación que te lea los datos que mandas del Arduino a la raspberry y cree la base de datos. Cuando te funcione solo tienes que añadir system(«sudo rfcomm connect hci 99:99:99:99:99:99») a tu aplicación y cambiar el puerto serie AMA0 o S0 por el rfcomm que acabas de crear.
Un saludo
Necesito configurar bluethoo para tener internet, acá ya hacen uso de Internet para instalar. Ese es mi problema.
Hola es posible enviar un archivo de una raspberry a un celular Via comandos?