En plus de certaines connexions sans fil telles que 433Mhz, infrarouge et NFC, Bluetooth est probablement le mode de transmission de données le plus commun et le plus populaire entre les smartphones, d’où l’intérêt du transfert de données Bluetooth du Raspberry Pi. Pendant ce temps, à peu près tous les appareils prennent en charge le Bluetooth et peuvent non seulement être jumelés avec lui, mais bien sûr, vous pouvez également transférer des données, ce qui est intéressant pour des projets tels qu’un PC de voiture.
Ce tutoriel vous montrera comment échanger des fichiers entre le Raspberry Pi et un téléphone mobile/smartphone compatible Bluetooth.
Pièces de matériel requises
Dans ce tutoriel, j’ai utilisé les accessoires suivants :
- Modèle de Raspberry Pi (Raspbian OS)
- si nécessaire : Adaptateur Bluetooth USB
- Téléphone mobile compatible avec Bluetooth (Android, iOS, etc.)
L’adaptateur Bluetooth peut avoir un impact significatif sur le rayon d’action. Les appareils bon marché ne reconnaissent souvent pas la connexion après quelques mètres ou obstacles, alors que les clés électroniques de meilleure qualité fonctionnent jusqu’à une distance de 30 mètres (à l’extérieur).
Configuration du logiciel
Tout d’abord, certains programmes doivent être installés :
sudo apt-get install bluez-utils libopenobex1 obexftp obexpushd --yes
Après avoir connecté le dongle USB Bluetooth, nous vérifions s’il a été reconnu correctement :
lsusb | grep Bluetooth
Si un appareil a été détecté, il apparaîtra comme suit :
Nous vérifions ensuite si le service Bluetooth a déjà été lancé (il est automatiquement chargé à chaque redémarrage).
sudo service bluetooth status
sudo service bluetooth restart
Pour que le dispositif soit connecté, il (le téléphone intelligent) doit être recherché. Il lance un balayage, qui devrait trouver tous les appareils se trouvant à proximité immédiate.
hcitool scan
Le téléphone portable devrait être trouvé directement. Si ce n’est pas le cas, attendez quelques secondes car le dernier résultat est mis en cache. S’il est détecté, il apparaîtra comme suit :
pi@raspberrypi ~ $ hcitool scan Scanning ... C4:42:02:41:B2:06 SM-G901F
Cette adresse de l’appareil est importante et sera toujours nécessaire. Dans l’étape suivante, elle doit être modifiée en fonction de l’adresse de votre appareil.
Afin de connecter le Pi et votre téléphone mobile, cette adresse doit être spécifiée (ajustez-la !) :
sudo bluez-simple-agent hci0 C4:42:02:41:B2:06 yes
Ensuite, il vous sera demandé un code que vous devrez également saisir sur le téléphone mobile (par exemple 1234).
Après cela, les appareils devraient être connectés.
Envoyer des fichiers avec le module Bluetooth du Raspberry Pi
Les fichiers peuvent être envoyés sur différents canaux. Pour savoir quel canal OBEX votre smartphone utilise, vous pouvez utiliser la commande suivante :
browse C4:42:02:41:B2:06 | egrep "Service Name:|Channel:"
Vous devez à présent voir quel canal se trouve sous « OBEX Object Push ». Pour moi, c’est le canal 12.
Pour transférer un fichier (ici ~/TEST.txt
) vous devez spécifier la commande suivante (n’oubliez pas de la modifier) :
obexftp --nopath --noconn --uuid none --bluetooth C4:42:02:41:B2:06 --channel 12 -p ~/TEST.txt
Une requête s’affichera ensuite sur le smartphone, qu’il faudra confirmer.
Vous trouverez d’autres exemples d’obexftp ici.
Recevoir des fichiers à l’aide du Bluetooth de Raspberry Pi
Pour recevoir des fichiers, nous démarrons un serveur FTP sur le Raspberry Pi, qui attend les fichiers. Avec screen, le serveur peut également être exécuté en arrière-plan.
sudo obexpushd -B -n
Vous pouvez maintenant sélectionner le fichier à envoyer sur le smartphone et l’envoyer au Pi connecté. Bien sûr, en fonction de la taille, cela peut prendre un peu de temps. Le fichier est créé dans le répertoire à partir duquel le serveur a été lancé.
Enfin, il faut dire que les appareils connectés restent mémorisés et qu’aucune reconnexion n’est nécessaire, tant que les deux appareils (module Bluetooth du Raspberry Pi et un appareil terminal tel qu’un smartphone) sont à portée l’un de l’autre.
Un commentaire
aucune version du paquet buez-utils n’est disponible, mais il existe dans la base de données ….
cependant les paquest suivants le remplacent ;
bluez:arm64 bluez
j’ai un rsp0w 32 bits