Trouver Bluetooth low energy avec python
Est-il possible pour que ce code soit modifiée pour inclure Bluetooth à Faible Énergie des appareils en tant que bien? https://code.google.com/p/pybluez/source/browse/trunk/examples/advanced/inquiry-with-rssi.py?r=1
Je peut trouver des appareils comme mon téléphone et d'autres périphériques bluetooth 4.0, mais pas n'importe BLE. Si cela ne peut pas être modifié, est-il possible de le hcitool lescan et extraire les données à partir de hci dump dans python? Je peux utiliser les outils pour voir les périphériques, je suis à la recherche d', et il donne un RSSI dans hcidump, qui est ce que mon objectif final est de. Pour obtenir l'adresse MAC et le RSSI de la BLE de l'appareil.
Merci!
- Ce code n'a pas de support pour BLE fonctionnalité... il avait besoin d'une ÉNORME quantité de changements à l'appui de BLE.
- Connaissez-vous d'fonctionnelle BLE de balayage de code là? J'ai cherché un peu, mais n'ont pas trouvé un. Merci!
Vous devez vous connecter pour publier un commentaire.
Comme je l'ai dit dans le commentaire, que la bibliothèque ne fonctionne pas avec BLE.
Voici un exemple de code pour faire une simple BLE scan:
J'ai du morceau tout ça ensemble en regardant le
hcitool
etgatttool
le code source est livré avec Bluez. Le code est complètement dépendant delibbluetooth-dev
de sorte que vous aurez à vous assurer que vous avez installé en premier.Une meilleure façon serait d'utiliser dbus pour faire des appels à
bluetoothd
, mais je n'ai pas eu la chance de la recherche encore. Aussi, l'interface dbus est limité dans ce que vous pouvez faire avec un c? BLE de connexion après vous en faire un.EDIT:
Martin Tramšak a souligné que, dans Python 2 vous avez besoin de modifier la dernière ligne de
print(':'.join("{0:02x}".format(ord(x)) for x in data[12:6:-1]))
hexify
méthode quelque part vers la sortie comme hex au lieu d'utiliser le.format
méthode comme je le faisprint ord(data[-1])
Vous pouvez également essayer de pygattlib. Il peut être utilisé pour détecter les périphériques, et (actuellement) il y a un support de base pour la lecture/écriture des caractères. Pas de RSSI pour l'instant.
Vous pouvez le découvrir à l'aide de l'extrait de code suivant:
DiscoveryService
accepte le nom de l'appareil, et la méthodediscover
accepte un délai d'attente (en secondes) pour l'attente des réponses.devices
est un dictionnaire, avec BL adresse que les clés, et des noms de valeurs.pygattlib est empaqueté pour Debian (ou Ubuntu), et dans la section Téléchargements il y a un .deb.