使用react-native-ble-plx将数据发送到树莓派RFCOMM服务器

问题描述

我的目标是设置我的RaspBerry Pi 4,使其能够在我使用React Native制作的应用程序中单击按钮时运行脚本。我需要能够做到这一点,以便他们能够在没有wifi的情况下进行连接,这就是为什么我决定使用蓝牙的原因。

到目前为止,我已经在Pi上安装了RFCOMM服务器,并安装了react-native-ble-plx模块以能够处理蓝牙通信,但是我不确定如何使React Native连接到该服务器。

如果有人能告诉我如何连接它们并将数据发送到Pi以使其运行终端命令并返回结果,我将非常感激。

解决方法

有两种相互不兼容的蓝牙。 RFCOMM和BLE不能一起工作。

在Raspberry Pi上,您需要创建一个GATT服务器。 RPi使用BlueZ堆栈,并且在其源代码树中有一个示例: https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/example-gatt-server

您还需要准备一个广告,以便您的手机可以找到gatt服务器。还有一个示例:https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/example-advertisement

另一个建议是不要尝试同时开发蓝牙链接的两端,因为这很棘手。在开发React应用之前,请使用generic BLE tool检查服务器是否正常工作。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...