GPS — Esp32 Devkit C V4 simulation

An interactive Esp32 Devkit C V4 circuit simulation you can run free in your browser on Velxio, by tareq-neoaz.

Components

Sketch code

#include <TinyGPSPlus.h>

TinyGPSPlus gps;
HardwareSerial gpsSerial(2);  // UART 2 for GPS
HardwareSerial linkSerial(1); // UART 1 for the wire

void setup() {
  Serial.begin(115200);
  
  // GPS on pins 25 (RX) and 26 (TX)
  gpsSerial.begin(9600, SERIAL_8N1, 25, 26);
  
  // Inter-board link on pins 16 (RX) and 17 (TX)
  linkSerial.begin(9600, SERIAL_8N1, 16, 17);
}

void loop() {
  while (gpsSerial.available() > 0) {
    gps.encode(gpsSerial.read());
  }

  static unsigned long lastTime = 0;
  if (millis() - lastTime > 1000) {
    lastTime = millis();

    if (gps.location.isValid()) {
      linkSerial.print(gps.location.lat(), 6);
      linkSerial.print(",");
      linkSerial.print(gps.location.lng(), 6);
      linkSerial.print(",");
      linkSerial.print(gps.altitude.meters(), 1);
      linkSerial.print(",");
      linkSerial.print(gps.speed.kmph(), 1);
      linkSerial.print(",");
      linkSerial.println(gps.satellites.value());
      
      Serial.println("Sent GPS data over wire!");
    } else {
      // Heartbeat so the receiver knows the wire is alive
      linkSerial.println("0.000000,0.000000,0.0,0.0,0");
    }
  }
}

More projects by tareq-neoaz