loading

Few days ago somebody asked me to make Instructable on how to show GPS Latitude, and Longitude on a LCD Display. I promised to make one, and here it is.

In this Instructable, I will show you how you can connect Serial GPS Module, and I2C LCD Display to Arduino Nano, and show the location data from the GPS on the LCD.

Please note that since the Arduino Nano has only one Serial Port and it is used to program the board, you will need to program the Arduino before you connect the Serial GPS Module!

Step 1: Components

  1. One Arduino compatible board (I use Arduino Nano, because I have one, but any other will be just fine)
  2. One GPS module
  3. One I2C 16x2 LCD Display (Back side of the LCD with the I2C adapter showed on Picture 2)
  4. One small Breadboard (Any breadboard can be used, or any other way to connect 3 wires together)
  5. 3 Female-Male jumper wires
  6. 5 Female-Female jumper wires

Step 2: Start Visuino, and Select the Arduino Board Type

Since the Arduino Nano has only one Serial port, and it is needed to program the Arduino, you will need to program the Arduino Nano before the GPS is connected.

To start programming the Arduino, you will need to have the Arduino IDE installed from here: http://www.arduino.cc/ .

Make sure that you install 1.6.7 or higher, otherwise this Instructable will not work!

The Visuino: https://www.visuino.com also needs to be installed.

  1. Start Visuino as shown in the first picture
  2. Click on the "Tools" button on the Arduino component (Picture 1) in Visuino
  3. When the dialog appears, select Arduino Nano as shown in Picture 2

Step 3: In Visuino: Add and Connect GPS, and LCD Components

  1. Type "GPS" in the Filter box of the Component Toolbox then select the "Serial GPS" component (Picture 1), and drop it in the design area
  2. Connect the "Out" pin of the GPS1 component to the to the "In" pin of the "Serial[ 0 ]" of the Arduino component (Picture 2)
  3. Type "lcd" in the Filter box of the Component Toolbox then select the "Liquid Crystal Display (LCD) - I2C" component (Picture 3), and drop it in the design area
  4. Connect the "Out" pin of the LiquidCrystalDisplay1 component to the to the "In" pin of the "I2C channel" of the Arduino component (Picture 4)

Step 4: In Visuino: Add, and Setup Text and Analog Value Elements to Display the Latitude

We will add a Text field with the description of the value, and Analog field to display the value for the Latitude and Longitude values.

First we will add Description and value fields for the Latitude:

  1. Click on the "Tools" button (Picture 1) to open the "Elements" editor (Picture 2)
  2. In the "Elements" editor select the "Text Field" in the right window, and click on the "+" button on the left (Picture 2)
  3. In the Object Inspector set the value of the "Initial Value" property of the element to "Lat. :" (Picture 3)
  4. Select the "Analog Field" in the right window of the "Elements" editor, and clicking on the "+" button on the left (Picture 4)
  5. In the Object Inspector set the value of the "Column" property of the element to "7" (Picture 5)
  6. In the Object Inspector set the value of the "Width" property of the element to "8" (Picture 6)

Step 5: In Visuino: Add, and Setup Text Element for the Longitude

Next we will add Description for the Longitude:

  1. In the "Elements" editor select the "Text Field" in the right window, and click on the "+" button on the left (Picture 1)
  2. In the Object Inspector set the value of the "Initial Value" property of the element to "Long.: " (Picture 2)
  3. In the Object Inspector set the value of the "Row" property of the element to "1" (Picture 3)

Step 6: In Visuino: Add, and Setup Analog Value Element to Display the Longitude

Next we will add Analog Element to display the value for the Longitude:

  1. Select the "Analog Field" in the right window of the "Elements" editor, and clicking on the "+" button on the left (Picture 1)
  2. In the Object Inspector set the value of the "Column" property of the element to "7" (Picture 2)
  3. In the Object Inspector set the value of the "Row" property of the element to "1" (Picture 3)
  4. In the Object Inspector set the value of the "Width" property of the element to "8" (Picture 4)
  5. Close the "Elements" dialog

Step 7: In Visuino: Connect the GPS Component to the Elements of the LCD Component

  1. Connect the "Latitude" output pin of the "Location" box of the GPS1 component to the "In" pin of the Elements.AnalogField1 element of the LiquidCrystalDisplay1 component (Picture 1)
  2. Connect the "Longitude" output pin of the "Location" box of the GPS1 component to the "In" pin of the Elements.AnalogField2 element of the LiquidCrystalDisplay1 component (Picture 2)

