Считывание данных нескольких датчиков из текстового файла, расположенного на SD-карте в Arduino/ESP32

Я работаю над небольшим домашним проектом "глюкометр" с помощью неинвазивных методов. Я использую четыре датчика, таких как цветовой датчик RGB, два многоволновых фотодиода (A & B) и датчик температуры (термопара типа K). Я использую мультирегрессионный алгоритм для оценки уровня глюкозы в организме человека, вычисляя все четыре показания датчиков.

Multple Regression Equation

Я использую ESP32 и сохраняю все данные своих датчиков в CSV-файле (или тексте) после получения более 20 калибровочных данных от моей семьи и друзей. Я могу прочитать этот файл после записи, но я столкнулся с проблемой при чтении всех калибровочных данных из этого текстового/CSV-файла следующим особым образом.

Y,Sensor1,Sensor2,Sensor3,Sensor4
92,103,25,65,9875
91,104,26,62,9805
105,92,30,66,9600
150,60,40,75,9233
...,...,...,.....

Выше паттерн показывает значения " Y " (уровень сахара в крови мг/дл) и соответствующее значение датчиков на это время. Я сталкиваюсь с проблемой при чтении этих объектов, таких как:

Y1 = 92, S1 = 103, S2 = 25, S3 = 65, S4 = 9875
Y2 = 91, S1 = 104, S2 = 26, S3 = 62, S4 = 9805
....................AND so forth..............
Y1000 = XX, S1 = XX, S2 = XX, S3 = XX, S4 = XX

Может ли кто-нибудь помочь мне, как я буду читать и классифицировать значения каждого датчика из текстового/CSV-файла?

- Спасибо.

, 👍1


2 ответа


0

Файл функций.Функция parseInt() пропускает нечисловые символы, а затем анализирует число, останавливаясь на нечисловом символе. Поэтому вам нужно только вызвать file.parseInt() для каждого значения в строке, обработать данные и затем перейти к следующей строке.

Y1 = file.parseInt();
S1 = file.parseInt();
S2 = file.parseInt();
S3 = file.parseInt();
S4 = file.parseInt();
,

1

Допустим, вы хотите прочитать эту строку из файла.

92,103,25,65,9875

код

String one_line_data = file.readStringUntill("\n");
int y,s1, s2, s3, s4;
sscanf(one_line_data.c_str(), "%d,%d,%d,%d,%d", &y, &s1, &s2, &s3, &s4);

таким образом, чтобы прочитать одну строку данных из файла, вы можете расширить его до нескольких строк в зависимости от приложения.

,