GPS Distance Meter

Somnath Bera


Presented here is a project based on Global Positioning System (GPS) and ATmega328P-PU microcontroller to measure the distance between two points using Haversine formula. This GPS distance meter can be used for a thermal power-plant patrolling/inspection or any other application where large distance measurement is required.

For example, in the thermal power plant industry, a patroller is required to take measurements for laying out a new route, replacement/shifting of old routes or extension of pipelines deep inside the dyke. These activities are carried out quite often, and each measurement requires two persons for holding a large measuring tape. Demand for a GPS distance meter starts here.

Hardware requirement for GPS Distance Meter

You need Arduino with an internal 8MHz clock, GPS receiver with serial data port, microSD memory card, 16×4 LCD, pushbutton switches and a few other components.

Circuit and working

Fig. 1: Circuit diagram of the GPS distance meter

Circuit diagram of the GPS distance meter is shown in Fig. 1. To make the circuitry simple and less power consuming, the 16MHz resonator/crystal and associated pico capacitors on Arduino board are not used. Arduino is programmed on plain ATmega328P-PU with an internal 8MHz clock. The circuit is powered off a 3.7V lithium-ion battery.

D2523T GPS receiver module used here requires between 3V and 3.6V DC supply and takes around 40mA current. The module has two LEDs on top and a green LED for pulse per second (PPS).

Fig. 2: An actual-size PCB pattern of the GPS distance meter
Fig. 3: Component layout for the PCB

Since the pipelines are all in the open, connection with GPS satellites that are on low-Earth orbit are almost instant. After the device is switched on, cold start of this GPS device takes less than 20 seconds. You can check this from the continuous flashing of PPS green LED on the GPS receiver. Immediately, latitude and longitude readings along with date and time will flash on the LCD panel.

Press switch S2 to start measurement reading, and mark the initial reading. Now, move to a desired location along with this assembly for taking distance reading. Distance measurement values will flash on the third line of the LCD and at the same time all readings including serial no, date, time, latitude, longitude, dist_inst (d) and dist_total(D), will be dumped into a text file, which will be stored automatically on the microSD memory card (8GB, 16GB and so on) attached to the device.




Please enter your comment!
Please enter your name here