Step 8: Generate, Compile, and Upload the Arduino Code

  1. In Visuino, Press F9 or click on the button shown on Picture 1 to generate the Arduino code, and open the Arduino IDE
  2. In the Arduino IDE, click on the Upload button, to compile and upload the code (Picture 2)

Step 9: Connect the LCD Module to the Arduino

Once the Arduino Nano is programmed, it is time to connect the hardware:

  1. Connect Ground(Black wire), Power(Red wire), SDA(Green wire), and SCL(Yellow wire) to the LCD Module (Picture 1)
  2. Connect the other end of the Ground wire(Black wire) to Ground pin of the Arduino board(Picture 2)
  3. Connect the other end of the SDA wire(Green wire) to SDA/Analog pin 4 of the Arduino Nano board(Picture 2)
  4. Connect the other end of the SCL wire(Yellow wire) to SCL/Analog pin 5 of the Arduino Nano board(Picture 2)
  5. Connect another Female-Male Power wire(Red wire) to the 5V Power pin of the Arduino board(Picture 2), and leave the Male end unconnected
  6. Picture 3 shows where are the Ground, 5V Power, SDA/Analog pin 4, and SCL/Analog pin 5 pins of the Arduino Nano

Step 10: Connect the GPS Module to the Arduino

  1. Connect Female-MalePower(Red wire) to the GPS Module
  2. Connect Female-Female Ground(Black wire), and TX(Gray wire) to the GPS Module
  3. Connect the other end of the Ground wire(Black wire) to Ground pin of the Arduino board (Picture 2)
  4. Connect the other end of the TX (Gray wire) to RX pin of the Arduino board (Picture 2)
  5. Picture 3 shows in Red where are the Ground, and RX pins of the Arduino Nano (In Blue are shown the connections made in the previous step)

Step 11: Connect the Power Wires Together

Connect the Male ends of the 3 Power wires(Red wires) - from the Display, the GPS Module, and the Arduino together as example with the help of a Breadboard (Picture) - In my case I used a small Breadboard

Step 12: And Play...

Congratulations! You have completed the project.

Picture 1 shows the connected and powered up project. If you power up the project, after a while the blue LED of the GPS will start blinking about once a second as you can see on the Video. Usually shortly after that, the GPS will start sending location data, and it will be shown on the LCD. Depending on the location, it can take up to few minutes to show the location data. If after few minutes the data is still not shown, power down the project wait about a minute and power it again to reset the GPS.

On Picture 2 you can see the complete Visuino diagram.
Also attached is the Visuino project, that I created for this Instructable. You can download and open it in Visuino: https://www.visuino.com

I just try it but my gps not blinking and my lcd screen just display waiting for gps.. what should i do sir?
Most likely the GPS can't get signal. Place it closer to a window or in more open area ;-)
I use arduino uno
<p>Hi, Can I do it with Arduino IDE and Arduino ino ?</p>
<p>Thanks so much for this, However mine just displays a blank screen? Not sure why , everything is setup correctly, am standing outside, and the GPS has a connection (referring to constant blinking light) <br>Cheers</p>
<p>Works great Borian ....Nice work again.. ;) I will try your GPS logger also..! Like the idea of speed and altitude from <a class="author-link pro" href="https://www.instructables.com/member/ankitcdac" style="color: rgb(207,96,0);text-decoration: none;outline: 0.0px;cursor: pointer;font-weight: 700;font-family: Helvetica Neue , Helvetica , Arial , sans-serif;font-size: 14.0px;">ankitcdac </a>also. </p>
<p>Thank you! I am glad you like it :-) . Hope to have more soon ;-) Ejnoy!</p>
<p>Works great, after a while. SPent an hour trying to get a signal, now I can walk around with it, using a portable battery</p>
<p>Congratulatons! Looks great :-)</p>
I also wanted to display speed and altitude ...<br>What change should I make?<br>Help me out sir
<p>Repeat steps 5, and 6 and then connect the speed to the 3th Analog element of the LCD similar to Step 7. You may need to change the location and Width of some of the fields to fit them all on the LCD, or use an LCD with more rows.</p>
I will try <br>Thanks u so much.

About This Instructable

10,539views

157favorites

License:

More by BoianM:Assemble Kuman Wi-Fi Robot With Camera and Manipulator Arduino and Visuino: Long Distance Remote Light Sensor With RFM95W/RFM98W Makerfabs LoRa Shields  Arduino Nano and Visuino: Animate the Colors of RGB LED 
Add instructable to: