与 HC-05 的蓝牙连接已配对但未连接

与 HC-05 的蓝牙连接已配对但未连接

我有一个连接到 HC-05 蓝牙发送器/接收器芯片的 Arduino Uno。我正尝试在运行 Ubuntu 14.04 LTS 的 Acer 笔记本电脑和 HC-05 芯片之间建立蓝牙连接。

Ubuntu 检测到 HC-05 芯片,如下所示。

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

我可以在笔记本电脑蓝牙设备和 HC-05 芯片之间创建一对。但是,我无法从 Ubuntu 界面与该对创建连接。无法单击“连接”按钮,如下图所示。

我尝试使用终端创建连接,但之后终端仍然没有检测到任何连接。

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

我还检查了我的计算机蓝牙设备是否正常工作。

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

知道为什么无法创建连接吗?知道如何使用 Ubuntu 界面或终端执行此操作吗?

在此处输入图片描述

答案1

ubfan1 的建议很完整,使用 rfcomm 与蓝牙设备建立连接。如果不行,您应该尝试以下操作:

我正在使用 rfcomm 和 minicom 在连接到 Arduino 和 Ubuntu 的蓝牙设备 Hc-06 之间交换数据。

扫描蓝牙设备:

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

使用 rfcomm 绑定

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

注意:bind 0 指的是设备编号 0 (rfcomm0),1 是通道。红色 LED 现在应该停止闪烁。

然后使用 minicom 和 sudo 并保存配置,其中指定波特率和端口。您可以在此处找到更多信息教程

希望能帮助到你!

答案2

这是我使用 rfcomm 连接蓝牙 gps 的(工作)示例——我必须说这有点麻烦!希望这有帮助,我将其与 viking 和 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

答案3

要触发连接并使用 minicom 显示数据,请运行

sudo minicom -D /dev/rfcomm0

您会注意到端口 /dev/rfcomm0 也可从 arduino IDE 获得。

相关内容