J'essaie de configurer un port série virtuel via un adaptateur USB-Bluetooth sous Linux et de lui envoyer un message via un appareil Android. Je suis sur le noyau 3.6. Je suis capable de me coupler à l'appareil avec succès en utilisant gnome-bluetooth et je peux également y envoyer des fichiers.
Pour configurer le port série, j'ajoute d'abord un canal avec un profil SP à mon adaptateur:
sdptool add --channel=22 SP
Ensuite, j'appelle «écouter» avec rfcomm:
rfcomm listen /dev/rfcomm0 22
qui bloque
Waiting for connection on channel 22
Apparemment, rfcomm créera / dev / rfcomm0 lors d'une connexion réussie. Une fois que cela se produit, j'aimerais utiliser quelque chose comme cutecom pour envoyer des messages dans les deux sens à l'appareil connecté.
Sur mon appareil Android, j'ouvre un terminal Bluetooth SPP (il y en a plusieurs, j'en ai essayé plusieurs) et j'essaie de me connecter. Ils échouent tous.
Étant donné que je peux coupler avec succès et envoyer des fichiers sans aucun problème, je sais que le couplage et la communication Bluetooth fonctionnent.
Je ne sais pas trop quoi d'autre je peux essayer. J'ai utilisé «sdptool Browse» sur mon appareil local et l'appareil Android pour m'assurer qu'il n'y a pas de conflits de canaux RFCOMM.
Les étapes ci-dessous ont fonctionné pour moi:
Vous devez d'abord coupler les appareils. Le jumelage est relativement facile. Je vais appeler le client (qui commence à parler) et le serveur (qui répond)
Vous devez configurer le serveur avant: Côté serveur (en tant que root):
Côté client (en tant que root):
Maintenant, pour ouvrir un terminal série sur le client:
Commentaires:
Lorsque vous appelez la dernière commande rfcomm connect ... dans le client, un périphérique
/dev/rfcomm0
sera créé et associé au serveur/dev/recomm0
. Cela représente le lien série entre les deuxLa dernière commande du serveur:
rfcomm watch
.... "écoutera" les connexions entrantes. En cas de perte de connexion, la commande redémarre un nouvel état «écouter».la source
--compat
option spéciale , sinon l'ajout d'un SP peut échouer. Voir ici . Donc, ajustez / modifiez vos scripts de démarrage de démarrage systemd / initd pour qu'ils--compat
soient là.J'ai résolu cela avec une légère variation des commandes de Pris. Donnez-leur une chance si quelqu'un a encore des problèmes pour configurer une connexion rfcomm.
Ceci ^ garantit que vous commencez avec une table rase à chaque fois que vous essayez de configurer une connexion.
Ce numéro de canal doit être différent de tout canal actuellement attribué.
(FACULTATIF) Pour vérifier les chaînes:
Je ne sais pas pourquoi cette prochaine commande est nécessaire, mais cela a fonctionné pour moi.
Ensuite, pour écouter les connexions entrantes:
REMARQUE: l'adresse MAC bt dans /etc/bluetooth/rfcomm.conf mais être le MAC bt de votre téléphone. De plus, le canal dans ce fichier doit être le même que celui choisi pour a_channel_ #.
Une fois que j'ai fait tout cela, j'ai utilisé un émulateur de terminal bt sur mon téléphone pour tout vérifier.
la source
J'ai essayé différents outils Bluetooth et il a été difficile de trouver la séquence correcte de commandes pour se connecter et échanger des données avec un module Bluetooth. Essayez d'utiliser rfcomm et minicom:
Ceci est mon /etc/bluetooth/rfcomm.conf
Rechercher des appareils Bluetooth:
Lier à l'aide de rfcomm
NB: bind 0 fait référence au numéro de périphérique 0 (rfcomm0) et 1 est le canal.
Ensuite, utilisez minicom avec sudo et enregistrez une configuration dans laquelle vous spécifiez le débit en bauds et le port. Vous pouvez trouver plus d'informations ici .
la source