I've been toying with a couple of USB>OBD2 adapters and some linux scripts for a few days in order to spec out and build a much-bigger car-based "data" project (product?), but more on that in the coming weeks.
In the meantime...
I've always been into cars, in fact one of my first "real" jobs (aka, not retail or food service) was as a mechanic at a Volkswagen dealership - no lie.
First as an "apprentice" then as a full-fledged mechanic.
I wish more peeps coming up in the industry these days had experiences like that. I feel that it gives you a solid concrete foundation - and makes it harder for you to fall for your own deluded bullshit (since you know what "work" really is). Now I'm 13+ years into my "professional" tech career and I still have many memorable days from that (sometimes hard, hot, and maddening) job.
Cars, Computers, Software. It's ALL the same shit.
Problem solving and Troubleshooting.
It's just many little systems that make up one big system - all humming along in perfect syncronicity (hopefully). Any one domino can knock them all down, or stand them all back up - your job is to know how the dominoes are arranged in the first place.
Anyways.. (the short version)
All cars from 1996 onward (in the US anyways) have this capability - it was created as an easy way to check various emissions systems and the like. However, most manufactures take the proposed standard (OBDII) and pile on all kinds of extra data and proprietary system interfaces. But at the base level there are a dozen or so that should be "pullable" from any OBDII car (I'm starting there, with my car).
Regardless, I thought it was neat - a good "proof of concept" that I can reliably pull said data using a conglomeration of open-source projects (PyOBD2, which is in need of an update - fork it onto Github maybe?) and home-brew methods (Python, SQLite3).