Diferencia entre revisiones de «time t»

De ArduWiki
Saltar a: navegación, buscar
(Ejemplo 2)
(Ejemplo 3)
Línea 33: Línea 33:
  
 
== Ejemplo 3 ==
 
== Ejemplo 3 ==
Con ese ejemplo Arduino espeta que se envie desde el monitor un tiempo UNIX del formato T1531526400 (2018-7-14 0:0:0).
+
Con este ejemplo Arduino espera que se envíe desde el monitor un tiempo UNIX del formato T1531526400 (2018-7-14 0:0:0).
  
 
<syntaxhighlight lang="c++">
 
<syntaxhighlight lang="c++">
 
#include <TimeLib.h>
 
#include <TimeLib.h>
#define TIME_HEADER  "T"  //Encabezado para enviar hora unix
 
  
 
void setup(){
 
void setup(){
 
   Serial.begin(9600);
 
   Serial.begin(9600);
 
   pinMode(13, OUTPUT);
 
   pinMode(13, OUTPUT);
   Serial.println("Esperando mensaje de sicronizacion por puerto serie");
+
   Serial.println("Esperando tiempo UNIX por puerto serie");
 
}
 
}
  
Línea 90: Línea 89:
  
 
void sincroniza() {
 
void sincroniza() {
  unsigned long pctime;
 
 
   const unsigned long DEFAULT_TIME = 1514764800; //1-ENE-2018
 
   const unsigned long DEFAULT_TIME = 1514764800; //1-ENE-2018
  
   if (Serial.find(TIME_HEADER)) {
+
   if (Serial.find("T")) {
       pctime = Serial.parseInt();
+
       unsigned long pc = Serial.parseInt();
 
       //Controla valides mayor a 1-ENE-2018
 
       //Controla valides mayor a 1-ENE-2018
       if (pctime >= DEFAULT_TIME) {  
+
       if (pc >= DEFAULT_TIME) {  
         setTime(pctime);      //Ajusta la fecha-hora
+
         setTime(pc);      //Ajusta la fecha-hora
 
       }
 
       }
 
   }
 
   }

Revisión del 00:18 12 jul 2018

Descripcion

time_t es un tipo unsigned long usado para almacenar los segundos transcurridos desde el 1-ENE-1970 o también llamada fecha Unix.

Sintaxis

time_t variable [= valor];

Parametros

Comentarios

  • La libreria Time.h agrega la funcionalidad de reloj a Arduino con o sin hardware externo. Permite que un boceto obtenga la hora y la fecha como: segundo, minuto, hora, día, mes y año.
  • También proporciona tiempo time_t estándar, por lo que los tiempos transcurridos se pueden calcular fácilmente y los valores de tiempo se pueden compartir en diferentes plataformas.

Advertencias

  • Tenga en cuenta que se requiere un parámetro para estas funciones de cadena. El argumento NO es la marca de tiempo, por ejemplo, time_t, pero debe ser algo así como t.month(). Entonces monthStr(month()) o dayStr(día de la semana()) funcionará.

Ejemplo 1

void setup(){
   setTime(10,0,0,14,7,2018);  //h,min,seg,dia,mes,año
}
void loop(){
}

Ejemplo 2

Si usas la libreria RTClib.h tendras disponible la clase DateTime.

DateTime hoy = rtc.noy(); time_t unix = hoy.unixtime(); </syntaxhighlight>

Ejemplo 3

Con este ejemplo Arduino espera que se envíe desde el monitor un tiempo UNIX del formato T1531526400 (2018-7-14 0:0:0).

#include <TimeLib.h>

void setup(){
   Serial.begin(9600);
   pinMode(13, OUTPUT);
   Serial.println("Esperando tiempo UNIX por puerto serie");
}

void loop(){    
   if (Serial.available()) {
      sincroniza();
   }
   if (timeStatus()!= timeNotSet) {
      reloj();  
   }
   if (timeStatus() == timeSet) {
      digitalWrite(13, HIGH); //Sincronizado
   }else{
      digitalWrite(13, LOW);  //Falta sincronizar
   }
   delay(1000);
}

void reloj(){
   Serial.print(year()); 
   Serial.print("-");
   if (month()<10){
      Serial.print('0');
   }
   Serial.print(month());
   Serial.print("-");
   if (day()<10){
      Serial.print('0');
   }
   Serial.print(day());
   Serial.print(" ");
   if (hour()<10){
      Serial.print('0');
   }
   Serial.print(hour());
   Serial.print(":");
   if (minute() < 10){
      Serial.print('0');
   }
   Serial.print(minute());
   Serial.print(":");
   if (second() < 10){
      Serial.print('0');
   }
   Serial.println(second());
}

void sincroniza() {
   const unsigned long DEFAULT_TIME = 1514764800; //1-ENE-2018

   if (Serial.find("T")) {
      unsigned long pc = Serial.parseInt();
      //Controla valides mayor a 1-ENE-2018
      if (pc >= DEFAULT_TIME) { 
         setTime(pc);      //Ajusta la fecha-hora
      }
   }
}

Vea tambien

Referencias