I always thought it was a little funny that cars don’t do more to alert you when your car is on the brink of overheating. Especially considering that it is one quick way to kill an engine.
To solve that problem, I used an off the shelf OBD II adapter to connect to the cars onboard computer. An Arduino Mini sends commands to the ODB II adapter asking for the cars coolant temperature. If the temperature reaches a specific threshold it will sound an audible alarm.
Credit is due to an instructable that got me started. I happened to find a more convenient location to attach the RX/TX lines from the Arduino to the ELM327 adapter although I did re-purpose a good portion of his code, his instructable can be found here:
The entire project is fairly simple to implement, however this device will continue to draw power from the car’s battery if it is left plugged in while the car is turned off. The draw wont be much, maybe a couple hundred mA, you could most likely leave it connected for a very long time without causing an issue; however I did think it was worth mentioning.
A small word of caution, the first ELM327 adapter I received was a clone and didn’t end up working as I expected it to. The second unit I ordered was laid out the way I expected and worked great.
The cost of this project is pretty minimal, I think I picked up the ODB II scanner for $10 plus shipping. The only other costs, are an Arduino and a small speaker. In total I think I spent $28 on this project.
Step 1: Program the Arduino
The code is available at the following URL:
Download the repository and upload the sketch to the Arduino. If you have programmed an Arduino before this step is very simple.
Step 2: Making the Proper Connections
Start by removing the USB connector.
In total four connections need to be made to connect the Arduino Mini to the OBD II Adapter.
1. 5V from the USB connection
2. GND from the USB connection
3. RX need to connect to TX on Arduino Mini
4. TX needs to connect to RX on Arduino Mini
I used wires the small connectors at the end, this allowed me to solder the 4 wires to the appropriate spots on the OBD II adapter. I did the same thing with the Arduino Mini, then afterward I used pin headers to attach the Arduino to the ELM327. This doesn't have to be done,but allows you to swap the RX/TX lines in case you get them backwards. This is also useful if you want to re-program the Arduino.
The speaker is connected to pin 12 on the Arduino and GND.
Alternatively you could use SoftwareSerial instead of the dedicated RX/TX lines on the Arduino, I just happened to go with the method above and skipped using SoftwareSerial.
Step 3: Put Everything Back Together
After all the connections have been made, it is time to put everything back together. Keep a close eye on your wired when putting on the case, you don't want to accidentally snag a wire, or screw through a wire.
The wires will go through the USB cable hole in the case, and then you can glue to tape the Arduino to the outside of the plastic case. Next glue the speaker in place.