Sunday, August 14, 2022

Installation von BluePy auf dem Raspberry Pi

In diesem kurzen HowTo wird gezeigt wir BluePy (an API to allow access to Bluetooth Low Energy devices from Python) auf dem Raspberry Pi installiert wird. Dies wird in einigen Phyton scripten, für BLE (Bluetooth Low Energy) Geräten benötigt.

1.) Einen Raspberry Pi wie hier beschrieben installieren

2.) Anmelden mit dem Login pi

3.) benötigte Phyton Software wie folgt installieren

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

4.) BluePy mittels PIP direkt via the Phyton Package Index installieren:

sudo pip install bluepy

Dies kann einen Augenblick benötigen, doch sobald fertig können die Dateien hier gefunden werden:

Working dir is /tmp/pip-build-b_rUBd/bluepy
Installing blescan script to /usr/local/bin
Installing sensortag script to /usr/local/bin

Die Hauptdateien werden hierbei nach /usr/local/lib/pythonVERSION/dist-packages/ Installiert. In dem Fall dieses Beispiels (default Debian Jessie) ist dies das Verzeichnis: /usr/local/lib/python2.7/dist-packages/bluepy

5.) Um BluePy nun zu kontrollieren, benötigen wir nun eine MAC Adresse von einem BLE Gerät. Wenn wir diese kennen (manchmal steht sie auf der Packung vom BLE Gerät) können wir diese verwenden, wenn icht können wir lescan verwenden um die BLE Geräte im Umkreis anzuzeigen:

sudo hcitool lescan

Es wird etwas wie folgt angezeigt:

[...]
7C:2F:80:AD:08:66 Gigaset G-tag
E0:00:69:19:08:66 SPEED_CELL
[...]

Die Liste oben zeigt aktuell meinen Gigaset G-Tag und meinen Adidas Speed Cell. Der String davor stellt die MAC Adresse da. Wenn wir mit dem Scan zufrieden sind und die MAC Adresse haben, können wir den Scan mit strg + c abbrechen. Tun wir das nicht wird der Scan fortgesetzt (lescan ist kein Bestandteil von BluePy).

6.) Wenn wir die MAC haben können wir in das Verzeichnis “/usr/local/lib/python2.7/dist-packages/bluepy” wechseln:

python btle.py 7C:2F:80:AD:08:6

wenn dies funktioniert werden uns einige Infos über das Gerät ausgegeben. Unten findet sich ein gekürztes Beispiel (Es kann ein paar Minuten dauern bis ein solches Ergebnis angezeigt wird):

[...]
Service <uuid=Battery Service handleStart=25 handleEnd=28> :
Characteristic <Battery Level>, hnd=0x1a, supports NOTIFY READ
-> 'd'
Service <uuid=Device Information handleStart=16 handleEnd=24> :
Characteristic <Manufacturer Name String>, hnd=0x11, supports READ
-> 'Gigaset'
Characteristic <Model Number String>, hnd=0x13, supports READ
-> 'G-tag'
Characteristic <Firmware Revision String>, hnd=0x15, supports READ
-> 'v_3.0.6.0'
Characteristic <Software Revision String>, hnd=0x17, supports READ
-> 'v_3.50.2.07'

Wenn ein Ähnliches Ergebniss ausgegeben wird, ist davon auszugehen das BluePy korrekt funktioniert. Beachten Sie, das die angezeigten Informationen je nach BLE Gerät unterschiedlich ausfallen können.

7.) Für einen anderen test Starte

python

welches folgendes ausgeben sollte:

Python 2.7.9 (default, Mar  8 2015, 00:52:26)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.

Geben wir danach folgenes ein:

from bluepy.btle import UUID, Peripheral

sollte dies ohne Fehlermeldung akzeptiert werden

Beachtet das LE scan als root läuft wie hier erwähnt.

P.S. Vielen Dank an Ian Harvey und andere, die Fehler gemeldet und Codezeilen in ihrer Freizeit hinzugefügt haben und damit zur verbesserung von BluePy beigetragen haben. BluePy hilft enorm um Scripte für BLE Geräte zu entwickeln.

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Stay Connected

23FollowersFollow
- Advertisement -

Latest Articles