(十一)树莓派基础:使用Raspberry Pi 3板载蓝牙进行通信

释放双眼,带上耳机,听听看~!

介绍

  • Raspberry Pi 3提供了一个很棒的板载功能,即板载蓝牙。因此,没有必要使用外部蓝牙适配器。这释放了USB端口用于其他用途,否则将被蓝牙适配器用完
  • Raspberry Pi 3具有BCM43438高度集成的单芯片,包括2.4GHz WLAN,蓝牙和FM接收器。
  • 在开始使用Raspberry Pi的板载蓝牙进行通信之前,我们需要设置Raspberry Pi的板载蓝牙。

如何设置Raspberry Pi的板载蓝牙

Raspberry Pi具有板载蓝牙,可用于通信或发送/接收文件。

在Raspberry Pi与支持蓝牙的设备之间建立通信之前,我们需要将它们配对。

在Raspberry Pi上配对蓝牙设备与在移动设备或笔记本电脑上配对。

打开蓝牙如下,

(十一)树莓派基础:使用Raspberry Pi 3板载蓝牙进行通信

然后让它被周围发现。

(十一)树莓派基础:使用Raspberry Pi 3板载蓝牙进行通信

现在,选择选项添加设备…

(十一)树莓派基础:使用Raspberry Pi 3板载蓝牙进行通信

添加蓝牙设备

选择添加设备后弹出窗口,如下所示,

(十一)树莓派基础:使用Raspberry Pi 3板载蓝牙进行通信

蓝牙设备列表

在上面的窗口中,我们可以看到名为“ZUK Z1”的移动蓝牙设备。选择设备,然后单击配对。这将提示配对,并显示从Raspberry Pi到蓝牙设备的引脚(树莓派随机生成的引脚),这会导致设备要求您确认连接。

设备通过使用配对选项接受连接后,我们的树莓派和蓝牙设备将配对,并且可以在它们之间建立连接。现在,我们的Raspberry Pi已准备好与配对设备进行通信。

如何通过蓝牙在Raspberry Pi和设备之间传输文件?

Raspberry Pi和设备之间通过蓝牙进行通信有两种方式。

  • 蓝牙GUI(图形用户界面)
  • 命令行界面(CLI)

在使用GUI或CLI访问基于蓝牙的传输之前,我们需要安装以下软件包,

Blueman – 它是一个全功能的蓝牙管理器。它提供基于GUI的设置面板蓝牙管理器。

Bluez-该软件包提供蓝牙协议栈和bluetoothctl实用程序。

Bluetooth – 此软件包提供BluezBluetooth堆栈支持的所有插件。

现在使用以下命令使用蓝牙服务安装上面的包,

sudo apt-get install bluemanbluez Bluetooth

成功安装上述软件包后,重新启动Raspberry Pi。

使用图形用户界面(GUI)进行蓝牙服务

Raspberry Pi没有用于访问笔记本电脑/移动设备等蓝牙服务的GUI。为了获得蓝牙GUI,我们安装了上面提到的包。

现在,我们可以使用GUI访问蓝牙服务(发送/接收)。为此,请转到菜单并选择首选项。在首选项中,选择Bluetooth Manager。现在,我们可以看到蓝牙管理器窗口,其中列出了所有可见的蓝牙设备,如下所示。

(十一)树莓派基础:使用Raspberry Pi 3板载蓝牙进行通信

蓝牙管理器

我们需要使蓝牙可见,以便其他设备可以发现。为此,请选择Adapter》preferences,如下所示,

(十一)树莓派基础:使用Raspberry Pi 3板载蓝牙进行通信
(十一)树莓派基础:使用Raspberry Pi 3板载蓝牙进行通信

蓝牙适配器设置

我们可以将文件从Raspberry Pi传输到选定的蓝牙设备。要发送文件,右键单击所选设备并选择发送文件,如下所示,

(十一)树莓派基础:使用Raspberry Pi 3板载蓝牙进行通信

通过Raspberry Pi的蓝牙发送文件

浏览文件并发送。我们也可以在Raspberry Pi上收到一个文件。

