1

我正在开始一个项目:读取 ESP32(外围设备)上的 ADC 值并将其通过 BLE 发送到 android(中央)。我有点困惑寻找合适的图书馆。我找到了至少 3 个解决方案/库

@1: #include <Adafruit_BluefruitLE_SPI.h>

@2: #include <BLEDevice.h>
   #include <BLEServer.h>
   #include <BLEUtils.h>
   #include <BLE2902.h>
 
@3: #include <ArduinoBLE.h>

看起来@3'rd 是最现代的,由 Arduino IDE 正式发布(参见链接https://github.com/nkolban/ESP32_BLE_Arduino/tree/adc2aee2f0d01eb6b30dd5ad3589f2cc89934beb),因此@2 的示例比其他示例更多。

使用 @2 我可以使用 .notify 命令开始发布值。使用@3 时没有关于此命令的文档,看起来我应该只使用 .writeValue 并且 .poll 负责发布该值。

@3 也在使用 setEventHandler ,而 @1 和 @2 没有对此进行描述。

使用@3 是否正确,因为它是由 Arduino IDE 正式发布的,并且在 Ardiuno IDE 中有完整的文档?

4

2 回答 2

0

我有同样的问题。我尝试了@2,它运行良好,但@3 有更好的 API,所以我跳到了那个选项。显然@3 不支持 esp32。拉取请求链接也有同样的问题。但是,当我尝试它时,它有编译错误。因此,我将在我的项目中使用@2,并至少在@3 库支持它之前向任何查看这里的人提出相同的建议。

于 2021-12-26T09:49:21.910 回答
0

似乎只有 @2 是为 ESP32 模块设计的。它很受欢迎,对于 ESP32 来说它不会是一个糟糕的选择。

作为@2的入门,看看这个项目:gihtub 上的 BLEProof - 包含适用于 Android 和 ESP32 的 BLE Central & Peripheral,BLE 读取、写入和通知的简单演示。

开始项目时,请明智地选择硬件:

  • ESP32 模块功能强大但功耗高,最低 60mA,它们在广播或保持活动 BLE 连接时无法休眠
  • 其他模块(用于库@1 和@3),尤其是仅 BLE 模块(不带 Wi-Fi),旨在降低功耗:例如 Nordic nRF51/nRF52 系列处理器在处理器一直运行时消耗 10-15mA,或结合睡眠和保持活动 BLE 连接时为 1-2mA

带有库@2 的 ESP32 是对项目进行原型设计的便捷方式,但当您仅使用低功耗蓝牙时,它并不是一种节能解决方案。另请注意,我对库@1 和@3 没有任何经验。

于 2021-08-07T17:40:40.003 回答