Programando BLE en RPi con Python

Es posible escribir programas para RPi (Raspberry Pi) que utilicen BLE, por ejemplo con Python.

Para ello debemos instalar previamente las librerias Bluez (5.48) y Bluepy

Para instalar Bluepy se puede hacer de forma automática

$ sudo apt-get install python3-pip libglib2.0-dev
$ sudo pip3 install bluepy

o de forma manual

$ sudo apt-get install git build-essential libglib2.0-dev
$ git clone https://github.com/IanHarvey/bluepy.git
$ cd bluepy
$ python setup.py build
$ sudo python setup.py install

Se puede probar la correcta instalación mediante el comando python btle.py XX:XX:XX:XX:XX:XX

Para instalar Bluez

sudo apt-get update 
sudo apt-get install libdbus-1-dev libdbus-glib-1-dev libglib2.0-dev libical-dev libreadline-dev libudev-dev libusb-dev make
mkdir -p work/bluepy
cd work/bluepy
wget https://www.kernel.org/pub/linux/bluetooth/bluez-5.4.tar.xz
xz -d bluez-5.4.tar.xz
tar xvf bluez-5.4.tar
cd bluez-5.4
./configure --disable-systemd
make
sudo make install

Para probar

pi@raspberrypi:~/bluepy_src/bluepy/bluepy $ lsusb
Bus 001 Device 004: ID 145f:01d3 Trust 
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 
SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub