【问题标题】:Basic flutter bluetooth questions基本的颤振蓝牙问题
【发布时间】:2021-02-01 15:35:04
【问题描述】:

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

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

这个问题来自于测试一个颤动的蓝色example 并且没有发现任何设备,而我的标准手机的蓝牙发现了 10 多个设备(在魅族 16th 上测试)。我是否需要两个具有相同颤振蓝牙应用程序的设备才能让它们相互看到并进行交互?我知道为了发送信息,我需要两台设备和相同的颤振应用程序,但现在我只是想测试 de scan 设备的功能,返回 0 个设备让我有点失望。

其次,我见过一些蓝牙包,例如flutter_blueflutter_bluetooth_serial(基于flutter_blue)、flutter_reactive_blebluetooth。考虑到我的项目是基于制作问卷 -> 通过蓝牙发送 -> 通过蓝牙取回填写好的问卷,您认为哪一个最适合?

简而言之,我在颤振方面的知识相当基础,在蓝牙方面绝对是 0,所以我希望在颤振蓝牙的当前状态下有一些明智的委员会,这样我就有了一个强有力的起点并避免常见错误。

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

有了 ukBaz 的解释和一个可行的例子,我可以承接这个项目,谢谢。

编辑 2:解释为什么需要定位服务here

【问题讨论】:

  • 我认为你有一些误解。 “蓝牙”只是不同标准的集合。 BR/EDR 是一种标准。 BLE 是版本 4 中引入的另一种功能。蓝牙设备可能只支持某些单一功能或多种功能。

标签: flutter bluetooth bluetooth-lowenergy


【解决方案1】:

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

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

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

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

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

  • 广播器(信标)是仅发送器的应用程序。
  • Observer(扫描仪)仅适用于接收器应用程序。
  • 扮演外围角色的设备可以接收连接。
  • 扮演中心角色的设备可以连接到外围设备。

在应用层面,蓝牙是关于建立在蓝牙标准之上的 Profiles,以更清晰地定义蓝牙模块正在传输的数据类型。设备的应用程序确定它必须支持哪些配置文件。 蓝牙 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,对于学习如何从手机连接到设备很有用。

【讨论】:

    猜你喜欢
    • 2020-10-13
    • 2021-08-08
    • 1970-01-01
    • 2023-01-07
    • 2021-04-16
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    相关资源
    最近更新 更多