This small project demonstrates how to build a simple GPS-receiver from an Arduino-board (or similar), an OLED-display and a GPS-module with antenna.
Step 1: Collecting the Parts
Step 2: Connecting the Display
Use 4 jumper wires to connect the display to the Arduino board.
This is very straightforward:
5V -> VIN
GND -> GND
SDA -> SDA (I2C-data)
SCL -> SCL (I2C-clock)
Install a small demo sketch on the Arduino, connect the battery and check, if the display does its jobs.
Step 3: Connencting the GPS Module
a) Mount the GPS-bee onto the Xbee breakout-board. The spacing of the 2mm headers of the bee is a little bit too small for regular jumper wires.
b) Plug the remaining 4 jumper wires into the TX, RX, 3.3V and GND sockets of the Arduino, as it is the case here, into 8 and 9.
SoftwareSerial is used to provide more than one serial interface, hence not the regular RX/TX pins are used. Instead in the sketch pin 8 is assigned as RX and pin 9 as TX:
in Code: SoftwareSerial softSerial(8, 9); // RX, TX
Then connect GND and GND, VIN to 3.3V (do not use 5V with the GPS bee), and TX to 8 (RX) and RX to 9 (TX). As always, swapping RX and TX on a serial port is confusing.
That's almost it, the system should work, except that very often satellites' reception indoors is poor.
Step 4: Getting the Signal
Finally the setup is ready to acquire some signals and translate them into coordinates. But before that the bits and pieces have to be wrapped up for some protection. Any water proof enclosure with some transparency for the display would do it. Some soft cushions might be of help.
Once all is set, any cozy place with sunshine, indicating an open sky, is suitable to determine its exact location.
The coordinates and other values are shown on the display:
The first 2 lines show latitude and longitude, every asterisk in the third line stands for a satellite used, only 3 here, the next line gives time and date (in UTC) and the last line indicates the altitude.
All these values are generated in code, and more values, like speed on ground, can be obtained from the GPS signals. The mileage may vary.
Step 5: Software
The software has been completely rewritten. None of the libraries I founds supports the GSV-sentences from, those one, who tells you where all the satellites are.