Exécuter le Pi en tant que périphérique hôte Bluetooth plutôt qu'en tant que client en python
J'essaie de trouver un exemple de code pour utiliser le pi comme appareil Bluetooth afin que d'autres appareils puissent le rechercher et le coupler. Plus précisément, je veux le faire se comporter comme un capteur de puissance de vélo pour le projet que j'ai en tête.
Je n'arrive pas à trouver les mots clés corrects à rechercher dans Google, mais en regardant autour de ce site, il semble que ce soit possible (j'ai vu que quelqu'un l'utilisait comme imprimante Bluetooth ..)
Juste une direction nécessaire vraiment - peut-être une bibliothèque ou même ce qu'il faut rechercher.
Réponses
Je suppose que vous cherchez à faire partie des profils / services de cyclisme standard tels que définis par le Bluetooth SIG.
Ce sont Bluetooth Low Energy (BLE) et utilisent la spécification GATT.
Sous Linux, la pile Bluetooth est BlueZ qui utilise D-Bus pour exposer son API. Par exemple, l'API GATT est documentée à l'adresse:https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/gatt-api.txt
Votre appareil prendra le rôle de périphérique, ce qui signifie créer un serveur GATT. Il y a un exemple de ceci dans le code source de BlueZ:https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/example-gatt-server
Le périphérique devra également annoncer le service du GATT: https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/example-advertisement
Par défaut, le RPi est à la fois BR / EDR (classique) et LE Bluetooth. Lorsqu'il agit en tant que périphérique BLE, il est bon de configurer le contrôleur uniquement sur Bluetooth Low Energy.Il a été découvert que pour obtenir une connexion fiable aux téléphones Android, cela est nécessaire. Ce changement de configuration est effectué dans le /etc/bluetooth/main.conffichier. Assurez-vous qu'il contient les éléments suivants:
ControllerMode = le