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

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);          // Завершение задачи
}