Intro
This is a project of mine that I wanted to share with anyone that is interested in same thing that I was. I just wanted a simple output of the Coolant Temperature data that the ECU already has in its memory. That's easier said than done. Since the car industry has decided to use a different variety of protocols internally. The OBD2 standard is not really a standard you would typically think of. The only thing that is considered standard in my mind is the Connector. But as far as the signals that's all up in the air. That is why you need a middle man. That middle man is the ELM327 chip. The Chip translates all the 10 different protocols to a single protocol. Now a days they come in a cheap package. Ebay $5.00 dollars with Bluetooth or a USB adapter but Bluetooth is cheaper.
Other parts you will need is an Arduino Microcontroller, a Bluetooth adapter and a Display for the output.
Here are the parts needed
Arduino Uno
Connections
HC05 Bluetooth Setup
Connections
HC05 will be the Master. ELM327 will be the Slave.
Programming
(Should blink on off every 2 seconds)
My ELM327 Address is 12:3.4:56:78:9c:72 ( You need to find yours)
My HC05 Address is 00:14:03:05:97:07 ( AT+ADDE? = +ADDR: 14:3:59707 ) no zeros ( Not really needed )
AT Commands to set up HC05 to connect permanantly to ELM327
Note:
When programming Arduino remove HC05 connection from TX RX Pins of Arduino
LCD I2C Display
Note: The Wire.h Library is in the Program Files folder but need to be copied to the Library folder of the user's profile. It must be in the same library directory as the LiquidCrystal_I2C.h library
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.h
C:\Users\alien\Documents\Arduino\libraries\Wire\Wire.h
C:\Users\alien\Documents\Arduino\libraries\LiquidCrystal_I2C
Need following code for I2C display. The hardware ID is hardcoded in theI2C chip. In this case it's 0x3F