10、树莓派 蓝牙连接和调试

蓝牙连接和调试

参考文章

安装蓝牙

sudo apt-get install bluez
详见上一篇。

蓝牙调试(主机)

  • 命令行进入: sudo bluetoothctl
  • 查看:default-agent
  • 注册anget:agent on
  • 扫描: scan on
  • 停止扫描:scan off
  • 找到要配对的蓝牙配对:pair xx:xx...xx:xx
  • 添加信任:trust xx:xx...xx:xx
  • 连接:connect xx:xx...xx:xx
  • 设置蓝牙可被发现状态:
    discoverable yes
    上面的操作,虽然可以配对并连接蓝牙,但是无法进行调试。
    需要在树莓派上设置SPP。

开启蓝牙设备

参考原文

  • 编辑文件:sudo vi /etc/systemd/system/dbus-org.bluez.service
  • 找到ExecStart=/usr/lib/bluetooth/bluetoothd,更改并添加为:
ExecStart=/usr/lib/bluetooth/bluetoothd -C
ExecStartPost=/usr/bin/sdptool add SP
  • 查看蓝牙服务:hciconfig
hci0:   Type: BR/EDR  Bus: USB
        BD Address: 00:11:67:00:00:00  ACL MTU: 510:8  SCO MTU: 48:10
        UP RUNNING PSCAN
        RX bytes:27177 acl:504 sco:0 events:1654 errors:0
        TX bytes:56051 acl:1309 sco:0 commands:194 errors:0

  • 查看适配器提供的各种功能
    sudo sdptool browse local
  • 等待连接:sudo rfcomm watch hci0会自动进行连接,测试时没有成功。
  • 开启蓝牙可被发现功能:
    sudo hciconfig hci0 piscan
  • 查看rfcomm0串口
    连接成功后,ls /dev 会看到rfcomm0端口。
  • 连接成功后,可通过minicom进行蓝牙串口通信。

蓝牙自动化设置

  • 添加rfcomm服务文件
    sudo vi /etc/systemd/system/rfcomm.service

文件内容为:

[Unit]
Description=RFCOMM service
After=bluetooth.service
Requires=bluetooth.service
 
[Service]
ExecStart=/usr/bin/rfcomm watch hci0
 
[Install]
WantedBy=multi-user.target

设置自启动:
sudo systemctl enable rfcomm

重启树莓派,会重启蓝牙:sudo systemctl start rfcomm
打开手机蓝牙调试程序进行连接。

其他

sudo bciconfig hci0 piscan
sudo bluetooth-agent 1234

sdptool add --channel=3 SP

sdptool browse local

sudo rfcomm watch /dev/rfcomm0 3 /sbin/agetty rfcomm0 linux 115200

你可能感兴趣的:(树莓派开发)