Developing a GPS car tracking system
I'm in the brainstorming phase to develop a GPS car tracking system requested by a customer. I myself know the directions to build some GPS system to mobile phones and etc. But sincerely I don't know how to start in that project. That is the scenario:
1) The cars will get a device with a SIM CARD that will emit GPS signals.
2) My customer will in any place (home, work, etc) with a web connection will see in the map where the car is located.For me, I have not problems at get the GPS data, convert to usable info and show the position in some map system (like Google Maps or MS Bing M开发者_开发问答aps, by example). My problem is, how I do to retrieve that "GPS Signal" from device in the car? I will need some kind of "Receiver Device" connected to a web server machine in order to my application to consume that data?
Most GPRS-enabled vehicle trackers can be configured to send the data periodically to a remote server. The protocol and the details of the connection will vary a lot between different manufacturers. However in most cases, you should be able to configure the tracking device with the IP address and TCP port of your server, and then you should set up an application at that endpoint that listens for TCP connections from the tracking devices.
The first thing you should check is the documentation of the tracking device. It should reveal all these details. The serious brands will even provide working examples and demonstrations.
You will have to do the following:
1) If device cannot access internet
a) Get co-ordinates from GPS device
b) Send these co-ordinates via SMS
c) Receive and decode SMS message at the SMS gateway you have to configure
to receive info from device.
d) Update the info on the application database or any other store you are using
e) Update the position on map with latest info
2) If device can access internet
a) Get co-ordinates from GPS device
b) Connect to application server (may be some service) and upload information
c) Update the info on the application database or any other store you are using
d) Update the position on map with latest info
Natively, there's no way for a stock, off the shelf GPS device to "tell" you it's position. It requires some sort of back channel to communicate that information to you.
Your options are principally:
- The device broadcasts it's GPS location to you. The most effective way to do this would be if the device can access a wireless network, to install software on the device that has it periodically broadcast its location.
- You use a service provider that can provide the current GPS coordinates through some sort of API.
I believe your question boils down to, "How do I send data from a mobile device to a server?" It doesn't matter that the data is GPS data or that the device is in a vehicle. You just need to understand what communication capabilities your device has so you can figure out how to deliver your payload. The device can receive GPS satellite data, but that is one-way communication. You also said the device has a SIM card, so that means you've at least got voice network capability. Will the device/account have a data plan? If so, then that gives you GPRS/3G/some-packet-data and you would be home free. If not, then SMS is probably the next-best option, using a service like OpenMarket, for example. A last resort: your company can potentially license/develop a data-over-voice modem. For this route, it matters which country you are in. In the US, Airbiquity holds a lot of patents for this, and you'd probably have to license from them.
Our company uses the GenX Mobile devices in our truck fleet. They have a data connection that sends the raw CSV data to a UDP socket. I wrote a little listener app that gathers the data and puts it into a MySQL database.
If you have a droid, play with some of the apps on there, including Google's Lattitude, Where R U, and Mobile Defense. That'll give you ideas on what some of your options are, for apps that periodically report the location back up to the mothership. Have a look at WebSharing, for an excellent example of a webserver running within a droid, which lets you do things. That app is for file sharing, but it's not a stretch to imagine the interface (beautiful, btw), showing the car location, speed, heading, and with big "kill ignition" and "lock doors" buttons.
A point to consider is the communications channel used to pass the tracker position back to the data centre. In Europe the GSM network is well developed and can be used (SMS or GPRS) to pass the position data. However there are large roaming charges to be considered if the application is intended to follow a vehicle across international boundaries. In other countries (USA, Canada, Africa, Asia) the terrestrial infrastructure is not so well developed or uses a different transmission system (CDMA rather than GSM) requiring a different modem device.
An alternative, actually pretty price comparable with GSM, is to use satellite comms as the back channel. These are available either using Iridium or Inmarsat services and work globally, in remote regions without mobile phone coverage and without any roaming charges as the unit crosses borders.
精彩评论