Ubuntu上实现蓝牙串口通讯(SPP)

蓝牙SPP介绍:

略(以后补充)

在ubuntu上实现方法:

方法1 :主要工具 bluemn minicom 安卓手机(上面安装蓝牙串口工具) 

1.1 安卓手机打开手机蓝牙,允许周围设备可见;

1.2 打开手机上的蓝牙串口工具(为了增加spp服务)

1.3 ubuntu环境下插入蓝牙适配器,(如果是虚拟机,请在虚拟机设置那边禁止蓝牙共享)。

1.4 命令# lsusb 查看蓝牙设备是否已经接入。

1.5 命令#hciconfig hci0 up (激活蓝牙设备)

1.6 开启blueman(未安装的 #apt-get install blueman),搜索到你的手机-配对,选择你已配对好的蓝牙设备,右击鼠标,选择串口服务。

1.7 在blueman的搜索框下面就会有已连接/dev/rfomm0的字样。(划重点,会考!)

1.8 使用minicom(安装方式 apt-get minicom) 配置端口为/dev/rfcomm0 波特率不用修改

1.9 再次打开minicom 往其中写入数据就会出现在你的手机,你手机通过蓝牙串口助手发送数据,数据就会出现在minicom界面。

1.8-1 读取接收数据:不使用minicom的可以再次打开一个终端 #cat /dev/rfcomm0 可以读取接收到的蓝牙数据

1.8-2 发送数据:#echo  " hello world" > /dev/rfcomm0 即可将数据发送到蓝牙手机上的蓝牙串口助手。

方法2:要求Linux内核2.6以上(也就是说内核中有bluez)(顺便说一下:方法二不止可以用于SPP,自己领悟 哈哈)

2.1 #hcitool scan 扫描蓝牙设备 

2.2 #sdptool add SP 为本地设备增加SPP服务

2.3 打开手机上的蓝牙串口工具(为了增加spp服务)

2.4 #sdptool browse 蓝牙mac地址  查看手机蓝牙spp服务在哪个信道(例如我的蓝牙手机spp服务在信道4)

2.5 #mknod /dev/rfcomm0 c 216 0 创建设备节点

2.6 #chmod 666 /dev/rfcomm0 设置权限

2.7 #rfcomm --help 学习一下rfcomm怎么使用

2.8 #rfcomm bind 0 蓝牙设备mac地址 4 (信道4 之前搜索到spp服务的信道别忘了)

2.9#rfcomm connect 0 蓝牙设备mac地址 4(连接蓝牙设备)

如果此时出现Can't create RFCOMM TTY: Address already in use 

2.10 #rfcomm release 0 (释放已使用的蓝牙rfcomm tty)

2.11 再次连接即可 #rfcomm connect 0 蓝牙设备mac地址 4(连接蓝牙设备)

2.12此时就会出现按ctrl+c结束连接的英文。

2.13 开启一个新的终端,要么使用minicom来和手机蓝牙串口助手通讯,要么使用1.8-*的方式来实现通讯。

(注:连接的时候可以尝试使用rfcomm -A connect 0 蓝牙设备mac地址 4)

ps:谢谢各位的阅读,如果有哪个地方写的不对,请指出。

你可能感兴趣的:(bluez)