Tech Gyan Set
Published © MIT

Real-Time 4G LTE Vehicle Tracking & Engine Lock System

Real-time 4G LTE vehicle tracker with remote engine lock for enhanced anti-theft security. πŸš€

BeginnerFull instructions provided8 hours626
Real-Time 4G LTE Vehicle Tracking & Engine Lock System

Things used in this project

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Code

1️⃣ Required Libraries + Pin Definitions

C/C++
πŸ“ Use:
Ye section hardware initialization aur UART setup ke liye hai.
// ===== Libraries =====
#include <TinyGPS++.h>     // GPS data parsing
#include <HardwareSerial.h>

// ===== Pin Configuration =====
#define RELAY_PIN 23       // Engine lock relay
#define GPS_RX 16          // GPS TX connected here
#define GPS_TX 17
#define LTE_RX 27          // LTE TX connected here
#define LTE_TX 26

// ===== Objects =====
TinyGPSPlus gps;           
HardwareSerial GPS_Serial(1);   // UART1 for GPS
HardwareSerial LTE_Serial(2);   // UART2 for LTE

πŸ”Ÿ Remote Engine Lock Function

C/C++
πŸ“ Use:
Relay ke through ignition control karta hai.
void lockEngine() {
  digitalWrite(RELAY_PIN, HIGH);
  engineLocked = true;
  Serial.println("πŸ”’ Engine Locked");
}

void unlockEngine() {
  digitalWrite(RELAY_PIN, LOW);
  engineLocked = false;
  Serial.println("πŸ”“ Engine Unlocked");
}

1️⃣1️⃣ Main Loop

C/C++
πŸ“ Use:
Main runtime logic handle karta hai.
void loop() {

  readGPS();  // Read location continuously

  // Send data every 10 seconds
  if (millis() - lastSendTime > 10000) {
    sendToServer();
    lastSendTime = millis();
  }

  checkTheft();  // Check theft condition

  delay(1000);
}

2️⃣ Global Variables

C/C++
πŸ“ Use:
Vehicle data aur engine state track karne ke liye.
float latitude = 0.0;
float longitude = 0.0;
float speed_kmph = 0.0;

bool engineLocked = false;
bool ignitionStatus = true;  // Assume ignition ON
unsigned long lastSendTime = 0;

3️⃣ Setup Function

C/C++
πŸ“ Use:
Hardware initialize karta hai aur LTE setup start karta hai.
void setup() {
  Serial.begin(115200);

  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, LOW); // Engine unlocked by default

  // GPS UART start
  GPS_Serial.begin(9600, SERIAL_8N1, GPS_RX, GPS_TX);

  // LTE UART start
  LTE_Serial.begin(9600, SERIAL_8N1, LTE_RX, LTE_TX);

  delay(2000);
  initLTE();

  Serial.println("πŸš€ Vehicle Tracker Started");
}

4️⃣ LTE Initialization Function

C/C++
πŸ“ Use:
LTE module ko network pe connect karta hai.
void initLTE() {
  sendAT("AT");            // Check module
  sendAT("ATE0");          // Echo OFF
  sendAT("AT+CGATT=1");    // Attach to network
  sendAT("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");
  sendAT("AT+SAPBR=1,1");  // Open bearer
}

5️⃣ AT Command Helper Function

C/C++
πŸ“ Use:
AT command send karne aur response print karne ke liye.
void sendAT(String cmd) {
  LTE_Serial.println(cmd);
  delay(1000);
  while (LTE_Serial.available()) {
    Serial.write(LTE_Serial.read());
  }
}

6️⃣ GPS Reading Function

C/C++
πŸ“ Use:
Real-time location aur speed read karta hai.
void readGPS() {
  while (GPS_Serial.available()) {
    gps.encode(GPS_Serial.read());
  }

  if (gps.location.isValid()) {
    latitude = gps.location.lat();
    longitude = gps.location.lng();
    speed_kmph = gps.speed.kmph();

    Serial.print("Lat: ");
    Serial.println(latitude);
    Serial.print("Lng: ");
    Serial.println(longitude);
    Serial.print("Speed: ");
    Serial.println(speed_kmph);
  }
}

7️⃣ Send Data to Server (HTTP Example)

C/C++
πŸ“ Use:
Location data cloud pe send karta hai.
void sendToServer() {
  String url = "http://yourserver.com/update?"
               "lat=" + String(latitude, 6) +
               "&lng=" + String(longitude, 6) +
               "&speed=" + String(speed_kmph);

  LTE_Serial.println("AT+HTTPINIT");
  delay(500);
  LTE_Serial.println("AT+HTTPPARA=\"URL\",\"" + url + "\"");
  delay(500);
  LTE_Serial.println("AT+HTTPACTION=0"); // GET request
  delay(3000);
  LTE_Serial.println("AT+HTTPTERM");
}

8️⃣ Theft Detection Logic

C/C++
πŸ“ Use:
Ignition OFF hone ke baad movement detect kare to alert bhejta hai.
void checkTheft() {

  // If ignition OFF but speed detected
  if (!ignitionStatus && speed_kmph > 5) {
    Serial.println("🚨 Theft Detected!");
    sendAlert();
  }
}

9️⃣ Alert Function

C/C++
πŸ“ Use:
SMS alert bhejne ke liye.
void sendAlert() {
  LTE_Serial.println("AT+CMGF=1");
  delay(500);
  LTE_Serial.println("AT+CMGS=\"+919999999999\"");
  delay(500);
  LTE_Serial.print("Theft Alert! Location: ");
  LTE_Serial.print(latitude);
  LTE_Serial.print(",");
  LTE_Serial.print(longitude);
  delay(500);
  LTE_Serial.write(26);
}

Credits

Tech Gyan Set
21 projects β€’ 6 followers
Thanks to Tech Gyan Set .

Comments