• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 3679
  • Last Modified:

GPS car tracking project

Dear Experts,

We are currently working on a GPS tracking project for a rental company with some other functionality such as light sensors,Temperature sensors,etc...

In our design we will be using a 89C51 microcontroller which will be interfaced with sensors ,switches, and a PC ( which will simulate a car ecu)....

Also we are searching for a GPS receiver that will be connected to the PC.

The PC will be equipped with a moblie and through AT commands will send the coordinates to a BASE station (which will represent the headquaters it will be a PC with a Mobile device)...

I really need your help here guys....

-If you can direct me on how will i grab the coordinates from the GPS receiver to the PC and then how to send them from the PC tthrough sms to the base station and how to grab the coordinates from the mobile connected to base station and send it to a software which has a map that will pin point the car  (This is a new field for us therefore we don't have the enough knowledge )...

-The second thing is that we will scan a map .. but how can we convert it to something digital that we can use with the coordinates received and show the location of the car. Is there any software that can do this

Please if you can help us out on this guys we're on a very tight schedual here...

If possible if you have a solution can you put a step by step solution...

Thank you
0
harith
Asked:
harith
1 Solution
 
InteractiveMindCommented:
It's a good idea to ask this in the Hardware TA.. They can suggest loads of GPS equipment there..

Good luck,
>> IM
0
 
Jaime OlivaresSoftware ArchitectCommented:
Have a look to this page:
http://www.commlinx.com.au/schematics.htm

You will find commercial products and amateur projects about GPS.
0
 
imarshadCommented:
>>If you can direct me on how will i grab the coordinates from the GPS receiver to the PC and then how to send them from
>>the PC tthrough sms to the base station and how to grab the coordinates from the mobile connected to base station and
>>send it to a software which has a map that will pin point the car  

First of all which development language are you using? Anyways I will try to give you basic ideas from which you can extract a working solution...

*****************************************************
Step 1  (Getting GPS data from GPS receiver)
*****************************************************

1) First step is to know what you can get from a GPS receiver.... Most of the GPS receivers output NMEA format data....
Following link will give you all the string that your GPS outputs.....
http://www.geoaps.com/NMEA.htm
and it is upto you what information you want from this data.... Typically this is what you will need...

$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11><CR><LF>

1)     UTC time of position fix, hhmmss.sss format.            ----------------> Important
2)     Status, A = data valid, V = data not valid.                 ----------------> Important
3)     Latitude, ddmm.mmmm format.                               ----------------> Important
4)     Latitude hemisphere, N or S.
5)     Longitude, dddmmm.mmmm format.                        ----------------> Important
6)     Longitude hemisphere, E or W.
7)     Speed over ground, 0.0 to 1851.8 knots.                   ----------------> Important
8)     Course over ground, 000.0 to 359.9 degrees, true.
9)     Date, ddmmyy format.
10) Magnetic variation, 000.0 to 180.O.
11) Degrees
12) Checksum.


$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<11>,<12>,<13><CR><LF>

1)     UTC time of position fix, hhmmss.sss format
2)     Latitude, ddmm.mmmm format.
3)     Latitude hemisphere, N or S.
4)     Longitude, dddmm.mmmm format.
5)     Longitude hemisphere, E or W.
6)     Position Fix Indicator,
      0 = fix not available, or invalid.
      1 = GPS SPS Mode, fix valid.
      2 = Differential GPS, SPS Mode, fix valid.
      3 = GPS PPS Mode, fix valid.
7)     Number of sate1lites in use, 00 to 12.                                 ----------------> Important
8)     Horizontal Dilution of Precision, 0.5 to 99.9.
9)     MSL Altitude, -9999.9 to 99999.9 meters.                            ----------------> Important
10) Geoidal height, -999.9 to 9999.9 meters.
11) Differential GPS (RTCM SC-104) data age, number of seconds since last valid RTCM transmission (nu1l if non-DGPS).
12) Differential Reference Station ID, 0000 to 1023. (null if non-DGPS)
13) Checksum.

Now extracting this data from the strings is easy... All you have to develop is a simple program that will read from Serial Port every second and then you can split the strings with a token ("," in this case)..... In C this can be achived using strtok and in VB you can achieve this using split function......


I hope part 1 is explained......Explaination of Part 2 follows.....

Imran
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
imarshadCommented:
*****************************************************
Step 2  (Sending and Receiving SMS)
*****************************************************
Since you have GSM Modems (Mobile phones) attached to your Computer so you will be using AT commands to send and receive SMS's.....
So first step is to look for AT commandset..... You can find it on hundreds of places on the net and here is one of them.....

http://www.multitech.com/DOCUMENTS/Collateral/manuals/S000293B.pdf

You will need to read the commands related to send and receive SMS....

Here is what you will need to send an SMS

