Есть задача: Реализовать сохранение данных с датчиков с сохранением времени в данный момент времени. По сути - это просто логи.
Вроде бы простая задача, полно скетчей, но есть проблема.
Касательно аппаратной части:
Работаю в среде ардуино через PlatformIO
Использую следующий скетч:
То, что я сейчас пишу в скетче - не важно. В дальнейшем я просто буду фиксировать данные с датчиков.
Какая, собственно, проблема возникает.
Исходя из скетча должен сохраниться файл data.txt
Со следующим содержанием:
time,data
16574,4
16574,4
16574,4
16574,4
time,data
000.0033
Но по итогу на SD карте файл data.txt c одной строчкой в которой написано:
000.0033
Путём комбинаций кода я понял, что строка
просто обнуляет файл и начинает запись с нуля.
Вопрос прост. В чём проблема, как пофиксить?)
Вроде бы простая задача, полно скетчей, но есть проблема.
Касательно аппаратной части:
- ESP32 devkit v1
- Модуль для записи данных на SD: MH-SD Card Module HW-203
- SD-карта: Kingston Canvas Select Plus SDHC (SDS2/32GB), UHS-I, U1, class 10
Работаю в среде ардуино через PlatformIO
Использую следующий скетч:
Скетч:
#include <SPI.h>
#include <SD.h>
const int chipSelect = 4; // Пин CS (Chip Select) для SD-карты
File dataFile; // Объект для работы с файлом на SD-карте
float getData();
void setup()
{
// Инициализация SD-карты
Serial.begin(115200);
if (!SD.begin(chipSelect))
{
Serial.println("Ошибка инициализации SD-карты.");
while (1)
;
}
// Открытие файла на запись
dataFile = SD.open("/data.txt", FILE_WRITE);
dataFile.println("time,data");
dataFile.println("16574,4");
dataFile.println("16574,4");
dataFile.println("16574,4");
dataFile.println("16574,4");
dataFile.println("time,data");
dataFile.close();
dataFile = SD.open("/data.txt", FILE_WRITE);
dataFile.println("000.0033");
dataFile.close();
}
void loop()
{
}
То, что я сейчас пишу в скетче - не важно. В дальнейшем я просто буду фиксировать данные с датчиков.
Какая, собственно, проблема возникает.
Исходя из скетча должен сохраниться файл data.txt
Со следующим содержанием:
time,data
16574,4
16574,4
16574,4
16574,4
time,data
000.0033
Но по итогу на SD карте файл data.txt c одной строчкой в которой написано:
000.0033
Путём комбинаций кода я понял, что строка
Кусочек:
dataFile = SD.open("/data.txt", FILE_WRITE);
Вопрос прост. В чём проблема, как пофиксить?)