Built to order

LoRa Based GPS Asset Tracker

This project builds a LoRa Based GPS Asset Tracker: a battery-powered node (NEO-6M GPS + Ra-02 LoRa + ESP32) sending live positions over LoRa to a gateway and web dashboard — map view, trip history, geofence alerts. The node sleeps between fixes to stretch battery life, LoRa chirp spread spectrum gives kilometre-scale range with no cellular plan, and the dashboard shows live positions, route trails and fence alerts. A buildable E&TC project covering RF, embedded firmware and web dashboards. Suitable for B.E./B.Tech final-year projects in Electronics and Telecommunication.

Electronics / E&TC ESP32Arduino IDEHTML · CSS · JavaScript dashboardLoRa SX1278 Ra-02 moduleLoRa chirp spread spectrumUART SPI NMEA 018318650 Li-ion power managementHybrid
LoRa Based GPS Asset Tracker — project thumbnail preview
More project photos (2)

The problem

LoRa Based GPS Asset Tracker is a battery-powered tracking system that reports an asset's live position over a long-range LoRa radio link to a web dashboard, with no SIM card or data plan on the tracker itself. Fleet owners, college labs and site managers lose sight of bikes, vans and equipment the moment they leave the premises, and commercial trackers close that gap with GSM subscriptions and monthly costs. This project replaces the cellular leg with LoRa: a NEO-6M GPS module captures satellite fixes, an ESP32 packs the coordinates, and a Ra-02 LoRa module transmits them; a gateway kilometres away forwards every packet to a dashboard with live positions, route trails and geofence alerts. Because LoRa's chirp spread spectrum encodes each symbol as a linear frequency sweep, the receiver decodes signals below the noise floor — that processing gain stretches the link to kilometres on milliwatts, with the build staying within a student's reach: modules rather than chip-level RF design.

The project is scoped as a two-unit build — one mobile tracker node and one gateway-plus-dashboard receiver — which is exactly how a student demonstrates it in a viva: the node moves, the dashboard updates, and every hop of the chain can be pointed at and explained.

SYSTEM FLOW

5 components 4 connections

Live flow
Drag to explore
100%
sensorNEO-6M GPS

Locks the satellite constellation and outputs NMEA position sentences over UART, about 27 s cold start typical.

Follow the working sequence

How it works

A full update cycle of the LoRa Based GPS Asset Tracker runs from satellite to screen in a few seconds. The NEO-6M GPS receiver locks the constellation and outputs NMEA sentences with latitude, longitude, speed and time. The ESP32 reads these over UART, packs device ID, coordinates, speed, satellite count and battery voltage into a compact payload, and hands it to the Ra-02 LoRa module over SPI. The module transmits on the 433 MHz ISM band using chirp spread spectrum; a second Ra-02 on the gateway, typically elevated with clear line of sight, receives it and forwards the payload over serial to the dashboard host. The dashboard moves the device marker, appends the packet to the trip log, checks every geofence polygon, and raises an alert on a boundary crossing. The tracker then sleeps until the next scheduled fix, and the cycle repeats every 30 seconds by design.

  1. The NEO-6M GPS receiver locks the satellite constellation and outputs NMEA GGA/RMC sentences over UART (about 27 s cold start, datasheet typical).
  2. The ESP32 parses the sentences, extracts latitude, longitude, speed, time and satellite count, and packs them with the device ID and battery voltage into a compact payload.
  3. The Ra-02 LoRa module (SX1278) transmits the payload over SPI-driven chirp spread spectrum on the 433 MHz ISM band at spreading factor 7 — roughly 60 ms airtime (approximate).
  4. A second Ra-02 module on the gateway receives the packet, and the gateway ESP32 forwards the decoded payload over serial/USB to the dashboard host.
  5. The dashboard decodes the packet, moves the device marker on the map, appends it to the trip log with a timestamp, and updates the speed, battery, satellite and RSSI panels.
  6. The new position is checked against every geofence polygon; an exit or entry fires an on-screen alert and a timestamped feed entry. The tracker sleeps in deep sleep until the next 30 s cycle.

