树莓派体验6 - 文件传输方式 - 蓝牙

树莓派和其他设备(PC、手机等)传输文件的方式除了网络和U盘拷贝之外,蓝牙也是一种选择。本文以Android手机和树莓派3B通过蓝牙互传文件为例,简述蓝牙使用方法。

手机给树莓派发送文件

本例依赖两个应用程序:obexpushd和bluetoothctl,如果缺少则通过apt-get命令安装。

apt-get install obexpushd
apt-get install bluetoothctl

启动bluetoothctl

root权限执行bluetoothctl命令,输入help查看帮助信息。

树莓派体验6 - 文件传输方式 - 蓝牙

通过执行以下系列命令,配置树莓派状态,等待手机配对、连接。

power on -- 启动蓝牙模块
agent on -- 蓝牙模块agent 打开
scan on -- 扫描周边设备,得到手机MAC:DC:09:4C:62:B3:CA

树莓派体验6 - 文件传输方式 - 蓝牙

trust DC:09:4C:62:B3:CA -- trust该手机
pairable on -- 配对使能
discoverable on -- 开放检测

show -- 查看蓝牙配置信息

树莓派体验6 - 文件传输方式 - 蓝牙



配置obexpushd

创建目录存储接收的文件

mkdir /ble_receive

在obexpushd配置文件/etc/systemd/system/dbus-org.bluez.service中

ExecStart=/usr/lib/bluetooth/bluetoothd行尾添加 -C

启动obexpushd

obexpushd -B -o /ble_receive -n

树莓派体验6 - 文件传输方式 - 蓝牙


手机发送文件

此时,树莓派蓝牙环境准备就绪,打开手机发送一个mp3文件到树莓派。发送方法根据手机型号、蓝牙App型号各异。

发送一首Clodplay的Viva la vida到树莓派,通过obexpushd监听界面可见文件正在发送,等待手机提示发送完成。

树莓派体验6 - 文件传输方式 - 蓝牙

验证文件

进入文件所在目录,耳机连接树莓派,播放。恩,确实是这首歌,不是月亮之上,证明文件传输无误。音频的配置以及播放请自行皮查伊。

树莓派体验6 - 文件传输方式 - 蓝牙

如果想要将obexpush在后台运行,按照以下步骤配置。

新建文件:/etc/systemd/system/obexpush.service

文件内容为:

[Unit]

Description=OBEX Push service
After=bluetooth.service
Requires=bluetooth.service

[Service]
ExecStart=/usr/bin/obexpushd -B -o /ble_receive -n

[Install]
WantedBy=multi-user.target

执行命令:

systemctl enable obexpush

重启系统

reboot


树莓派给手机发送文件

将手机配置为蓝牙FTP server;

树莓派通过scan on 扫描得到手机MAC;

通过obexftp命令发送文件给手机。

obexftp -b DC:09:4C:62:B3:CA  -p 203.mp3