Detecting Car Movement Without GPS

Are there any sensors that can detect a car moving without GPS or using sensors that are wired into the car or manaully pushing a button?

The only way I can think of is using an accelerometer but that’s not 100% garentee if the accelerometer x/y/z axis does not change.

you could tap into the speedometer/milometer pulses. Perhaps say more about what you want to do.

As a simple project I want to log the drive time of a journey in a self contained arduino package. Ideally it would be left in the car (say the boot) and it would record when the car starts and stops it’s journey time to a memory card.

This does mean tapping the speedo is out because I want to keep it to itself.

Can you clarify how you would like to define a journey. If a journey is defined as the time a car is moving then each stop at traffic lights could be considered a new journey.
Is it sufficient to record the time the electrical system is active (ie. the accessory power is on)?

What do you want to do with the information you collect?

Vehicle battery voltage has a few different ranges: one when the vehicle is off, a low voltage sag as the engine starts, and a higher charging voltage when the alternator is running. If you just need to know when the motor is running a simple voltage check can tell you.

-j

Cars vibrate a lot, definitely enough to show on an accelerometer or even a simple mechanical sensor. I’d look for rapidly changing values, and say that when nothing changes much for a minute or two, the car is stopped.

A tilt sensor, aligned so that the contacts face the rear of the vehicle, and slightly lifted so that a dead stop the ball will roll forward, and break contact. As soon as you move forward, the ball will roll to the rear.

As soon as contact is broken for say, 2 minutes assume stop condition.

As for the actual travel time, then I’d read your accelerometer and just measure differences in the analog signals. So long as any one of them is fluctuating, you can assume movement.

Once the tilt sensor relays back no movement AND your accelerometer readings hold steady for 2 minutes, shut down and wait for next tilt event to reactivate.

How about trying to tap into the cars speedometer signal?

Lefty

How about trying to tap into the cars speedometer signal?

Lefty, that was suggested in reply #1 and rejected in reply #2.

Tux, can you say a little more about this project. We are assuming that you want to measure the duration that the car is moving, ignoring stops shorter than say 2 minutes. is this what you want to do?

@ Brutus:

As soon as you move forward, the ball will roll to the rear.

Won’t that be only as long as you’re accelerating?
As soon as you reach a steady speed (or stop!), the contacts will be broken.

Cars vibrate a lot, definitely enough to show on an accelerometer or even a simple mechanical sensor. I’d look for rapidly changing values, and say that when nothing changes much for a minute or two, the car is stopped.

I was thinking about using this method too and do not doubt a car vibrates a lot but what happens when your on a motorway/highway driving at a steady speed? I know roads are not completely flat but what are the chances of the accelerometer only detecting minor changes which gets hidden by signal noise?

Tux, can you say a little more about this project. We are assuming that you want to measure the duration that the car is moving, ignoring stops shorter than say 2 minutes. is this what you want to do?

I’d like to leave an arduino in the car so I can time the car journeys. Over time I can see how long the car has been running e.g through the week I can see how long journeys to work take as well as total journey times for week / month / etc.

This is very crude way of measuring but it keeps it simple (I hope) and once this has been done I can add other sensors later like temperature, clock for when journeys started and stopped, etc.

Here is one possible approach, assuming you switch the car electrical system on and off shortly before and after each journey.

Power the Arduino from the cars switched auxilary power line. If you have a real time clock connected to arduino you can store the time the system powers up and powers down. To get this to work, you need to build a regulator circuit that maintains the 5 volt line for the fraction of a second that it will take to store the shutdown time. A suitable electrolytic capacitor on the 5 volt line should do. A 2200uf capacitor gives around a half second or so. You can detect shutdown by connecting the 12 volt aux line through a voltage divider to an analog port.

you want the driving time or the time someone sits in the car? if its the last one you could easyly detect someones feet (or the ignition key) with one or more ir led and ir reciver.

Cars vibrate a lot, definitely enough to show on an accelerometer or even a simple mechanical sensor. I’d look for rapidly changing values, and say that when nothing changes much for a minute or two, the car is stopped.

I was thinking about using this method too and do not doubt a car vibrates a lot but what happens when your on a motorway/highway driving at a steady speed? I know roads are not completely flat but what are the chances of the accelerometer only detecting minor changes which gets hidden by signal noise?

At the other extreme, if it’s too sensitive, it may think you’re driving when the car is sitting in the driveway being gently rocked by the wind.

How about attaching it (velcro) to the gear shift lever? When the tilt sensor triggers, the car is in drive.

Assuming every car is automatic.

I’d go with the voltage detection myself.

you want the driving time or the time someone sits in the car? if its the last one you could easyly detect someones feet (or the ignition key) with one or more ir led and ir reciver.

I want the drive time.

At the other extreme, if it’s too sensitive, it may think you’re driving when the car is sitting in the driveway being gently rocked by the wind.

Good point. I did not think of that.

How about attaching it (velcro) to the gear shift lever? When the tilt sensor triggers, the car is in drive.

Nice idea but it would look ugly unless I used a small stamp. Also you may hit problems if the car has a short gear stick like I’ve seen in BMW 3 series and upwards.

I guess without connecting it to the car itself (which I do not want to do) it seems pretty hard to get a true start and stop time.

Thank you all for your suggestions but I think I will have to hook up an accelerometer to an arduino and actually test if it will work.

So, there’s been no mention of user interactivity with the device.

I’d whack a magnet on something rotating and a sensor near.

Could be a wheel with the arduino cable tied in near by, that way you could get all the information about speed/distance/acceleration. Or it could be any number of parts.

The magnet might even stick without glue if you pick a good placement.

I’d use a small rare earth magnet and thin wires, so you do it wrongly and the sensor gets chewed it’s unlikely to affect the car in the slightest.

Hmm, or one could use some hacked optical mouse to detect movement of some surface. The ones I have do that automatically, only switching the light emitting on at 100% duty cycle when there’s movement.

rFree I like your ideas. Maybe sticking a tiny arduino like a nano with an accelerometer, battery and a zigbee/xbee which can transmit to a data logging arduino in the car itself. The nano could be stuck down to the inside of the wheel rim although that could be a lot of money lost if it came loose.

For the mouse idea I picture it to be inside the wheel arch to detect the wheel move but what is the range of a laser mouse? I say laser because having an optical mouse would have the red LED show up at night time. Apart from a mouse sensor are there any other type of sensor that would do the same thing?