As the title says, I can't save the data after 14 recordings.
Here's my codes:
#include <DS3231.h>
#include <SPI.h>
#include <SD.h>
DS3231 rtc(SDA,SCL);
Time t;
File datalog,counter;
const int temp = 0;
const int chipSelect = 4;
void setup() {
Serial.begin(9600);
rtc.begin();
rtc.setDate(2, 5, 2018);//not permanent
rtc.setTime(10,30,00); //not permanent
SD.begin(chipSelect);
}
void loop() {
if(timing())
{
String dataStream = getDateTime();
dataStream += senRead();
Serial.println(dataStream);
fileWriting(dataStream);
delay(1000);
}
}
String getDateTime()
{
t = rtc.getTime();
String dateData=rtc.getDateStr();
dateData += ",";
dateData += rtc.getTimeStr();
dateData +=",";
return dateData;
}
float senRead()
{
float temp = analogRead(temp);
float stepFactor = 0.0048828125;
double celFactor = stepFactor * 100;
temp = temp * celFactor;
return temp;
}
void fileWriting(String info)
{
File dataRecord = SD.open("datalog.txt", FILE_WRITE);
if(dataRecord)
{
dataRecord.println(info);
dataRecord.close();
Serial.print("Date: ");
Serial.println(info.substring(0,10));
Serial.print("Time: ");
Serial.println(info.substring(11,19));
Serial.print("Temperature: ");
Serial.print(info.substring(20,25));
Serial.println(" Celsius");
Serial.println("Data has been recorded");
Serial.print(counterWriting());
Serial.println(" Records in total.");
}
else
{
Serial.println("Error: can't open file.");
}
}
bool timing()
{
String timing = rtc.getTimeStr();
timing = timing.substring(6);
if((timing=="30")||(timing=="00"))
return true;
else
return false;
}
int counterWriting()
{
counter = SD.open("counter.txt",FILE_READ);
if(counter)
{
while(counter.available())
{
String ctr = counter.readStringUntil("");
int line = ctr.toInt();
line = line + 1;
counted(line);
return line;
}
}
}
void counted(int cnt)
{
SD.remove("counter.txt");
counter = SD.open("counter.txt", FILE_WRITE);
if(counter)
{
counter.println(cnt);
counter.close();
Serial.println(cnt);
}
}
Here are some of the output I collected.
02.05.2018,10:36:00,24.41
Date: 02.05.2018
Time: 10:36:00
Temperature: 24.41 Celsius
Data has been recorded
13
13 Records in total.
02.05.2018,10:36:30,23.93
Date: 02.05.2018
Time: 10:36:30
Temperature: 23.93 Celsius
Data has been recorded
14 Records in total.
02.05.2018,10:37:00,24.41
Error: can't open file.
02.05.2018,10:37:30,24.41
Error: can't open file.
02.05.2018,10:38:00,24.90
Error: can't open file.
02.05.2018,10:38:30,24.41
Error: can't open file.
02.05.2018,10:39:00,24.41
Error: can't open file.
02.05.2018,10:39:30,24.41
Error: can't open file.
02.05.2018,10:40:00,24.41
Error: can't open file.
Help please.