用于蓝牙服务的命令行界面(CLI)

我们之前安装的软件包也是命令行界面所必需的。

将蓝牙设备与shell配对是最简单,最可靠的选择。

  • 使用bluetoothctl的蓝牙连接

按照下面给出的步骤将Raspberry Pi的蓝牙与另一台蓝牙设备配对并连接。我们正在使用bluetoothctl实用程序来配对和建立Raspberry Pi和蓝牙设备之间的连接。

输入以下命令启动bluetoothctl

bluetoothctl

使用以下命令打开控制器的电源

power on

输入设备以获取我们想要配对的设备的mac地址。此命令提供可用设备的列表。

devices

如果列表中没有设备,则按如下方式搜索设备,

scan on

打开代理

agent on

配对蓝牙设备

pair <mac address>

例如 pair 01:02:03:04:05:06

如果使用没有PIN的设备,我们需要手动将设备标记为信任设备,如下所示,

trust <mac address>

最后在两个蓝牙设备之间建立连接。

Connect <mac address>

要了解有关命令的更多信息,可以输入help命令。

  • 使用CLI通过蓝牙发送/接收数据

我们可以使用CLI通过蓝牙从Raspberry Pi发送/接收数据。当我们需要通过蓝牙使用智能手机/笔记本电脑控制连接到Raspberry Pi的任何设备时,此通信非常有用。对于此类应用程序,CLI是最有效的通信方式。在这里,我们使用RFCOMM(射频通信)蓝牙协议。

让我们使用CLI通过蓝牙在Smartphone(Mobile)和Raspberry Pi之间交换数据。

要使用CLI在两个蓝牙设备之间进行通信,请按照以下步骤操作,

我们已经使用bluetoothctl配对了一个设备。

在这里,我们使用hciconfig配置蓝牙设备以在它们之间建立数据传输。

输入以下命令以获取Raspberry Pi蓝牙设备信息。

hciconfig

这将提供Raspberry Pi蓝牙的mac地址。此外,它还提供有关端口是否为UP / DOWN的信息。

如果是DOWN,则输入以下命令使其UP。

hciconfig hci0 up

注意:有时会出现“operation not possible due to RF-Kill”等错误,然后可以解决

rfkill unblock all

创建蓝牙配置文件如下

sdptool add sp

要从智能手机接收数据,我们应该将智能手机连接到Raspberry Pi。为了连接智能手机和通信(发送/接收)数据,我们需要在智能手机上使用蓝牙应用程序。在这里,我们正在使用Blueterm应用程序

要通过蓝牙在Raspberry Pi和Smartphone之间建立连接,请使用以下命令

sudo rfcomm listen hci0&

此命令使Raspberry Pi等待设备(智能手机)请求连接。

我们必须打开Blueterm应用程序并选择我们想要连接的蓝牙设备(Raspberry Pi)。

设备连接成功后,我们可以从智能手机接收消息。

现在,我们可以将智能手机中的字符/消息发送到Raspberry Pi,但我们无法在Raspberry Pi终端上看到它们。要查看收到的字符/消息,请输入以下命令

cat /dev/rfcomm0

现在我们可以看到正在接收的终端中的消息。

给TA打赏
共{{data.count}}人
人已打赏
树莓派-基础

(十)树莓派基础:使用Wi-Fi访问笔记本电脑上的树莓派Raspberry Pi

2019-4-17 17:36:05

动态

(六)Arduino系列:NodeMCU与Arduino进行SPI通信

2019-5-2 13:52:37

2 条回复 A文章作者 M管理员
  1. 黑心土豆必糊

    echo “type character/message here” >/dev/rfcomm0
    最后这条命令一直显示权限被拒绝,即使用sudo执行,也是如此。
    到处搜索了也没解决。错误信息:bash: /dev/rfcomm0: 权限被拒绝
    请问博主可以解答吗?

    • Luca

      /dev/rfcomm0会不会是不存在,你看看这篇文章:https://unix.stackexchange.com/questions/128531/rfcomm-device-seems-to-be-missing-dev-rfcomm0

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
'); })();