Ajuste GPS fecha y hora a su zona horaria

Puede que sea totalmente incorrecto por poner este Instructables pero he luchado para encontrar una manera fácil de corregir datos de fecha y hora de GPS a mi zona horaria aquí en Australia. He realizado algunos proyectos de Arduino que han incluido un módulo de GPS con algún tipo de registro de datos. Cada vez han tenido dificultades convertir hora UTC capturado de la cadena de datos NMEA a hora local o tienen simplemente para arriba y un RTC en mi proyecto.

Hay que algunas soluciones en la web incluyen un par aquí en Instructables, pero como un programador aficionado he luchado para integrar el código en mis propios bosquejos.

Esperemos que esta publicación le dará los igualmente luchando, una solución fácil. He tratado de mantener el código tan simple como sea posible con un montón de opciones para sus conexiones seriales de instalación, Uno o Mega, software y hardware. También he puesto el cálculo de la zona horaria en una función simple que se puede copiar y pegar directamente en su propio dibujo.

Usted necesitará instalar la TinyGPS ++ Library y la Biblioteca de AltSoftSerial para el bosquejo para compilar correctamente. He tenido mejor compatibilidad con los módulos GPS que tengo usando la biblioteca TinyGPS ++. La biblioteca de AltSoftSerial hace más fácil tener múltiples dispositivo serie conectado a tu Uno. Esto no es un problema cuando se utiliza un Mega pero si usted quiere conectar dispositivos serie en pines digitales diferentes, esta es la biblioteca más fácil que he encontrado.

Aquí está el bosquejo siguiente:

 #include <Time.h> // Time Library #include <TinyGPS++.h> // GPS Library #include <AltSoftSerial.h> // Allows two Serial connections // Set GPS RX and TX pins if using software serial connections. // See below to use hardware serial connections //static const int RXPin = 4, TXPin = 3; // Example Uno static const int RXPin = 48, TXPin = 46; // Example Mega static const uint32_t GPSBaud = 4800; //static const uint32_t GPSBaud = 9600; // The TinyGPS++ object TinyGPSPlus gps; // Serial connection to the GPS device AltSoftSerial Serial_GPS; //#define Serial_GPS Serial1 // Uncomment this line & comment // above line to use a hardware // Serial Port // Change this value to suit your Time Zone const int UTC_offset = 10; // Eastern Australia Time time_t prevDisplay = 0; // Count for when time last displayed void setup() { Serial.begin(9600); Serial_GPS.begin(GPSBaud); // Start GPS Serial Connection Serial.println("Waiting for GPS time ... "); } void loop() { GPS_Timezone_Adjust(); // Call Time Adjust Function } void GPS_Timezone_Adjust(){ while (Serial_GPS.available()) { if (gps.encode(Serial_GPS.read())) { int Year = gps.date.year(); byte Month = gps.date.month(); byte Day = gps.date.day(); byte Hour = gps.time.hour(); byte Minute = gps.time.minute(); byte Second = gps.time.second(); // Set Time from GPS data string setTime(Hour, Minute, Second, Day, Month, Year); // Calc current Time Zone time by offset value adjustTime(UTC_offset * SECS_PER_HOUR); } } // -- Delete this section if not displaying time ------- // if (timeStatus()!= timeNotSet) { if (now() != prevDisplay) { prevDisplay = now(); SerialClockDisplay(); } } // -- Also delete the SerialClockDisplay()function ---- // } // Keep void SerialClockDisplay(){ // Serial Monitor display of new calculated time - // once adjusted GPS time stored in now() Time Library // calculations or displays can be made. if (hour() < 10) Serial.print(F("0")); Serial.print(hour()); Serial.print(F(":")); if (minute() < 10) Serial.print(F("0")); Serial.print(minute()); Serial.print(F(":")); if (second() < 10) Serial.print(F("0")); Serial.print(second()); Serial.print(" "); if (day() < 10) Serial.print(F("0")); Serial.print(day()); Serial.print(F("/")); if (month() < 10) Serial.print(F("0")); Serial.print(month()); Serial.print(F("/")); Serial.println(year()); } 

Espero que haya encontrado este útil y hace que su próximo proyecto de registro de datos GPS mucho más fácil.

Artículos Relacionados

Reloj de sombrero con múltiple soporte de zona horaria y la funcionalidad GPS

Reloj de sombrero con múltiple soporte de zona horaria y la funcionalidad GPS

Yo quería un reloj. Pero no cualquier reloj! Quería ser capaz de cambiar la zona horaria se muestra en la tapa de un interruptor. Y también quería utilizar en Burning Man, para mostrar mi ubicación no en tiempo, sino en el sistema de direccionamiento
LinkIT uno: Fecha y hora

LinkIT uno: Fecha y hora

Tiempo y las fechas exactas son una característica importante para muchos programas. El linkit uno proporciona es en tiempo propio hardware, en la época de estilo Unix (tiempo desde el 01 de enero de 1970).Este Instructable repasará la linkit una imp
Registro de datos, fecha y hora y datos del Monitor de Arduino con un increíble Bash-One-Liner

