raspberry pi蓝牙4.0低功耗

烈酒焚心 提交于 2019-11-29 18:28:48

raspberry pi上有两个USB口,前面的文章已经用了一个USB wifi适配器实现了一个加载机,今天用另外一个USB口连接蓝牙适配器,在raspberry pi上实现蓝牙功能。硬件上在网上买了一个ORICO的蓝牙适配器,该适配器支持bluetooth4.0标准。在我的raspberry pi上通过命令$lsusb可以看到如下内容:

Bus 001 Device 004: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

该内容表示系统已经识别出蓝牙适配器。另外通过命令$lsmod | grep "btusb"可以看到如下内容:

btusb                  15521  0
bluetooth             221259  21 bnep,btusb

该内容表示内核部分已经正确加载usb蓝牙适配器的驱动模块。至于蓝牙协议栈内核模块,可以通过/proc/config.gz文件查看相应的蓝牙协议栈是否编译进内核或编译成模块。

bluez-5以上的版本支持蓝牙4.0的低功耗模式,raspbian的最新镜像(2013-12-20)源上的bluez版本是4.99。因此需要通过源代码编译。从bluez的官方网站上下载最新的bluez-5.13。编译bluez-5.13时需要在raspberry pi上安装如下开发包:libglib2.0-dev,libdbus-1-dev,libudev-dev,libical-dev,libreadline-dev。在编译选项上添加--disable-systemd选项(不需要systemd)。编译且安装后在/usr/local/libexec/bluetooth目录下有一个bluetoothd守护进程,该进程用于raspberry pi与其他蓝牙设备之间通信的服务。

安装后使用$hciconfig命令可以查看当前蓝牙适配器的情况:

hci0:   Type: BR/EDR  Bus: USB
        BD Address: 00:1A:7D:DA:71:13  ACL MTU: 310:10  SCO MTU: 64:8
        DOWN
        RX bytes:5362 acl:0 sco:0 events:124 errors:0
        TX bytes:1229 acl:0 sco:0 commands:78 errors:0

可以看到当前的蓝牙适配器处于关闭状态。通过命令$sudo hciconfig hci0 up启用蓝牙适配器。

hci0:   Type: BR/EDR  Bus: USB
        BD Address: 00:1A:7D:DA:71:13  ACL MTU: 310:10  SCO MTU: 64:8
        UP RUNNING PSCAN
        RX bytes:5933 acl:0 sco:0 events:155 errors:0
        TX bytes:1877 acl:0 sco:0 commands:109 errors:0

在蓝牙适配器开启后,通过命令$sudo hcitool lescan可以查找周围支持低功耗蓝牙设备。


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!