Tech stack:

  • ESP32-WROOM-32 (tracker + gateway firmware)
  • u-blox NEO-6M GPS module (NMEA over UART)
  • Ai-Thinker Ra-02 LoRa module (Semtech SX1278)
  • LoRa chirp spread spectrum, 433 MHz ISM, SF7
  • Single-file HTML/CSS/JavaScript dashboard
  • Arduino IDE (firmware build)
  • 0.96-inch OLED (I2C status display)
  • 18650 Li-ion cell with protection and charging
Parameter Value
Controller (tracker + gateway) ESP32-WROOM-32 (design choice)
GPS receiver u-blox NEO-6M, 50 channels, 2.5 m CEP horizontal accuracy autonomous (datasheet)
GPS update rate 1 Hz default, configurable to 10 Hz (datasheet)
GPS cold start About 27 s to first fix (datasheet typical)
LoRa radio Ai-Thinker Ra-02, Semtech SX1278, 433 MHz ISM band (design choice)
LoRa link budget Receive sensitivity to −148 dBm, transmit up to +20 dBm (SX1278 datasheet)
Position uplink cadence Every ~30 s (design target, configurable in firmware)
Radio range ~2 km urban, ~10 km open field (expected, line-of-sight dependent)
Battery 3.7 V 18650, ~2600 mAh (typical datasheet); ~48–72 h runtime at 30 s cadence (design target)
Geofence Polygon entry/exit evaluated server-side on every packet (design)
Dashboard Single HTML file — live map, trip log, alert feed (runs on the gateway host)

Project features

The four capabilities that define this build are the live map dashboard, server-side geofence breach alerts, trip history with route trails, and a battery-friendly duty-cycled tracker node. The dashboard is the face of the project: every LoRa packet moves a marker on the map in near real time, with per-device panels showing speed, battery, satellite count, last fix and RSSI. Geofences are polygons drawn around the depot, campus or route, and the moment a tracker exits or re-enters one, the dashboard fires a visible alert and logs it in the alert feed with the device ID and direction. Trip history stores every packet with a timestamp, so a full route can be inspected or summarised as distance travelled per day. Underneath, the tracker node sleeps between fixes — waking on a timer, grabbing a GPS fix, transmitting one short LoRa packet and going back to deep sleep — which is what makes battery power practical.

  • [Live map dashboard] Every uplinked packet moves the device marker on the map in near real time; per-device panels show speed, battery, satellite count, last fix and RSSI, with a recent-packets table and alert feed alongside.
  • [Geofence breach alerts] Polygons drawn around the depot, campus or route are evaluated on every packet; a crossing fires an on-screen alert and writes a timestamped entry (device, direction, time) to the alert feed.
  • [Trip history and route trails] All packets are logged with timestamps, so any device's trip draws itself as a trail on the map and summarises as distance travelled per day; the raw log is a plain CSV for the report.
  • [Battery-friendly duty cycling] The node wakes on a timer, takes a GPS fix, transmits one short packet and returns to ESP32 deep sleep; with a 30 s uplink design target and a 3.7 V 18650 cell, multi-day operation is the design goal.
  • [NEO-6M GPS fixes] The u-blox NEO-6M receiver (50 channels, 2.5 m CEP autonomous per datasheet) outputs NMEA sentences over UART; firmware parses GGA and RMC for position, speed and satellite count at a 1 Hz default rate.
  • [LoRa long-range link] An Ai-Thinker Ra-02 module (Semtech SX1278, 433 MHz ISM band, sensitivity to −148 dBm and +20 dBm transmit per datasheet) carries packets point-to-point to the gateway at spreading factor 7, about 60 ms airtime per packet (approximate).
  • [Local OLED status readout] A 0.96-inch OLED on the tracker shows fix status, satellite count and the last transmitted packet, so the node can be verified in the field without a laptop.

