0% found this document useful (0 votes)
23 views

Nano

The document contains code for tracking a vehicle's location using a GPS and GSM module connected to an Arduino. It initializes the modules, gets location data from the GPS, sends an SMS alert with the coordinates and a Google Maps URL, and displays status messages on an LCD screen.

Uploaded by

yasin Mohmed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views

Nano

The document contains code for tracking a vehicle's location using a GPS and GSM module connected to an Arduino. It initializes the modules, gets location data from the GPS, sends an SMS alert with the coordinates and a Google Maps URL, and displays status messages on an LCD screen.

Uploaded by

yasin Mohmed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

#include <TinyGPS++.

h>
#include <SoftwareSerial.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(13, 12, 11, 10, 9, 8);


SoftwareSerial gpsSerial(4, 3);
SoftwareSerial gsmSerial(7, 6);
static const uint32_t GPSBaud = 9600;
TinyGPSPlus gps;
int temp = 0;
String stringVal = "";

void setup() {
Serial.begin(9600);
gpsSerial.begin(GPSBaud);
gsmSerial.begin(9600);
lcd.begin(16, 2);
}

void loop() {
serialEvent();

while (temp) {
while (gpsSerial.available() > 0) {
gps.encode(gpsSerial.read());
// ...
}
}
// ...
}

void serialEvent() {
while (Serial.available() > 0) {
if (Serial.find("Track Vehicle")) {
temp = 1;
break;
} else {
temp = 0;
}
}
}

void gsm_init() {
lcd.clear();
lcd.print("Finding Module..");
boolean at_flag = 1;

while (at_flag) {
Serial.println("AT");
delay(1);

while (Serial.available() > 0) {


if (Serial.find("OK"))
at_flag = 0;
}
delay(1000);
}
lcd.clear();
lcd.print("Module Connected..");
delay(1000);
lcd.clear();
lcd.print("Disabling ECHO");
boolean echo_flag = 1;

while (echo_flag) {
Serial.println("ATE0");

while (Serial.available() > 0) {


if (Serial.find("OK"))
echo_flag = 0;
}
delay(1000);
}

lcd.clear();
lcd.print("Echo OFF");
delay(1000);
lcd.clear();
lcd.print("Finding Network..");
boolean net_flag = 1;

while (net_flag) {
Serial.println("AT+CPIN?");

while (Serial.available() > 0) {


if (Serial.find("+CPIN: READY"))
net_flag = 0;
}
delay(1000);
}

lcd.clear();
lcd.print("Network Found..");
delay(1000);
lcd.clear();
}

void init_sms() {
Serial.println("AT+CMGF=1");
delay(400);
Serial.println("AT+CMGS=\"+252906034727\""); // use your 10 digit cell no. here
delay(400);
}

void send_data(String message) {


Serial.print(message);
delay(200);
}

void send_sms() {
Serial.write(26);
}

void lcd_status() {
lcd.clear();
lcd.print("Message Sent");
delay(2000);
lcd.clear();
lcd.print("System Ready");
}

void tracking() {
init_sms();
send_data("Vehicle Tracking Alert:");
Serial.println(" ");
send_data("Your Vehicle Current Location is:");
Serial.println(" ");
Serial.print("Latitude: ");
Serial.print(gps.location.lat(), 6);
Serial.print("\n Longitude: ");
Serial.println(gps.location.lng(), 6);

// https://www.google.com/maps/@8.2630696,77.3022699,14z
String googleMapsURL = "https://www.google.com/maps/@" + String(gps.location.lat(), 6)
+ "," + String(gps.location.lng(), 6) + ",14z";

Serial.println(googleMapsURL);
send_sms();
delay(2000);
lcd_status();
}

You might also like