Модуль читает показания датчиков и записывает с определенными параметрами их в файл на внешний накопитель
C++
void save_log_weather()
{
if (millis() - timer_save_weather >= save_weather_interval)
{
if (save_weather)
{
timer_save_weather = millis();
int temp_log_save = bme.readTemperature();
int press_log_save = (bme.readPressure() / 133.32);
int hum_log_save = bme.readHumidity();
measurement_t m = mhz19_uart->getMeasurement();
int ppm_save = (m.co2_ppm);
logFile = SD.open("/log_weather.txt", FILE_APPEND);
if (logFile)
{
logFile.print(rtc.getDayDate());
logFile.print("; ");
logFile.print(rtc.getTime(true));
logFile.print("; ");
logFile.print(temp_log_save);
logFile.print("; ");
logFile.print(press_log_save);
logFile.print("; ");
logFile.print(hum_log_save);
logFile.print("; ");
logFile.print(ppm_save);
logFile.println(); // Добавление символа новой строки
logFile.flush();
logFile.close();
Serial.println("Save log_weather file OK!");
}
else
{
Serial.println("Error opening log file");
}
}
}
}
void save_log(void *parameter)
{
if (ir > 20000)
{
// Serial.println("ir > 20000");
logFile = SD.open("/log.txt", FILE_APPEND);
if (logFile && average_bpm > 20 && s_spo2 > 30)
{ // проверяем, что файл открыт
// read_eeprom(id_save);
preferences.begin("pulse_app", false);
id_save = preferences.getUInt("id_log", 0);
// rtc.DSread();
id_save++;
if (id_save >= 999999)
{
id_save = 0;
}
logFile.print(id_save);
logFile.print("; ");
logFile.print(rtc.getDayDate());
logFile.print("; ");
logFile.print(rtc.getTime(true));
logFile.print("; ");
logFile.print(average_spo2);
logFile.print("; ");
logFile.print(average_bpm);
logFile.print("; ");
logFile.println(eventIndex);
logFile.flush(); // записываем данные в файл
Serial.print("Log file save ok: ");
Serial.println(rtc.getTime(true));
preferences.putUInt("id_log", id_save);
preferences.end();
delay(100);
if (sms_post_1)
{
sendsms_post_1();
}
}
else
{
Serial.println("Log file is not open.");
}
logFile.close();
}
// shouldRunSaveLog = false;
save_log_TaskHandle = NULL; // Установка значения NULL
vTaskDelete(NULL); // Завершение задачи
}