#include <SoftwareSerial.h>
#include <TinyGPS++.h>
// Define GPS module connection pins
SoftwareSerial gpsSerial(4, 3); // RX, TX
TinyGPSPlus gps; // Create TinyGPS++ object
float lat,lon;
void setup() {
pinMode(2, INPUT);
Serial.begin(9600); // Start Serial Monitor
gpsSerial.begin(9600); // Start GPS communication
//Serial.println("GPS Module Testing...");
}
void loop() {
while (gpsSerial.available() > 0)
{
gps.encode(gpsSerial.read()); // Feed data into GPS object
if (gps.location.isUpdated())
{
// Print the latitude and longitude
Serial.print("Latitude: ");
Serial.println(gps.location.lat(), 6);
Serial.print("Longitude: ");
Serial.println(gps.location.lng(), 6);
Serial.print("Altitude: ");
Serial.println(gps.altitude.meters());
lat=(gps.location.lat(), 6);
lon=(gps.location.lng(), 6);
}
if(digitalRead(2)==LOW)
{
Serial.println("AT"); // Test the communication
delay(1000);
Serial.println("AT+CMGF=1"); // Set SMS mode to text
delay(1000);
Serial.println("AT+CMGS=\"+1234567890\""); // Replace with the target phone number
delay(1000);
Serial.print("latitude"); // Message content
Serial.print(lat);
Serial.print("longitude"); // Message content
Serial.print(lon);
delay(1000);
Serial.write((char)26);
}
}
}