AT+CMGF=1 <CR> <LF>
AT+CMGS="1234567891" <CR> <LF>    
> This is my test meaage <Ctrl-Z>

and your message will be send to the no. 1234567891
Now in these simple AT commands you are setting Text mode for SMS transmission using(AT+CMGF=1)
Then you are setting the no. of the recipent using AT+CMGS="1234567891"
Then you are sending the actual message that you need to send...... (In your case it will be Lat/long etc.)
<CR> means Carriage Return and <LF> means Line Feed......

This is simply how you send an SMS.......

Now reading SMS on the other end is also not that difficult......

You can look in the manual for commands like AT+CMGL=4 or AT+CMGL="ALL"

and also AT+CMGR=x and AT+CNMI to receive SMS's....... I am delibrately not giving all the commands here so that you can investigate the AT command set and make an workable example from it...... If you find any difficulty then please do post here.....

Imran
0
 
imarshadCommented:
>>-The second thing is that we will scan a map .. but how can we convert it to something digital that we can use with the
>>coordinates received and show the location of the car. Is there any software that can do this

After scanning the map you will need to Geo-reference it.....

Follow this link for a complete guide to do all of this programatically......

http://www.experts-exchange.com/Databases/GIS_GPS/Q_21213084.html

But if you want to use a third party software then OZIexplorer is the best......

http://www.oziexplorer.com/

Imran
0
 
harithAuthor Commented:
I don't know what to say imarshad but you have certainly set the standards on how to give a proffsessional answer....

Thank you very much and all of you who participated ...

I'll go through the steps and discuss this with my fellow group memebers and return back to you....

Thank you
0
 
harithAuthor Commented:
Dear Imarshad,

1.I was wondering if i just wanted to know the position of the object on the map is it enough to use :

 Latitude, ddmm.mmmm format.  & Longitude, dddmmm.mmmm format

2. Is it possible to use a usb GPS Receiver for example the Garmin has.... I mean will it give me the information in NMEA format
0
 
imarshadCommented:
>>1.I was wondering if i just wanted to know the position of the object on the map is it enough to use :
>> Latitude, ddmm.mmmm format.  & Longitude, dddmmm.mmmm format

Yes it is enough..... Though I will prefer ddd.ddddd or maybe(mmm.mmmmm) format for Latitude and Longitude etc.

>>Is it possible to use a usb GPS Receiver for example the Garmin has.... I mean will it give me the information in NMEA
>>format

Yes you can... Most of the USB GPS receivers will give you a serial driver for the GPS which will create a virtual serial port on your PC which you can use to communicate with the GPS..... and it will output NMEA strings....

Imran
0
 
harithAuthor Commented:
Dear Imran,

I really appreciate all your help here...

I was wondering i'm thinking of getting the Garmin GPS 18 (which is USB) for our project, but when i read the documentation it says that the output is in Garmin GPS protocol not NMEA standard protocol....

I was wondering that since we are connecting the GPS receiver to PC and communicate with the OZIexplorer is there a possiblity that we use the API of the oziexplorer in our Java program to get the Longitude & latidue ( which will be sent via sms to another pc representing the base of the company ), then feed this longitude and latidue to the other pc to the tracking software... If this is possible could you please advice me how ..


Please do you recommend this GPS receiver( since from what i understood from the oziexplorer site that this compatiable with the software) ? if not is there any other receiver you recommned?
Thank you
0
 
imarshadCommented:
>>I was wondering i'm thinking of getting the Garmin GPS 18 (which is USB) for our project

I couldnot find a manual for the GPS 18 on the net...... But I am sure that it will output data in standard NMEA format.... Since it is offering USB drivers for the GPS so it will most definately create virtual comm port on your system.... and then it will be compatible with any standard GPS software..... Maybe contacting Garmin Support will clarify the situation....

>>since we are connecting the GPS receiver to PC and communicate with the OZIexplorer is there a possiblity that we use the
>>API of the oziexplorer in our Java program to get the Longitude & latidue ( which will be sent via sms to another pc
>>representing the base of the company ), then feed this longitude and latidue to the other pc to the tracking software... If
>>this is possible could you please advice me how ..

I cant see any need for involving Oziexplorer here.... If it will be used only to receive the GPS coordinates from the receiver then I will suggest you to embedd this in your Java program..... It is not that difficult at all.... It simply involves reading serial port and then manipulating strings..... I have got the code in VB, VB.NET and eVB..... If you need it then you can mail me....
Once you can read the Serial Port then http://www.geoaps.com/NMEA.htm will be enough for you to extract GPS coordinates from the info.....

Imran
0

Featured Post

[Webinar On Demand] Database Backup and Recovery

Does your company store data on premises, off site, in the cloud, or a combination of these? If you answered “yes”, you need a data backup recovery plan that fits each and every platform. Watch now as as Percona teaches us how to build agile data backup recovery plan.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now