树莓派板载蓝牙使用
创始人
2024-03-05 06:15:42
0

1 设置树莓派板载蓝牙

1.1 相关环境安装、配置

sudo apt-get update
sudo apt-get install pi-bluetooth bluez bluez-firmware blueman

1.2 树莓派蓝牙操作

参考: https://blog.csdn.net/guzhong10/article/details/78574577

有时候会失败, 可以尝试重启树莓派蓝牙服务。 实在不行重启树莓派, 多尝试几次, 一般都会成功。

1.3 修改配置文件

修改 /etc/systemd/system/dbus-org.bluez.service

在ExecStart =/usr/lib/Bluetooth/bluetoothd 后面添加-C
紧接着添加一行:ExecStartPost=/usr/bin/sdptool add SP

在这里插入图片描述
这个操作不知道有什么作用。
很多教程里面都提到了

  • https://www.jianshu.com/p/14ef6f207b7a
  • https://blog.csdn.net/weixin_42473844/article/details/95310704

添加用户组:
sudo usermod -G bluetooth -a pi
这个也不见得有用, 反正就是出错的时候可以尝试。

最后, 重启树莓派。

2 树莓派蓝牙连接手机蓝牙进行测试

为了验证树莓派蓝牙的功能, 最简单的办法就是连上手机蓝牙。 因为手机上有很多现成的蓝牙调试助手, 可以方便地进行蓝牙功能的调试验证。

我使用的一个蓝牙助手是HC-蓝牙助手, 下载链接: http://www.hc01.com/download

由于我通过树莓派蓝牙没扫描到手机蓝牙, 直接用树莓派蓝牙去连接手机蓝牙也会失败。 因此我尝试用手机蓝牙去连接树莓派哦的蓝牙。

连接成功后, 通过sudo rfcomm watch hci0查看会出现如下信息:
在这里插入图片描述
并且此时, 在/dev 目录下会多出一个 /dev/rfcomm0 的设备出来, 这是蓝牙映射到树莓派的串口。 可以直接向这个串口读写数据:

尝试向串口写数据:

echo 'send form pi' >/dev/rfcomm0

手机端的串口助手会收到该信息:
在这里插入图片描述
尝试从串口读数据:

cat /dev/rfcomm0

在手机端发送消息:
在这里插入图片描述
树莓派串口接收到数据:
在这里插入图片描述

除了在命令行中通过cat echo读写数据外, 还可以通过python进行程序读写:

import serial
ser = serial.Serial("/dev/rfcomm0", 9600)
ser.write("send from pi by python".encode())
out = ser.read(100)

结果如下:
在这里插入图片描述
在这里插入图片描述

3 常见问题

3.1 通过scan on 扫描不到附近的蓝牙设备

比如, 我打开了手机的蓝牙, 其他蓝牙设备都能发现手机蓝牙信号, 但是树莓派的蓝牙没有扫描到手机蓝牙。
原因未知。 我在过程中只有一次扫描到了手机蓝牙, 之后无论怎么尝试都搜不到手机蓝牙了。

3.2 手机蓝牙扫描不到树莓派蓝牙

原因未知。 我一开始时手机能发现树莓派蓝牙, 之后一直搜不到。后来我尝试在树莓派上执行 sudo bluetoothctl discoverable yes 手机蓝牙可扫描到树莓派蓝牙。 猜测可能是某个误操作导致树莓派蓝牙信号不可见。

3.3 树莓派连接其他蓝牙pair失败, 但是connect可以成功, 然而好像不能正常使用

连接完成后/dev 目录下没有/dev/rfcomm0, 强行通过 sudo rfcomm bind /dev/rfcomm0 XX:XX:XX:XX:XX:XX 1(xxx是你想要连接的蓝牙的MAC地址) 后, dev 目录下有/dev/rfcomm0, 但是使用这个串口进行读写操作都会失败。
原因未知, 貌似不能这么强行绑定, 正常配对连接成功会自动生成/dev/rfcomm0。

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...