Wi-Fi和蓝牙在对等连接中的比较

8

我正在为一项教育项目开发一个Android的P2P应用程序,在这个项目中,我希望能够在大学校园内组建附近学生的Android手机组,并交换传感器数据。

现在有一些考虑:

  1. 设备将自动发现彼此,并在发现后连接并交换数据。
  2. 该过程将长时间运行,可能每天4-8小时(周期性感测数据和交换的过程)。

现在可以使用蓝牙或WiFi来形成P2P组(不使用WiFi Direct,而是考虑到手机已连接到校园WiFi的简单UDP数据包过程)。

在可靠性、手机功耗、可扩展性以及任何其他您可以建议的方面,使用蓝牙和WiFi在这种情况下的优缺点是什么?

3个回答

10

除了其他的回答和意见,我想补充这个答案。

首先,在我们选择 WiFi 或者 Bluetooth 之前,我们需要了解这两种技术的区别。

我制作了一个比较表格,涵盖了你可能需要了解的一些重要信息,关于你的项目。

enter image description here

注意:蓝牙和 WiFi 有不同版本,这个图表代表标准蓝牙、蓝牙 v4 和 WiFi 的总体情况。建议参考每种技术的制造规格。

从表格中我们可以得出结论:与 WiFi 相比,蓝牙有更低的能耗,但是 WiFi 拥有更大的带宽。

在一般范围内,距离只是近似值,很多因素会影响距离,例如人体、障碍物、位置(内部或外部)、如果在室内,则是建筑物内部的结构类型和材料、来自其他源和设备的噪声等等。

(*) 关于可扩展性,我测试了 WiFi 和蓝牙 v4,这两个系统都支持多达 8 个设备,其中一个是主机(组所有者、服务器)设备,另外 7 个是客户端设备。请参见下图。

enter image description here

关于可靠性,在使用蓝牙 v4 时,我有时会遇到连接问题,但是当一切正常时,效果非常好。

注意:蓝牙 v4 不向旧版本的蓝牙兼容,因此如果您的主机是蓝牙 v4,则所有其他客户端都应该使用蓝牙 v4,反之亦然。

因此,我不会说哪个更好,但如果您需要更长的电池寿命和轻量级数据通信,则蓝牙是一种选择。无论是蓝牙还是WiFi,您可能需要先尝试蓝牙并进行测试,如果您对其满意则保留,否则切换到WiFi。

如果您想自己编写代码,可以参考我之前为另一个大学研究项目所使用的代码示例(项目链接)。该项目基于8部手机(主机和客户端),如上图所示,我们收集传感器信息并通过蓝牙4连接将其发送到主机手机。我们用于该项目的源代码可以在这里找到。同一项目还有WiFi和其他类型的连接。

Android官方Google文档提供了关于WiFi对等连接的一些信息和代码示例。您也可以按照这里的示例进行操作。

关于收集传感器数据并将其发送到另一设备的问题。您可以添加一个方法来开始收集传感器或任何其他数据,在成功建立连接后再将其发送到另一设备。

如其他人所建议的,https://developers.google.com/nearby也是一种方法。


4

如果您可以依赖校园Wifi,那么我一定会在我的应用程序中使用Google Nearby APIs的实现,因为它是为这种用例而设计的...

它的工作方式回答了你的问题:它为你做所有繁重的工作,包括选择Wi-Fi或蓝牙以获得更好的性能...


数据交换将由服务自动完成,无需用户交互。因此,如果附近的API需要屏幕开启,则无法使用它。 - 0x5050
也许你最好的选择是通过一个带有GCM推送服务的乐队管理服务器来管理所有这些,以唤醒/处理数据传输。 - JBA
请注意,Google Nearby Connections API 需要设备上安装有 Google Services。 - Aura Lee

3

实际上,我需要进行一些自定义的发现和组长选举,因此本地类是最佳选择。我实际上想知道在长时间内哪一个(蓝牙或Wifi P2P)更加省电和可靠。 - 0x5050

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接