我有一个连接到 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 获得。