Stránka 1 z 1

OBD II, PID príkazy pre O3

Napsal: 05 dub 2025, 20:38
od misocko
Ahojte
Chcel by som si spraviť niečo čo mi bude signalizovať regeneráciu DPF (k tomu nejaké zaujimavosti ako teplota DPF, nejaký tlak, tlak turba...).
Cez arduino. Mám teda DUE, ES8266, ELM327, cez Wifi.
Keďže najdené projekty su s knižnicami ktoré dávno nefungujú, idem bez knižníc. Už dokážem načítať napr. otáčky motora, PID - "010C" a zopár ďalších. Ale nič čo by sa približovalo tomu čo chcem. Dokonca sa viem napichnuť na komunikáciu medzi mobilom - apka WagDPF a ELM327, ale vidim (na serial monitore zatiaľ) len odpovede ELM, neviem ake príkazy posiela mobil.
Vie mi niekto poradiť konkretne PID ktoré moja O3 podporuje?
Vprípade že bude zaujem, postnem sem výsledný "projekt".
Vopred Ďakujem

Napsal: 05 dub 2025, 21:03
od vasekpetr1
Nevím, jak je to na O3, ale na naftové Zafiře 1,9 šlo indikovat spuštění regenerace kontrolkou vyhřívání zadního okna nebo zpětných zrcátek - systém si tímto přidával zátěž na motor, takže stačilo se napíchnout na kabel vyhřívání zrcátek a člověk věděl, kdy se regenerace spustila. Pravda, není tam tlak na turbu a další vychytávky...
Ale je fakt, že spuštění regenerace jsem poznal i bez kontrolky - motor dostal jiný zvuk, rapidně vzrostla okamžitá spotřeba, motor zasmrděl a šel za mnou bílý dým :D .

