Paso 9: Codificación de datos
Añadir esta línea en la definición
//*************************************************************************
//** LIBRARY ** //*************************************************************************
#include < TinyGPS.h > / / ++ Biblioteca GPS
#include < SPI.h > / / ++ Biblioteca #include SPI
++ Biblioteca SD / /
*************************************************************************
//** SD ** //*************************************************************************
* Tarjeta SD conectada al bus SPI como sigue:
** UNO: MOSI - pin 11, pin MISO - pin 12, CLK - pin 13, CS - 4
(Puede ser cambiado el pin CS) y pin #10 (SS) debe ser una salida
** Mega: Pin MOSI - pin 51, MISO - pin 50, CLK - 52, CS - pin 53
(Puede ser cambiado el pin CS) y pin #52 (SS) debe ser una salida
** Leonardo: Conectar hardware SPI vía ICSP cabecera
Pin 4 utilizado aquí para la consistencia con otra Arduino ejemplos const int chipSelect = 53;
++ Selector de pin SD
//*************************************************************************
//** GPS ** //*************************************************************************
TinyGPS gps; ++ GPS en Serial2
void gpsdump (TinyGPS & gps); // ++
bool newdataGPS = false; // ++
Añadir esta línea en el setup()
//***********************************************************************
//** GPS serial setup ** //***********************************************************************
Serial2.Begin (9600); // ++
retrasar (1000); // ++
//***********************************************************************
//** SD Initializing ** //***********************************************************************
Asegúrese que el pasador seleccione predeterminado chip es / / ++
salida, incluso si usas te don´t: / / ++
pinMode (SS, salida); // ++
Serial.println (F ("tarjeta INICIALIZACION SD...")); // ++
ver si la tarjeta está presente y puede ser inicializado: / / ++
if (!. SD.begin(chipSelect)) {/ / ++
Serial.println (F ("tarjeta de fallido, o no presente")); // ++
Don´t hacer nada más: / / ++
retorno; // ++
} else {/ / ++
Serial.println (F ("tarjeta de SD OK")); // ++
} // ++
Agregar estas líneas en el void loop()
serialEvent2(); ++ evento serie de GPS llamada
Código SeriaEvent2
//*************************************************************************
//** GPS serialEvent ** //*************************************************************************
void serialEvent2() {/ / ++
mientras que (Serial2.available()) {/ / ++
char c = Serial2.read(); // ++
Serial.Print(c); Comentario para ver datos GPS brutos / / ++
Si (gps.encode(c)) {/ / ++
newdataGPS = true; // ++
rotura; Comentario para imprimir nuevos datos inmediatamente. // ++
} // ++
} // ++
} // ++
Añadir GPS descarga voud
//*************************************************************************
//** gps dump ** //*************************************************************************
** El intervalo válido de la latitud en grados es -90 y + 90. **
** Longitud está en la gama de -180 y + 180 **
** especificar la posición de este a oeste **
** "123456789 1234567890" **
//** "000.00000;0000.00000" ** //*************************************************************************
void gpsdump (TinyGPS & gps) / / ++
{ // ++
int año; // ++
mes de byte, día, hora, centésimas de segundo, de minuto, // ++
edad largo sin firmar; // ++
GPS.f_get_position (& LATGP00 & LONGP00 & edad); // ++
GPS.crack_datetime (& año y mes y día y hora, / / ++
y minutos, segundos, centésimas & & edad); // ++
largo lat, lon; // ++
GPS.get_position (& lat, lon & edad); // ++
// *********************************************************************
** hacer una cadena de montaje de los datos para iniciar sesión: **
// *********************************************************************
Cadena dataString = ""; // ++
dataString += (lat / 100000); // ++
dataString += "."; // ++
dataString += lat - (lat / 100000) * 100000; // ++
dataString += ""; // ++
dataString += (lon / 100000); // ++
dataString += "."; // ++
dataString += lon - (lon / 100000) * 100000; // ++
dataString += ""; // ++
dataString += cadena (static_cast(day)); // ++
dataString += "/"; // ++
dataString += cadena (static_cast(month)); // ++
dataString += "/"; // ++
dataString += String (año); // ++
dataString += ""; // ++
dataString += cadena (static_cast(hour)); // ++
dataString += ":"; // ++
dataString += cadena (static_cast(minute)); // ++
dataString += ":"; // ++
dataString += cadena (static_cast(second)); // ++ //*************************************************************************
//** SAVE TO SD ** //*************************************************************************
Abra el archivo. Tenga en cuenta que sólo un archivo puede ser abierto a la vez, **
así que hay que cerrar esta uno antes de abrir otro. ** //*************************************************************************
Archivo de datos de archivo = SD.open ("gps00.txt", FILE_WRITE); // ++
// ***********************************************************************
** Si está disponible el archivo, escribir en él: **
// ***********************************************************************
Si (dataFile) {/ / ++
dataFile.println (dataString); // ++
dataFile.close(); // ++
} else {/ / ++
Serial.println (F "(escritura de la SD del ERROR del)); // ++
} // ++
}
Si quieres descargar el código, por favor visite esta página.
http://iot.dataino.it/beta/View/site/Lora-Arduino-GPS.html