What is included

  • Tracker node build: ESP32, NEO-6M GPS, Ra-02 LoRa, OLED, 18650 power — assembled and wired
  • Gateway receiver build: second ESP32 + Ra-02 pair with serial link to the dashboard host
  • Tracker and gateway firmware (Arduino IDE source, commented)
  • Web dashboard (single HTML file) with live map, trip trails, geofence alerts and packet log
  • Wiring diagram and antenna placement guide (spring antenna vertical, clear of metal; quarter-wave wire ≈ 17.3 cm at 433 MHz by physics)
  • Component list with exact module part numbers
  • Setup guide: gateway placement, geofence drawing, dashboard launch
  • Project report PDF (architecture, LoRa link budget, duty-cycle design)
  • PPT presentation for the final review
  • Viva Q&A preparation document (GPS NMEA parsing, chirp spread spectrum, link budget, deep sleep)

Limitations & prerequisites

  • GPS needs a clear sky view: about 27 s cold start to first fix (datasheet typical), and fixes are unreliable indoors or under dense tree cover.
  • LoRa range is environment-dependent — ~2 km urban and ~10 km open field are expected figures, not guarantees; buildings, hills and antenna height dominate the real number.
  • The gateway must be powered and within radio range of the node for the dashboard to show live positions; out-of-range packets are simply never received.
  • Dashboard map tiles need internet on the host; without it, packets still log locally but the map background does not render.
  • Battery runtime of ~48–72 h at a 30 s cadence is a design target, not a measured value; long GPS fix times and cold weather shorten it.
  • The prototype is not a certified vehicle tracker: no tamper-proofing, no weatherproof enclosure, no legal or compliance claims.
  • Position accuracy is 2.5 m CEP in open sky (datasheet); urban multipath around tall buildings degrades it noticeably.

Frequently Asked Questions

Is this project suitable for a final-year project?

Yes — for Electronics and Telecommunication programs. It combines three viva-friendly domains in one build: RF (LoRa link budget, spreading factor, antennas), embedded firmware (GPS NMEA parsing, SPI, deep sleep duty cycling) and a web dashboard (live map, geofences, packet logging), each demonstrable live.

Which controller and modules are used?

An ESP32 on both ends — one drives the tracker node (NEO-6M GPS over UART, Ra-02 LoRa over SPI, OLED over I2C) and one drives the gateway receiver. The NEO-6M and Ra-02 are chosen because they are module-level parts a student can wire and explain, not chip-level RF design.

What radio range can I honestly expect?

About 2 km in a built-up area and about 10 km across open field with line of sight — expected design figures, not guarantees. Range is dominated by antenna height and obstacles, so the build guide insists on a vertical spring antenna kept clear of metal, and the gateway is placed elevated.

Does the system need internet to work?

The tracker-to-gateway LoRa link needs no internet, SIM card or cellular coverage at all — packets fly directly over radio. Only the dashboard's map background needs internet on the host computer; without it, positions still log locally with timestamps and the map renders fully once connectivity returns.

Can the project be customised?

Yes. Realistic options: more tracker nodes on the same gateway, a larger battery or solar top-up for longer runtime, a different ISM band (such as 868 MHz) where regulations require it, or an SMS alert add-on via a GSM module on the gateway side.

Components & software requirements
  • ESP32-WROOM-32 (tracker + gateway firmware)
  • u-blox NEO-6M GPS module (NMEA over UART)
  • Ai-Thinker Ra-02 LoRa module (Semtech SX1278)
  • LoRa chirp spread spectrum, 433 MHz ISM, SF7
  • Single-file HTML/CSS/JavaScript dashboard
  • Arduino IDE (firmware build)
  • 0.96-inch OLED (I2C status display)
  • 18650 Li-ion cell with protection and charging
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 WhatsApp number — the synopsis PDF downloads immediately. We may send occasional project updates on WhatsApp; no spam.

Get a quotation