分享

一起玩树莓派3+蓝牙的配置与评测

 知芯世界 2020-10-28

上期回顾:

一起玩树莓派3+牛刀小试

一起玩树莓派3+工欲善其事必先利其器

树莓派3应广大极客的需求,支持WiFi和Bluetooth无线通信技术,为IOT开发提供了更多可能。今天就来测试树莓派3的蓝牙功能。
启动树莓派3进入Raspbian系统桌面环境后,在桌面的右上角显示有蓝牙图标,如下图的红色框。

在蓝牙图标上右击鼠标弹出子菜单,共有“Turn Off Bluetooth”、“Make Discoverable”、“Add Device…”、“Remove Device…”4个菜单选项。

点击“Add Device…”子菜单选项,进入蓝牙设备搜索界面。打开手机蓝牙,开放检测功能,这样才能被树莓派找到,找到设备后,在Add New Device界面中,选择手机,点击Pair按钮,进行配对。

配对过程会弹出确认窗口,点击ok确认。

配对成功后弹出下面的窗口提示,分析应该是SDP出现了问题,我们来抓抓log分析一下。分析蓝牙的数据包协议,我们需要一款软件来辅助分析:Frontline ,去http://www./ 官方网站下载,在Windows本地安装Frontline 的安装包。
http://www./support/CPAS- ... %20BPA%20600&iid=21下载地址。

在手机中进入开发者选项,并开启开发者选项,打开蓝牙数据包日志。

在树莓派的蓝牙子菜单中点击Make Discoverable,然后打开手机蓝牙,进行scan,能够扫描到树莓派蓝牙设备,设备名称为raspberrypi(AD55)。

    


点击进行配对,配对完成后,查看树莓派蓝牙支持的profile,发现只有共享联系人 service,如下图所示。

将手机中的btsnoop_hci.log文件拷贝到电脑,修改后缀为.cfa文件,双击btsnoop_hci.cfa文件打开。

分析packet,Raspbian操作系统使用的BlueZ支持的bluetooth spec为4.1。

    

但是在inquiry result中只支持AVRCP、GAP profile。

在SDP中得到的结果也是只支持AVRCP、GAP profile,因此导致SDP完成后断线。

     

系统自带的蓝牙管理软件功能不是很强大,为了更便于使用,安装Blueman。Blueman是一个GTK蓝牙管理器,能够高效管理BlueZ API,并简化设备连接和操作。
sudo apt-get install blueman

测试文件发送,树莓派能够发送到手机,但是手机不能够发送到树莓派,问题在于树莓派SDP中不包含OPP profile的service record。

总结:

树莓派Raspbian操作系统的蓝牙功能还不是很完善,至少用户体验是很差的,还存在很多问题。如果要支持OPP,A2DP,DUN等profile需要自己配置,配置过程也非常复杂。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多