Built to order

GPS Vehicle Tracking System using ESP32, NEO-6M GPS and GSM with Live Map Dashboard

This project builds a GPS vehicle tracking system using an ESP32, a NEO-6M GPS receiver and a SIM800L GSM module that sends live position to a web map dashboard. The in-vehicle tracker logs location, speed and ignition state, runs from vehicle power with a Li-ion backup battery, and shows trips and geofence status on the dashboard. Suitable for B.E./B.Tech final-year projects in Electronics & Telecommunication, IoT and Embedded Systems.

IoT & Embedded ESP32 development boardSIM800L GSM/GPRS moduleNEO-6M GPS module · ceramic antennaArduino IDE · C firmwareNMEA parsing · UARTHTTP over GPRS · AT commandsWeb map dashboard · HTML/CSS/JavaScriptLi-ion backup · charge circuitHybrid
GPS Vehicle Tracking System using ESP32, NEO-6M GPS and GSM with Live Map Dashboard — project thumbnail preview
More project photos (2)

The problem

Vehicle owners and small fleet operators often have no affordable way to know where a vehicle is, whether it was used outside agreed hours, or which route it actually took. Phone calls to the driver are the usual check, and they give no record, no speed history and no alert when a vehicle leaves its usual area. This project builds a complete tracking loop that can be demonstrated on a bench or fitted in a vehicle for a viva: a NEO-6M GPS receiver fixes position, an ESP32 reads location, speed and ignition state, and a SIM800L GSM module sends each update over GPRS to a web dashboard. The dashboard plots the live position on a map, keeps a trip log and shows geofence and battery status, so the full path from satellite fix to browser screen is visible and explainable.

How it works

  1. The NEO-6M GPS receiver acquires satellites and outputs NMEA sentences over UART; the ESP32 parses position, speed, satellite count and fix status, and discards updates without a valid fix.
  2. The ignition/ACC sense input is read through a divider and protection stage, so the firmware knows whether the vehicle ignition is on and can open or close a trip record.
  3. At the configured reporting interval (design target approximately 10–30 s), the ESP32 assembles one update packet with position, speed, ignition state and backup-battery status.
  4. The SIM800L module, driven by AT commands, opens a GPRS connection and sends the packet by HTTP to the dashboard endpoint; a failed send is retried on the next interval.
  5. The dashboard stores each update, moves the live marker on the map, extends the route line and updates the speed, ignition, geofence and battery status cards.
  6. When ignition turns off, the dashboard closes the trip and adds it to the trip log with start time, distance and duration; the tracker then continues on vehicle power or its Li-ion backup cell.
  7. If the reported position falls outside the configured geofence radius, the dashboard flags the geofence card as breached and highlights the trip in the log.

Tech stack:

  • ESP32 development board
  • NEO-6M GPS module with ceramic antenna
  • SIM800L GSM/GPRS module
  • Arduino IDE (ESP32 core, C firmware)
  • NMEA parsing over UART
  • HTTP over GPRS using AT commands
  • Web map dashboard (HTML, CSS, JavaScript)
  • Li-ion cell with charge circuit and vehicle-power regulator
Parameter Value
Controller ESP32, dual-core 240 MHz, 3.3 V logic (datasheet value)
GPS receiver NEO-6M module with ceramic patch antenna, NMEA over UART
Position accuracy 2.5 m CEP horizontal (datasheet value)
GPS cold start Approximately 27 s to first fix (datasheet value)
GSM module SIM800L, quad-band GSM/GPRS (datasheet value)
GSM supply 3.4–4.4 V DC module supply (datasheet value)
Vehicle input 12 V DC nominal vehicle supply via regulator stage (design value)
Backup battery 3.7 V nominal single-cell Li-ion with charge circuit (datasheet value)
Reporting interval Approximately 10–30 s between updates (configurable, design target)
Dashboard Browser-based live map with trip log and status cards (no install)

Project features

  • [Live GPS position tracking — Implemented] The NEO-6M receiver streams NMEA sentences over UART and the ESP32 parses latitude, longitude, speed, satellite count and fix status continuously. Position quality is shown on the dashboard instead of being hidden, so a weak fix is obvious during the demonstration.
  • [GSM/GPRS position upload — Implemented] The SIM800L module connects over 2G GPRS and the ESP32 sends each position update to the dashboard endpoint using AT-command driven HTTP requests. Updates carry position, speed, ignition state and battery status in one packet.
  • [Live map dashboard with trip log — Implemented] A web dashboard plots the current position as a moving marker with the travelled route, and lists completed trips with start time, distance and duration. The dashboard runs in a standard browser with no separate app install.
  • [Ignition (ACC) sensing — Implemented] A protected sense input reads the vehicle ignition/ACC line through a divider and protection stage, so each trip is marked ignition-on or ignition-off. Trip start and stop in the log follow this input rather than movement alone.
  • [Li-ion backup battery — Implemented] A single-cell Li-ion battery with a charge circuit keeps the tracker reporting when vehicle power is removed or the vehicle is parked. The firmware reports battery status with each update so a low backup cell is visible on the dashboard.
  • [Configurable reporting and geofence — Configurable] The reporting interval, geofence centre and geofence radius are settings in firmware and on the dashboard, not fixed values. Changing them needs no hardware change, and the geofence status card updates from the same settings.
  • [SMS alert on geofence exit — Optional] An SMS alert to a registered number when the vehicle leaves the geofence can be added on request. This alert is optional customisation and is not part of the base build described above.

