【问题标题】:ESP32: Store and Send data via BLE frequentlyESP32:经常通过 BLE 存储和发送数据
【发布时间】:2021-04-03 19:06:13
【问题描述】:

我正在开发一种基于 ESP32-DevKit 板的传感器,我可以在其中感应加速度计的振动。应用程序/传感器的目标是将加速度计数据存储 20 秒,然后通过 BLE 发送所有数据。

我目前正在使用 ESP32 ADC(12 位)以实现快速采样率(10-100KHz)以获得准确的信号。下一步是存储这个信号,但它会占用将近 2MB 的大小,所以我不知道我是否可以将它存储在 ESP32 中并稍后通过 BLE(逐包)发送,因此很多任务会最终会降低处理时间和能源。

要点是:

  • 快速的采样率/准确的信号。
  • 以尽可能低的能量向手机发送数据。
  • 使用 ESP32-S2 存储 2MB 数据并将其重新发送到手机应用程序。

有没有可能做我想做的事?

【问题讨论】:

    标签: memory bluetooth-lowenergy storage esp32 android-vibration


    【解决方案1】:

    在存储信号时,您是否考虑过压缩数据?如果加速度计读数与之前的读数非常相似,那么仅存储差异可能会节省大量空间,尤其是在您使用可变长度格式时。

    我有一个保存 GPS 数据的项目,但是因为它是相对缓慢移动的船,两个坐标之间的差异(每秒左右)会非常小,所以没有必要存储完整的坐标。

    【讨论】:

    • 我无法压缩数据,因为采集率很高,需要连续 20 秒的信号。
    • 当然压缩与这两者无关。如果您有 12 位值,但两个值之间的最大变化小于 256,则存储一个初始 16 位值,并且对于所有后续值,您减去前一个值并将其存储为单个字节。速度差异可以忽略不计,压缩率接近 50%。
    • 仍然不够,ESP32 只有 520kB SRAM,所以我想我应该使用 SPIFFS 或 .. 之类的方式将它存储在闪存中,据我所知,如果我错了,请纠正我,因此很多写入最终会降低闪存驱动器的性能,并且写入需要很长时间(与采样率相比 => 所以我可能会从信号中丢失一些数据)。
    猜你喜欢
    • 2021-08-16
    • 1970-01-01
    • 2019-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    • 1970-01-01
    相关资源
    最近更新 更多