Registro de datos, fecha y hora y datos del Monitor de Arduino con un increíble Bash-One-Liner

La descripción no cabe en una línea, pero el código no!Se trata de una línea de bash para registro de datos desde Arduino y para el procesamiento (por ejemplo, sellado de tiempo, reaccionando a las lecturas del sensor, etc.) y luego redirigir el arch
Estación de Control remoto IR para Android - baje la TV

Estación de Control remoto IR para Android - baje la TV

Nota: esta guía también puede encontrarse en TECHBITAR.COMACTUALIZACIÓN28 de noviembre de 2013: Aparece en prototipos peligroso http://goo.gl/FjwNoQINTRODUCCIÓNEn esta guía voy a explicar la elaboración y operación de un circuito simple de basados en
Nintendo Game Boy se convirtió en un reloj Digital

Nintendo Game Boy se convirtió en un reloj Digital

En este instructable te voy a mostrar cómo hice mi propio reloj digital temática de videojuegos retro de un viejo roto a Nintendo Game Boy.Lo que necesita; Un viejo roto Nintendo Game Boy no le importa cortar, barato reloj despertador digital sobre e
Cómo jugar GBA juegos en iDevice (NO Jailbreak)

Cómo jugar GBA juegos en iDevice (NO Jailbreak)

siempre he sido un fan de jailbreaking. Todos los trucos cool apps gratis y lo más importante, el emulador de Gameboy Advance (Pokémon FireRed, aquí vengo!) Mi primer jailbreak de experiencia fue con viejo iPhone 3 g mi padre. Era realmente lento, te
Cómo descargar Torrent archivos desde tu iPhone, iPod Touch, iPad sin romperse cárcel

Cómo descargar Torrent archivos desde tu iPhone, iPod Touch, iPad sin romperse cárcel

esto es lo que usted espera de muchos días. Ahora es posible descargar torrent archivos en tu ipad iPhone iPod touch sin Jailbreak. SÍ usted oído derecho sin Jailbreak.Paso 1: Abrir este sitio web Antes de descargar los archivos torrent primero debes
Tiempo (UTC) del GPS a la conversión de la hora local utilizando Arduino

Tiempo (UTC) del GPS a la conversión de la hora local utilizando Arduino

tengo un receptor GPS Holux M-1000, que se puede utilizar con un ordenador portátil, una PDA o un teléfono móvil a través de Bluetooth.  Yo había utilizado para la navegación con la Palm TX y Treo700p (sí, llevo mucho tiempo un gran fan de la serie d
Geolocalizar tu cámara de fotos en Lightroom con un GPS Smartphone

Geolocalizar tu cámara de fotos en Lightroom con un GPS Smartphone

georeferenciación es un proceso que agrega información de ubicación geográfica a los metadatos de tus fotos. Por ejemplo, si usted tomó una foto del puente Golden Gate, una foto con geoetiquetas tendrá la ubicación de donde se tomó la foto cerca del
GeoTagging con un Standalone GPS unidad & GeoSetter

GeoTagging con un Standalone GPS unidad & GeoSetter

yo he buscado otros Instructables sobre geotagging y todos los que encontré utilizan Adobe Photoshop Lightroom para hacer la georeferenciación. El coste de Adobe Photoshop Lightroom desde $170 a $300, Lightroom puede ser demasiado costoso para el fot
Conecte su receptor GPS LS20031 a Google Earth mediante PC

Conecte su receptor GPS LS20031 a Google Earth mediante PC

versiones31 de Oct: Números de pin corregida para cómo cablear el IC SN74AHC125.INTRODUCCIÓNEn esta guía será gancho-para arriba el receptor de GPS de LS20031 a un PC (es muy probable que un ordenador portátil) a la interfaz de Google Earth. Se trata
Registrador de datos geo: Arduino + GPS + SD + acelerómetro para registrar, sello de tiempo y datos del sensor geo-tag

Registrador de datos geo: Arduino + GPS + SD + acelerómetro para registrar, sello de tiempo y datos del sensor geo-tag

versiones17 de octubre de 2013: he publicado una guía sobre el uso de tu teléfono Android para llevar a cabo una tarea similar al aprovechar tu Android dispositivo de construido en GPS y sensores.06 de febrero de 2013: Aparece en GeoAwesomeness http:
Termostato zona 3 Arduino Powered

Termostato zona 3 Arduino Powered

Estaba mirando todos los internet swoopy zoomy termostatos conectados y controlables. 'Yo', me dije, "deberíamos hacer uno de esos". No parecía tan entusiasmado-es decir, ¿qué sabemos sobre hardware, firmware, electrónica o HVAC? Bueno, ahora es
Arduino GPS/GSM Tracker

Arduino GPS/GSM Tracker

Nuestra comunidad permite carros de golf en los caminos públicos para reducir la contaminación y congestión y mi madre usa para ella ampliamente. Carritos de golf no tienen mucho en el camino de seguridad, por la paz de la mente, pensé que rodarían m