Bluetooth Low Energy con Raspberry Pi 3 e Python

Bluetooth Low Energy con Raspberry Pi 3 e Python
Raspberry Pi 3 nel suo case originale

Nel precedente articolo abbiamo visto come installare il server di desktop remoto, utile nel caso in cui non avessomo possibilità di connettere tastiera, mouse e monitor al nostro Raspberry Pi. Abbiamo visto, inoltre, che il Raspberry Pi 3 è dotato di connettività Bluetooth Low Energy, oltre che di WiFi ed Ethernet. In questo articolo andremo ad installare il modulo BlueZ, attivare le funzioni sperimentali ed infine utilizzare la libreria Python Bluepy per connetterci al nostro dispositivo Bluetooth Low Energy.
Andiamo quindi ad utilizzare il Bluetooth Low Energy con Raspberry Pi 3 e Python.

Bluetooth Low Energy con Raspberry Pi 3 e Python

Per un corretto funzionamento della libreria Python Bluepy è necessario installare il modulo BlueZ. Dovremo, inoltre, abilitare le funzioni sperimentali per poter usufruire del Bluetooth Low Energy con Raspberry Pi 3 e Python.

Installazione di BlueZ

In questo paragrafo andremo a vedere come installare il modulo BlueZ, necessario per utlizzare il chip Bluetooth integrato nel Raspberry Pi 3. Il sistema operativo Raspbian Stretch non include questa funzionalità, dobbiamo quindi compilare il modulo e scaricare la libreria Python.

Andiamo sul sito di BlueZ e nella sezione User Space BlueZ Package troveremo il pacchetto da scaricare.  Al momento la versione più recente è la 5.48.
Scarichiamola con wget:

 wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.48.tar.xz

Una volta terminato il download dobbiamo estrarre i file contenuti nell’archivio. Possiamo procedere con questo comando:

 

 

tar xvf bluez-5.48.tar.xz

I comandi appena descritti andranno adattati in base alla versione di BlueZ che andrete a scaricare.

Entriamo nella cartella appena creata:

cd bluez-5.48

Ora che abbiamo preparato i sorgenti andiamo ad installare le dipendenze necessarie alla compilazione di BlueZ. Prestiamo attenzione ad eventuali errori.

 

 

sudo apt-get update
sudo apt-get install -y libusb-dev libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev

Una volta terminata l’installazione delle dipendenze possiamo compilare BlueZ.
Eseguiamo, in ordine, i seguenti comandi:

./confgure

Se abbiamo degli errori durante l’esecuzione di ./configure, molto probabilmente manca una dipendenza. Analizzando il messaggio di errore è possible risalire alla libreria mancante. Possiamo quindi installare eventuali librerie mancanti dal repository di Raspbian, utlizzando il solito comando sudo apt-get install libXXX-dev, dove XXX è il nome della libreria mancante.

Una volta terminata correttamente l’esecuzione di ./configure, possiamo passare alla compilazione:

make

Il processo sarà discretamente lungo, circa 20 minuti su Raspberry Pi 3. Utilizzando Raspberry Pi Zero ad esempio, il tempo di compilazione si allungerà a causa dell’hardware meno prestante.

Una volta terminata con successo la compilazione, possiamo procedere all’installazione con il seguente comando:

sudo make install

Ora che abbiamo installato BlueZ passiamo alla configurazione del servizio per poter finalmente utilizzare il Bluetooth Low Energy con Raspberry Pi 3 e Python.

Setup del servizio BlueZ

Dopo aver installato BlueZ da sorgenti, per poter utilizzare il servizio bluetoothd, dobbiamo ancora configurare alcune cose. Dopo aver riavviato il sistema operativo, con il comando sudo reboot, dobbiamo verificare che il servizio sia correttamente avviato:

systemctl status bluetooth

Possiamo interromperlo con il comando:

sudo systemctl stop bluetooth

Ed avviarlo con:

sudo systemctl start bluetooth

Per avviare automaticamente il servizio all’avvio del sistema operativo, possiamo lanciare questo comando:

sudo systemctl enable bluetooth

Ovviamente è possibile disabilitare l’avvio automatico tramite il seguente comando:

sudo systemctl disable bluetooth

Abilitiamo la funzionalità Bluetooth Low Energy

Per abiltare le funzionalità Bluetooth Low Energy è necessario modificare il file di configurazione, eseguendo questo comando:

sudo nano /lib/systemd/system/bluetooth.service

Dobbiamo aggiungere la stringa –experimental alla fine della riga ExecStart.
Salviamo e chiudiamo l’editor nano con le combinazioni di tasti CTRL+O, INVIO, CTRL+X.

 

Una volta salvato, dobbiamo riavviare il demone:

sudo systemctl daemon-reload

Se avevamo lasciato il servizio in esecuzione dobbiamo riavviarlo con il comando:

sudo systemctl restart bluetooth

altrimenti lo dobbiamo avviare con il comando start.

Ora possiamo verificare che sia andato tutto per il meglio:

 

 

 

 

Installazione Libreria Python Bluepy

Per installare la libreria Python Bluepy utilizzeremo lo strumento PIP, che andremo ad installare.

sudo apt-get install python-pip
sudo apt-get install libglib2.0-dev
sudo pip install bluepy

Bene! Siamo ora in grado di utilizzare le funzionalità Bluetooth Low Energy con Raspberry Pi 3 e Python! In futuro vedremo esempi di connessione con altri dispositivi Bluetooth Low Energy, tra cui The Tactigon, dispositivo programmabile con Arduino IDE e progettato in Italia.

Spread the love

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.