颤振蓝牙基本问题

时间:2020-10-18 19:32:10

标签: flutter bluetooth bluetooth-lowenergy

我正在进行一个涉及颤振和蓝牙的新项目。为此,我阅读了一下并尝试了一个测试项目,但是仍然有一些问题,我找不到简单的答案。

首先,BLE与蓝牙。 BLE就是蓝牙版本4,主要用于物联网应用。它可以在手机中运行,但是是否存在兼容性问题? AKA,BLE设备可以与蓝牙设备通信吗?还是它们都需要使用相同的蓝牙版本?

这个问题来自测试蓝色的example而不发现任何设备,而我标准手机的蓝牙发现了10多个设备(在魅族16号上进行了测试)。我是否需要两个具有相同蓝牙应用程序的设备才能使它们彼此看到并交互?我了解到要发送信息,我将需要两个具有相同flutter应用程序的设备,但是现在我只想测试扫描设备的功能,返回0个设备会让我有些失望。

第二,我看到了一些蓝牙软件包,例如flutter_blueflutter_bluetooth_serial(基于flutter_blue),flutter_reactive_blebluetooth。在考虑我的项目时,您认为哪一种最合适?是基于制作调查表->通过蓝牙发送的调查表->通过蓝牙取回已填写的调查表?

简而言之,我对颤动的知识是相当基础的,对蓝牙的了解是绝对的0,因此,我希望能对当前的蓝牙颤动技术有一个明智的了解,以便我有一个很强的出发点并避免常见错误。

编辑:@ukBaz在解释蓝牙背后的理论时补充了@ukBaz的答案,如果有人发现自己使用flutter_blue示例,请紧记在您的设备中同时打开蓝牙和GPS,以使该示例正常工作。

有了ukBaz的解释和工作示例,我可以承担这个项目。

编辑2:有关为什么需要定位服务的说明here

1 个答案:

答案 0 :(得分:1)

蓝牙是一组标准的二进制协议,用于设备之间的短距离无线通信。

“经典”蓝牙(BR / EDR)支持的速度最高约为24Mbps。一般来说,经典蓝牙主要用于音频,例如无线电话连接,无线耳机和无线扬声器。

Bluetooth 4.0引入了一种低功耗模式,即“ Bluetooth Low Energy”(BLE或LE,也称为“ Bluetooth Smart”),其运行速度为1Mbps。此模式允许设备在大多数时间关闭发射机。结果是“低能耗”。低功耗蓝牙技术在可穿戴设备,智能物联网设备,健身监控设备和电池供电配件中更为常见。

BLE功能主要由创建通用属性配置文件(GATT)的键/值对组成。

BLE定义了设备可以扮演的多个角色:

  • 广播台(信标)是仅用于发射机的应用程序。
  • 观察者(扫描仪)仅用于接收者应用程序。
  • 充当外围设备角色的设备可以接收连接。
  • 担当中央角色的设备可以连接到外围设备。

在应用程序级别,蓝牙是关于建立在蓝牙标准上的配置文件,以更清楚地定义蓝牙模块正在传输的数据类型。设备的应用程序确定其必须支持的配置文件。 Bluetooth SIG采用了许多允许互操作性的配置文件:

经典配置文件:https://www.bluetooth.com/specifications/profiles-overview/

BLE配置文件:https://www.bluetooth.com/specifications/gatt/

BLE允许创建Custom Services & Characteristics。但是,尝试同时开发蓝牙链接的两端是一项挑战,特别是如果您不熟悉BLE。我建议您一次发展一个目标。有许多通用工具,例如BLE Peripheral Simulator(用于外围角色)和scanning and exploration tools(用于中央角色)来提供帮助。还有一些开发板,例如micro:bitpuck-js对于学习通过电话连接到设备的设备很有用。