web-dev-qa-db-fra.com

Connexion Bluetooth au HC-05 couplé mais non connecté

J'ai un Arduino Uno connecté à une puce d'expéditeur/récepteur Bluetooth HC-05. J'essaie de créer une connexion Bluetooth entre mon ordinateur portable Acer fonctionnant sous Ubuntu 14.04 LTS et la puce HC-05.

Ubuntu détecte la puce HC-05, comme on peut le voir ci-dessous.

phodor@ubuntu: hcitool scan
Scanning ...
    11:22:33:44:55:66   HC-05

Je peux créer une paire entre le périphérique Bluetooth de mon ordinateur portable et la puce HC-05. Cependant, je suis incapable de créer une connexion avec cette paire à partir de l'interface Ubuntu. Le bouton "Connexion" ne peut pas être cliqué, comme vous pouvez le voir sur la figure ci-dessous.

J'ai essayé de créer une connexion à l'aide du terminal, mais après cela, le terminal n'a toujours pas détecté de connexion.

phodor@ubuntu: Sudo hcitool cc 11:22:33:44:55:66
[Sudo] password for phodor: 
phodor@ubuntu: hcitool con
Connections:

J'ai également vérifié que le périphérique Bluetooth de mon ordinateur fonctionnait.

phodor@ubuntu: hcitool dev
Devices:
    hci0    AA:BB:CC:DD:EE:FF

Une idée pourquoi la connexion ne peut pas être créée? Avez-vous une idée de la façon de le faire en utilisant l'interface Ubuntu ou le terminal?

enter image description here

2
phodor

La suggestion de ubfan1 est complète et utilise rfcomm pour établir une connexion avec un périphérique Bluetooth. Si cela ne fonctionne pas, vous devriez essayer ce qui suit:

J'utilise rfcomm et minicom pour échanger des données entre un périphérique Bluetooth Hc-06 connecté à un Arduino et Ubuntu.

Rechercher des périphériques Bluetooth:

hcitool scan
Scanning ...
    20:15:12:08:62:95   HC-06

Lier en utilisant rfcomm

Sudo rfcomm bind 0 20:15:12:08:62:95 1

NB: bind 0 désigne le numéro de périphérique 0 (rfcomm0) et 1 le canal. La led rouge devrait maintenant arrêter de clignoter.

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 sur ce tutoriel .

J'espère que ça aide!

2
UserK

Voici mon exemple (pratique) d'utilisation du rfcomm pour brancher un gps bluetooth - un peu pénible, je dois le dire! J'espère que cela aide, je l'ai utilisé avec viking et openstreetmaps.

#!/bin/bash
# Manually start a gps receiver outputting on bluetooth
# Then determine if the gps daemon is already running
xxx=`ps auxww |grep [g]psd`
if [ -n "$xxx" ]; then 
  set `echo $xxx`
  pidgpsd=$2
fi

# the /etc/bluetooth/rfcomm.conf must have the gps MAC
MYGPS=`grep "^[^#].*device.*;" /etc/bluetooth/rfcomm.conf |cut -f2 -d" "|cut -f1 -d";"`

#Determine if the rfcomm0 device has been created
if [ ! -e /dev/rfcomm0 ]; then
  # kill the old gpsd
  if [ -n "$pidgpsd" ]; then
    echo "Killing the old gpsd"
    # for icon invocation, use gksudo
    gksudo kill $pidgpsd
    unset pidgpsd
  fi
  sdptool add --channel=1 OPUSH
  #gksudo rfcomm bind /dev/rfcomm0 00:0A:3A:2C:BC:44
  gksudo rfcomm bind /dev/rfcomm0 $MYGPS
  sleep 5
fi

# Start the new gpsd if necessary
if [ ! -n "$pidgpsd" ]; then
  #Sudo gpsd -n -N -D2 /dev/rfcomm0
  gksudo -- gpsd -n -D2 /dev/rfcomm0
  echo "gpsd started"
  sleep 5
fi

# Create a ttyUSB0 link for broken viking
if [ ! -e /dev/ttyUSB0 ]; then
  Sudo ln -s /dev/rfcomm0 /dev/ttyUSB0
  # ensure viking (you) can read the device ????
  Sudo chmod 666 /dev/rfcomm0
fi
1
ubfan1