mirror of
https://github.com/SemvdH/OBD2-car-display.git
synced 2025-12-15 20:21:03 +00:00
84 lines
1.6 KiB
C++
84 lines
1.6 KiB
C++
#include "ELMduino.h"
|
|
|
|
|
|
#define ELM_PORT Serial2
|
|
|
|
|
|
ELM327 myELM327;
|
|
|
|
|
|
uint32_t rpm = 0;
|
|
|
|
|
|
void setup()
|
|
{
|
|
#if LED_BUILTIN
|
|
pinMode(LED_BUILTIN, OUTPUT);
|
|
digitalWrite(LED_BUILTIN, LOW);
|
|
#endif
|
|
|
|
Serial.begin(115200);
|
|
ELM_PORT.begin(115200);
|
|
|
|
|
|
// int bt_state = digitalRead(11);
|
|
// while (bt_state == 0)
|
|
// {
|
|
// bt_state = digitalRead(11);
|
|
// Serial.println(bt_state);
|
|
// Serial.println("bt not connected");
|
|
// delay(500);
|
|
// }
|
|
// Serial.println("bt connected");
|
|
|
|
Serial.println("Attempting to connect to ELM327...");
|
|
|
|
if (!myELM327.begin(ELM_PORT, false, 2000))
|
|
{
|
|
Serial.println("Couldn't connect to OBD scanner");
|
|
while (1);
|
|
}
|
|
Serial.println(myELM327.connected);
|
|
|
|
Serial.println("Connected to ELM327");
|
|
}
|
|
|
|
|
|
void loop()
|
|
{
|
|
float tempRPM = myELM327.rpm();
|
|
// float t = myELM327.
|
|
|
|
// float tempval3 = myELM327.fuelInjectTiming();
|
|
|
|
if (myELM327.nb_rx_state == ELM_SUCCESS)
|
|
{
|
|
rpm = (uint32_t)tempRPM;
|
|
Serial.print("RPM: "); Serial.println(rpm);
|
|
// Serial.print("feul t: "); Serial.println(tempval3);
|
|
}
|
|
else if (myELM327.nb_rx_state != ELM_GETTING_MSG)
|
|
myELM327.printError();
|
|
|
|
float tempval1 = myELM327.engineCoolantTemp();
|
|
if (myELM327.nb_rx_state == ELM_SUCCESS)
|
|
{
|
|
Serial.print("coolant: "); Serial.println(tempval1);
|
|
|
|
}
|
|
else if (myELM327.nb_rx_state != ELM_GETTING_MSG)
|
|
myELM327.printError();
|
|
|
|
float tempval2 = myELM327.oilTemp();
|
|
|
|
if (myELM327.nb_rx_state == ELM_SUCCESS)
|
|
{
|
|
Serial.print("oil: "); Serial.println(tempval2);
|
|
|
|
}
|
|
else if (myELM327.nb_rx_state != ELM_GETTING_MSG)
|
|
myELM327.printError();
|
|
|
|
|
|
}
|