Codigo en VSCode PlatformIO :
#include <Arduino.h>
#include <SoftwareSerial.h>
#include <TinyGPS.h>
#include <SD.h>
TinyGPS gps;
SoftwareSerial ss(16, 17); // RX, TX (Conecta RX de GPS6MV2 a pin 16 y TX a pin 17 del NodeMCU)
File miArchivo;
void setup()
{
Serial.begin(9600);
ss.begin(9600);
//la tarjeta SDCard se conecta al pin 5 de la nodemcu ESP32
if (!SD.begin(5))
{
Serial.println("Error al inicializar la tarjeta SD");
return;
}
Serial.println("Tarjeta SD inicializada correctamente");
//comprobamos si la tarjeta sdcard tiene el archivo y lo abrimos para escritura
// Si no existe, lo creamos
miArchivo = SD.open("/gps.txt", FILE_WRITE);
if (!miArchivo) {
Serial.println("Error al crear el archivo");
return;
}
}
void loop()
{
bool newData = false;
unsigned long chars;
unsigned short sentences, failed;
// For one second we parse GPS data and report some key values
for (unsigned long start = millis(); millis() - start < 1000;)
{
while (ss.available())
{
char c = ss.read();
// Serial.write(c); // uncomment this line if you want to see the GPS data flowing
if (gps.encode(c)){ // Did a new valid sentence come in?
newData = true;
}
if (newData)
{
float flat, flon;
unsigned long age;
gps.f_get_position(&flat, &flon, &age);
gps.satellites() == TinyGPS::GPS_INVALID_SATELLITES ? 0 : gps.satellites();
gps.hdop() == TinyGPS::GPS_INVALID_HDOP ? 0 : gps.hdop();
char flatStr[12];
char flonStr[12];
dtostrf(flat, 10, 6, flatStr);
dtostrf(flon, 10, 6, flonStr);
//Abrimos el archivo para escritura sin borrar el contenido que tiene
miArchivo = SD.open("/gps.txt", FILE_APPEND);
//En la siguiente linea debe de escribir en la tarjeta sd
miArchivo.print("LAT= ");
miArchivo.print(flatStr);
miArchivo.print(" LON= ");
miArchivo.println(flonStr);
miArchivo.close();
}
}
}
}
Codigo en el archivo platformio.ini para importar las librerias:
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:esp32doit-devkit-v1]
platform = espressif32
board = esp32doit-devkit-v1
framework = arduino
lib_deps = https://github.com/plerup/espsoftwareserial.git
https://github.com/mikalhart/TinyGPS.git
Esquema electrico:

Video de youtube explicando el funcionamiento:
Deja una respuesta Cancelar la respuesta