我正在启动一个项目:读取 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 官方发布的,并且在 Arduino IDE 中拥有完整的文档?
最佳答案
似乎只有@2是为ESP32模块设计的。它很受欢迎,对于 ESP32 来说它不会是一个糟糕的选择。
作为@2的启动,请看一下这个项目:BLEProof on gihtub - 包含适用于 Android 和 ESP32 的 BLE Central & Peripheral,BLE 读取、写入和通知的简单演示。
开始项目时,请明智地选择硬件:
- ESP32 模块功能强大,但功耗较高,最低 60mA,在广告或保持事件 BLE 连接时无法休眠
- 其他模块(针对库 @1 和 @3),尤其是专为降低功耗而设计的纯 BLE 模块(无 Wi-Fi):例如Nordic nRF51/nRF52 系列处理器在处理器始终运行时消耗 10-15mA,或者在 sleep 与保持事件 BLE 连接相结合时消耗 1-2mA
带有库 @2 的 ESP32 是一种构建项目原型(prototype)的便捷方式,但当您仅使用蓝牙低功耗时,它并不是一个节能的解决方案。另请注意,我没有任何使用库 @1 和 @3 的经验。
关于arduino - BLE Arduino ESP32 - 我应该使用哪个库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68691357/