Napsal: 05 dub 2025, 21:37
od misocko
Nemám problém s tým zistiť že prebieha regenérácia, za tie roky už podľa zvuku motora (pri nizkej záťaži) aj podľa výkonu (keď zatlačím), viem cca kedy prebieha, ale keď už sa hrám s Arduinom, možno by sa niekomu hodilo. Len tie PID su asi tajné... Kurňa ale aj v tej WagDPF apke ich museli použiť...
BTW, biely dym som si doteraz nevšimol - dá sa podľa smradu keď stojíš, smrdí to ako spalena guma, a spaliny z výfuku su vtedy fest horúce. Čo sa týka spotreby, koncern nemá problem klamať, a žiaden viditeľný nárast spotreby na palubáku nevidim :(

Napsal: 06 dub 2025, 08:50
od MiloPS3
cau,nul si vevsimej , zakomentovany jsou odpovedi, dpf1 je vypalovani / 0 nevypaluje / 7 vypaluje

Kód: Vybrat vše

					{0x03,0x22,0x29,0x5A,0x55,0x55,0x55,0x55},		//kilometry
					{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
					//0x06 0x62 0x29 0x5A 0x02 0x50 0xD7 0xAA
					{0x03,0x22,0x20,0x8D,0x55,0x55,0x55,0x55},		// -//-  od posleni reg. /10
					{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
					//0x05 0x62 0x20 0x8D 0x0C 0xDB 0xAA 0xAA
					{0x03,0x22,0x3D,0x7F,0x55,0x55,0x55,0x55},		// teplota dpf  /10
					{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
					//0x05 0x62 0x3D 0x7F 0x04 0x56 0xAA 0xAA
					{0x03,0x22,0x20,0x8B,0x55,0x55,0x55,0x55},		// zaplneni dpf 0-24 g   /100
					{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
					//0x05 0x62 0x20 0x8B 0x08 0xAC 0xAA 0xAA
					{0x03,0x22,0x20,0x87,0x55,0x55,0x55,0x55},		// stav dpf1 ?
					{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
					//0x05 0x62 0x20 0x87 0x00 0x00 0xAA 0xAA
					{0x03,0x22,0x40,0x6C,0x55,0x55,0x55,0x55},		// oil ash residue
					{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
					//0x05 0x62 0x40 0x6C 0x10 0x9A 0xAA 0xAA
					{0x03,0x22,0x20,0x88,0x55,0x55,0x55,0x55},		// stav dpf2 ?
					{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}
					//0x05 0x62 0x20 0x88 0x00 0x00 0xAA 0xAA
					
					};

Kód: Vybrat vše

1/2/2025,11:38:18-158087,490,222,44.03,23.50,0,0
1/2/2025,11:39:18-158088,491,225,44.03,23.54,0,0
1/2/2025,11:40:18-158089,492,261,44.03,23.59,0,0
1/2/2025,11:41:18-158090,493,265,44.03,23.60,0,0
1/2/2025,11:42:18-158091,494,305,44.03,23.63,0,0
1/2/2025,11:43:18-158093,496,322,44.03,23.66,0,0
1/2/2025,11:44:18-158094,497,278,44.03,23.70,0,0
1/2/2025,11:45:18-158095,498,274,44.03,23.79,0,0
1/2/2025,11:46:18-158097,500,288,44.03,23.89,0,0
1/2/2025,11:47:18-158098,501,308,44.03,23.97,0,0
1/2/2025,11:48:18-158100,503,295,44.03,24.06,7,0 <-
1/2/2025,11:49:23-158101,504,429,44.04,24.14,7,0 <-
1/2/2025,11:50:23-158103,506,506,44.04,23.80,7,0 <-
1/2/2025,11:51:23-158104,507,538,44.04,22.87,7,0 <-
1/2/2025,11:52:23-158106,508,556,44.04,21.57,7,0 <-
1/2/2025,11:53:23-158107,510,568,44.04,19.97,7,0 <-
1/2/2025,11:54:23-158108,511,575,44.04,18.08,7,0 <-
1/2/2025,11:55:23-158109,512,566,44.04,16.38,7,0 <-
1/2/2025,11:56:23-158110,513,557,44.04,15.53,7,0 <-
1/2/2025,11:57:23-158110,513,560,44.04,14.97,7,0 <-
1/2/2025,11:58:23-158112,514,564,44.04,14.10,7,0 <-
1/2/2025,11:59:23-158112,515,597,44.04,12.78,7,0 <-
1/2/2025,12:0:23-158113,516,603,44.04,11.03,7,0 <-
1/2/2025,12:1:23-158113,516,593,44.04,9.74,7,0 <-
1/2/2025,12:2:23-158113,516,574,44.04,9.19,7,0 <-
1/2/2025,12:3:23-158113,516,577,44.04,8.70,7,0 <-
1/2/2025,12:4:23-158113,516,593,44.04,8.06,7,0 <-
1/2/2025,12:5:24-158113,516,594,44.04,7.49,7,0 <-
1/2/2025,12:6:24-158113,516,590,44.04,6.98,7,0 <-
1/2/2025,12:7:24-158113,0,592,44.04,6.26,0,0
1/2/2025,12:8:24-158113,0,591,44.04,5.49,0,0

Kód: Vybrat vše

nowTime.day ,nowTime.month,nowTime.year ,nowTime.hour ,nowTime.minute ,nowTime.second, km_1 ,km_2/10,tmp_/10 ,dpf_oar/100,mass_/100 ,dpf_1 ,dpf_2

Napsal: 06 dub 2025, 10:02
od misocko
ahoj
bohužiaľ moje doterajše skusenosti su max poslat jeden comand
napr "010C"
absolutne netušim ako by som mal poslať to čo si postol. Vieš mi s tým nejako pomocť?

napr moj kod na zistenie otačok , dalo by sa aby vratil teplotu DPF ? (nemusi rovno vypocitat teplotu v °C , stačilo by mi ta odpoveď v hexa)

Kód: Vybrat vše

#define ESP8266 Serial2  

void sendAT(String cmd, int wait = 1000) {
    Serial.print("AT príkaz: ");
    Serial.println(cmd);
    ESP8266.println(cmd);
    delay(wait);

    while (ESP8266.available()) {
        Serial.write(ESP8266.read());
    }
    Serial.println();
}

// Funkcia na výpočet RPM z odpovede
int parseRPM(String response) {
    if (response.startsWith("41 0C")) { // Overíme, či je to správna odpoveď
        int A = strtol(response.substring(6, 8).c_str(), NULL, 16); // 3. byte
        int B = strtol(response.substring(9, 11).c_str(), NULL, 16); // 4. byte
        return ((A * 256) + B) / 4;  // Výpočet RPM
    }
    return -1; // Neplatná odpoveď
}

void setup() {
    Serial.begin(115200);  // PC monitor
    ESP8266.begin(115273); // ESP8266 komunikácia

    delay(3000);
    Serial.println("ESP8266 + ELM327 Wi-Fi test");

    sendAT("AT");  
    sendAT("AT+CWMODE=1");  
    sendAT("AT+CWJAP=\"WiFi_OBDII\",\"\""); 
    delay(5000);

    sendAT("AT+CIPSTART=\"TCP\",\"192.168.0.10\",35000"); 
    delay(2000);
}

void loop() {
    sendAT("AT+CIPSEND=5");
    sendAT("010C\r");  // Pošleme požiadavku na RPM

    delay(1000); // Počkáme na odpoveď

    String response = "";
    while (ESP8266.available()) {
        char c = ESP8266.read();
        response += c;
    }

    int rpm = parseRPM(response);
    if (rpm != -1) {
        Serial.print("RPM: ");
        Serial.println(rpm);
    } else {
        Serial.println("Neplatná odpoveď");
    }

    delay(2000); // Čítanie každé 2 sekundy
}
Ďakujem

Napsal: 06 dub 2025, 10:51
od MiloPS3
tet sem si vsim ze to mas po wifi, ja po CANu ... :oops:

Napsal: 06 dub 2025, 10:55
od misocko
Aha :lol: , aj tak Ti ďakujem za snahu.