I’m working on a project where we need to collect high-frequency sensor data using an ESP32 and send it to a mobile app over Bluetooth Low Energy (BLE) protocol GATT . Our target sampling intervals range from 0.5 ms to 10 ms (i.e., 2,000 to 100 samples per second).
Questions:
Feasibility: Is this approach practical given BLE’s data rate limitations and the ESP32’s processing capabilities?
Optimizations: Any tips on optimizing this method to ensure reliable data transmission and prevent data loss?
Timestamp Accuracy: Can we rely on the ESP32’s internal timers for precise timestamping at these sampling rates, or is an external RTC necessary?
Any insights or suggestions would be greatly appreciated!
Thanks in advance!
Our Proposed Solution:
High-Frequency Sampling: The ESP32 samples data at the desired rate (0.5 ms to 10 ms), timestamps each data point using its internal timer, and stores them in a buffer.
Buffered Transmission: Every 100 ms, the ESP32 sends the buffered data over BLE to the app.
App Processing: The app receives these packets, extracts individual data points with their
timestamps, and accurately displays them on a flexible time axis.
Soufiane benaich is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
3