Paso 4: Tiempo (UTC) del GPS conversión de hora local
El sketch de Arduino todo está conectado. Me explico cómo programé para convertir el UTC a hora local a continuación que es una parte del bucle principal.Si (gpsYear %4 == 0) DaysAMonth [1] = 29; cheque de año bisiesto
Si es año bisiesto, añadir un día al número de días de febrero. Realmente el año bisiesto es no simplemente cada 4 años pero hay más condiciones pero para los próximos 10-20 años no va a suceder y que simplemente podemos calcular cada 4 años.
Ajuste de zona horaria
gpsHour += zona horaria;
Zona horaria es una constante definida al principio del programa. Usted necesitará cambiar este número según donde vives.
Ajuste de DST
Si (gpsMonth * 100 + gpsDay > = DSTbegin [gpsYear-13] & &
gpsMonth * 100 + gpsDay < DSTend[gpsYear-13]) gpsHour += 1;
Se ha añadido una tabla de DST (horario) en una matriz, la fecha de inicio y fecha final. Si la fecha actual es dentro de esta gama, añadir 1 hora.
La sección siguiente es corregir la fecha y después del ajuste de zona horaria. Por ejemplo, si la hora ajustada es menor que 0 o mayor de 24, necesitará ajustar el día así. Como tal, necesitará ajustar el mes y año, también.
Si (gpsHour < 0)
{
gpsHour += 24;
gpsDay-= 1;
Si (gpsDay < 1)
{
Si (gpsMonth == 1)
{
gpsMonth = 12;
gpsYear-= 1;
}
otra cosa
{
gpsMonth-= 1;
}
gpsDay = DaysAMonth [gpsMonth-1];
}
}
Si (gpsHour > = 24)
{
gpsHour-= 24;
gpsDay += 1;
Si (gpsDay > DaysAMonth[gpsMonth-1])
{
gpsDay = 1;
gpsMonth += 1;
Si (gpsMonth > 12) gpsYear += 1;
}
}
Eso es todo para este instructable. Espero que esto ayude a alguien que quiere convertir el tiempo del GPS a la hora local.
Gracias por leerme.