I had a vision a little over a year ago to design an auxiliary dashboard to provide reliable time, compass heading & temperature info to my wife's car (which is otherwise rather spartan, being an ex-police cruiser we bought from a local dealer...) and I'm pleased to show off my progress--yesterday I ran the cabling and got the bulk of the system working and installed.
Pictures and details are here: http://spirilis.net/junk/arduino/carnet_install/project.html
- Uses I2C and OneWire, with I2C being most of the communication
- Makes use of a "long distance" buffered I2C network employing NXP P82B715 chips on each board to help the devices use the long-distance bus
- LCD display is a large 16x2 by Newhaven, and I designed my own "I2C backpack" for the board which includes PWM on the LED backlight, ability to cut power to the LCD completely and go into deep sleep (SLEEP_MODE_PWR_DOWN). The I2C commandset is built around a virtual 8-bit "memory map" implemented by a 256-byte char array on the LCD backpack's ATmega328 firmware, with the upper 16 bytes implemented as special "strobe registers" to carry out actions/configuration updates.
- I incorporated a DS18B20 temp sensor into every board ... Because I can (and I have a ton of them)
- ATmega328 used in the LCD backpack, ATmega1284P (Bobuino) currently used for the controller before I can build something permanent for that. Arduino IDE used for both firmwares.
- Future plans for this system include a Keyless entry system based on the nRF24L01+ and Sparkfun's nordic keyfobs.
Still need to run a cable under the hood/behind the bumper for proper ambient temperature, which is my next task before designing a control box w/rotary encoder for the dashboard.