Future scope (not included in the base build): OBD-II vehicle data reading, driver-behaviour scoring from accelerometer data, and a native mobile app are possible extensions and are not claimed as current features.

What is included

  • Working tracker prototype: ESP32 board, NEO-6M GPS module, SIM800L GSM module, ignition sense wiring, Li-ion backup cell with charge circuit, wired as one unit
  • Complete firmware source code with commented GPS parsing, GSM upload and power handling
  • Live-map dashboard source (single hosted web page) with trip log and status cards
  • Circuit and wiring documentation with connection tables, including the vehicle-power and ACC sense connections
  • Component list with exact part descriptions
  • Setup guide (SIM and GPRS APN setup, dashboard endpoint setup, geofence configuration)
  • Project report PDF (background, GPS and GSM theory, architecture, methodology, limitations)
  • PPT presentation for final review
  • Viva Q&A preparation document (NMEA, GPRS/AT commands, power design, geofencing, limitations)

Limitations & prerequisites

  • GPS reception is weak indoors, in basements and in urban canyons between tall buildings — fixes take longer and reported positions can drift; the receiver needs a reasonably clear view of the sky.
  • The SIM800L uses 2G GSM/GPRS, so tracking depends on 2G network availability and coverage in the area of use; where 2G service is withdrawn or absent, live upload stops and only the last reported position is shown.
  • Backup-battery runtime is load-dependent: it varies with cell capacity, reporting interval and GSM signal strength, and is stated as a design expectation, not a guaranteed figure.
  • The ACC sense input reads ignition state only; the base build does not read engine diagnostics, fuel level or OBD-II data.
  • Position accuracy follows the NEO-6M datasheet figure under good sky conditions; it is not survey-grade and short trips in dense city areas will show visible track wobble.
  • This is a student prototype, not a certified fleet-telematics product — it carries no automotive type approval, insurance acceptance or theft-recovery guarantee.
  • A working SIM with a data balance and correct APN settings is required for live upload; SIM and data costs are not part of the project.

Frequently Asked Questions

Is this project suitable for a final-year project?

Yes. The build covers GPS interfacing over UART with NMEA parsing, GSM and GPRS communication using AT commands, embedded C firmware on the ESP32, vehicle power with battery-backup design, and a web dashboard consuming live location data. Each stage demos separately in a viva, from raw satellite sentences to the moving map marker.

Does the tracker need a mobile network to work?

The tracker sends position over the SIM800L GPRS link to the dashboard, so it needs mobile data coverage and a hosted endpoint to receive updates. Without coverage the dashboard shows the last reported position until the link returns. GPS positioning itself needs no mobile network, only a clear view of the sky for the receiver.

How accurate is the GPS position indoors?

The NEO-6M needs a clear sky view to fix. Indoors, in basements and between tall buildings the signal weakens, fixes take longer and positions can drift noticeably. Outdoors with the antenna facing upward the module fixes much faster. The dashboard shows satellite count and fix status, so poor reception stays visible during the demonstration.

What happens when vehicle power is disconnected?

The base tracker runs from regulated vehicle power and switches to its Li-ion backup cell when that supply is removed, so a parked vehicle still reports for a limited period. Backup runtime depends on cell capacity and reporting interval, both stated as design values in the specifications. It remains a student prototype, not a certified fleet unit.

Can the reporting interval and geofence be changed?

Yes. The reporting interval, geofence centre and radius, and dashboard refresh behaviour are configurable in firmware and dashboard settings. A different GPS or GSM module, or SMS alerts on geofence exit, can be added as optional customisation. Those additions are not part of the base build and are scoped separately before ordering.

Components & software requirements
  • ESP32 development board
  • NEO-6M GPS module with ceramic antenna
  • SIM800L GSM/GPRS module
  • Arduino IDE (ESP32 core, C firmware)
  • NMEA parsing over UART
  • HTTP over GPRS using AT commands
  • Web map dashboard (HTML, CSS, JavaScript)
  • Li-ion cell with charge circuit and vehicle-power regulator
Delivery information

Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.

Support terms

Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.

Download free synopsis (PDF)

Enter your name and email — the synopsis PDF downloads immediately. We may send occasional project updates; no spam, unsubscribe anytime.

Get a quotation