Go Down

Topic: falla cambio de fecha Data Logger shield con RTC1307 (Read 475 times) previous topic - next topic

mbarrantes1988

Oct 20, 2017, 05:40 pm Last Edit: Oct 20, 2017, 05:59 pm by mbarrantes1988
Buenas tardes a todos. Escribo a fin de comentar el problema que tengo ya que soy un aficionado a la programacion.
Estoy armando un proyecto para censar 3 temperaturas distintas, mostrarlas en un display y almacenar dichos valores para su posterior estudio. He logrado hacer funcionar todo el sistema pero tengo un inconveniente con la fecha, no con la hora.
La fecha cambia por ejemplo del día 19 al día 20 aproximadamente a las 5am y no a las 24hs(23:59:59).
    Fecha                Hora               Temp1     Temp2      Temp3
19/10/2017   04:59:38 a.m.   24,06 ºC   24,31 ºC   22,87 ºC  (unixtime 1508475578)
20/10/2017   05:14:34 a.m.   23,94 ºC   24,19 ºC   22,75 ºC  (unixtime 1508476474)

La conversión de la de unixtime la hago en excel bajo la formula =(Axx/86400)+25569+(-5/24)
donde xx es el numero de fila. Esta fórmula la encontre por internet y aclaraban que el -5 es por el GMT horario...
La parte del programa que se encarga de grabar dicha información la dejo adjunta.
A que se debe este problema?
Desde ya pido disculpas a los programadores por la forma en que escribo el programa. Obviamente acepto toda sugerencia al respecto. Como no soy experto en la materia de programación van a observar muchas lineas de códigos convertidas a comentarios ya que voy realizando pruebas para su funcionamiento.
Desde ya gracias

Code: [Select]

if (cont == 290){ //cada 10 vueltas del contador son 30 segundos aprox. En este caso graba la info cada
  lcd.clear();        //aprox. 14-15 minutos . 
  lcd.backlight();
lcd.setCursor(1,0);
lcd.print ("GRABANDO DATOS");
lcd.setCursor(1,1);
lcd.print ("NO DESCONECTAR");
delay (100);
//lcd.noBacklight();
delay (1500);
now = RTC.now();
logfile.print(now.unixtime()); // seconds since 1/1/1970
logfile.print(", ");
//logfile.print(count);
//logfile.print(", ");
logfile.print(temperatura);
logfile.print(", ");
logfile.print(temperatura2);
logfile.print(", ");
logfile.print(temperatura3);
logfile.println(", ");
      //if ( count++ > 1 ) {
 logfile.flush(); // if Para forzar la escritura en la SD
        //count = 0 ;       // Cada 64 lecturas en el programa original de la web
        lcd.clear();
          //      }
                cont=0;
       /*if (eco) {
        Serial.print(now.unixtime()); // seconds since 1/1/1970
        Serial.print(", ");
        Serial.print(count);
        Serial.print(", ");
        Serial.print(temperatura);
        Serial.println ("ºC Sensor 1");*/
         // }
       //lcd.backlight();
       lcd.noBacklight();
}

surbyte

Y porqué parcializas el código? Como sabemos nosotros que ocurre con cont

No veo como se incrementa cont para llegar a 290.

Coloca todo el código si supera los 9000 caracteres lo adjuntas.

mbarrantes1988

Mil disculpas! ya encontré la solución al problema. No estaba en el código del programa, estaba en la formula de excel =(Axx/86400)+25569+(-5/24)... Donde -5 corresponde al GMT horario que cada uno posee... en mi caso es -3....

si desea el codigo completo no tengo drama en pasarlo.
Mil gracias por contestar tan pronto!

surbyte

si ya lo resolviste no hace falta pero tal como esta planteado no se puede entender de lo que hablas.
Como ves esa formula no estaba disponible.
Que raro lo que haces!!!

Seria bueno que pusieras todo el código pero para escuchar sugerencias de los foreros para simplificarlo.

Go Up