Como te dice @cuantrom, separa las cosas y deja de buscar algo que te resuelva todo.
Lo que ocurre es que buscas la solución fácil y generalmente no existe.
Si aprendes a grabar en una SD y como se hace y luego, leer el RTC e ir pasando los datos verás que es muy simple o bueno te llevará un poco pero haz sketchs pequeños que te sirvan, y den respuestas.
El código que encontraste ya te da una muy buena aproximación a lo que necesitas.
Pero hace todo en el setup y no en el loop de modo que es un ejemplo para entender como funciona el ESP loggeando.
Tiene un sensor que tal vez sea un NTC o un simple divisor de tensión en el GPIO36
Comparto que usar una librería con el RTC es mas fácil de entender que esto pero bueno son basicamente lo mismo.
El procedimiento logSDCard() almacena fecha y hora
A mi me gusta usar sprintf
con sprintf lo usarías asi.
debes crear un buffer de datos, algo con tamaño para almacenar todo.
// como global.
char buffer[50]; // puse 50 bytes pero no tengo idea. Cuenta cuantos bytes se usan mas 1 para dar el fin al buffer.
// esto reemplaza todos tus file.print()
sprintf(buffer, "%02d%02d%02d %02d:%02d:%02d Sensor 1 %f\n", rtc.year(), rtc.month(), rtc.hour(), rtc.minute(), rtc.second(), Vrdata);
file.print(buffer);
Y listo.
Lo que tienes esta bien pero el ultimo paso solo muestra datalog en el puerto Serie, no lo almacena enla FS. Pense que usabas una SD pero este ejemplo usa la FS o sea el FileSystem del ESP. No son lo mismo pero la aproximación sirve.