Programmation Bluetooth avec Python 3 – Bien choisir son serveur d impression
écrit
Cet article présente les techniques de base pour communiquer via Bluetooth avec Python 3.3 et versions ultérieures (à l'aide de sockets Python). Quelques exemples simples de communication via
Bluetooth avec prises sera affiché. Des exemples PyBluez seront également présentés pour
Comparaison.
Sommaire
Les deux options
À l’heure actuelle, le moyen le plus documenté de communiquer avec Python via Bluetooth est d’utiliser PyBluez. Auparavant, PyBluez ne supportait que Python 2. En janvier 2014, ils ont publié une version Python 3.
Les sockets Python natifs de Python 3.3 prennent en charge la communication Bluetooth. Malheureusement, il existe très peu de documentation disponible décrivant Comment utiliser les sockets Python pour communiquer via Bluetooth. Bien que l’utilisation de Bluetooth avec ces sockets puisse être facile pour quelqu'un qui sait déjà utiliser les sockets Python, le manque de documentation laisse de nombreuses personnes ignorantes de l’existence même de cette méthode d’utilisation de Bluetooth. Depuis que PyBluez a été porté sur Python 3, l’utilisation des sockets Python natifs a une utilisation limitée.
Compétence requise: trouver l'adresse MAC d'un adaptateur Bluetooth
Pour exécuter les exemples, l'adresse MAC de l'adaptateur Bluetooth utilisé par le serveur doit être connue. L'application client utilise cette adresse pour se connecter au serveur. Sous Linux, vous pouvez obtenir une liste de tous les périphériques Bluetooth disponibles et de leurs adresses MAC à l’aide de la commande hciconfig
, ainsi:
Messagerie du client
Cette application connecte deux appareils via Bluetooth et permet à l'un d'envoyer des messages à l'autre. Le périphérique d'envoi fonctionne socketClient.py
et le périphérique de réception fonctionne socketServer.py
. Ces scripts sont présentés ci-dessous, en utilisant d’abord les sockets Python, puis PyBluez:
Sockets python
1 2 3 4 5 6 sept 8 9 dix 11 12 13 14 15 16 17 |
|
1 2 3 4 5 6 sept 8 9 dix 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
En passant, ce code est presque identique au code requis pour créer une application client-serveur sur Internet. Tout ce qui doit être changé, ce sont les deux lignes:
1 2 3 4 5 6 sept 8 9 |
|
PyBluez
Pour comparer, voici l’application fonctionnellement identique écrite à l’aide de la bibliothèque PyBluez.
1 2 3 4 5 6 sept 8 9 dix 11 12 13 14 15 16 17 |
|
1 2 3 4 5 6 sept 8 9 dix 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
Conclusion
PyBluez est le moyen le plus efficace de communiquer via Bluetooth en utilisant Python. Les sockets Python peuvent maintenant être utilisés pour la communication Bluetooth (depuis Python 3.3). Pour une application simple, le code est presque identique. Cependant, pour certaines tâches, telles que la découverte de périphériques et les publications de services Bluetooth, il ne semble pas possible de les exécuter à l'aide de sockets Python. En conséquence, PyBluez a surpassé à bien des égards les sockets Python. Cette question Stackoverflow traite de certaines des limitations des sockets Python pour Bluetooth.
Lectures complémentaires
Il y a peu ou pas d'informations sur la programmation Bluetooth avec les sockets Python. Il y a beaucoup d'informations sur PyBluez. Voici quelques ressources utiles:
- Bluetooth Essentials pour les programmeurs
- Couvre de nombreux langages de programmation et utilise PyBluez avec Python. Idéal pour commencer vite et gagner la compréhension en cours de route.
- Exemples PyBluez
- Exemple de code couvrant diverses tâches Bluetooth.
Commentaires
Laisser un commentaire