녹칸다의 OBD2시리즈 4편입니다~!
이번편은 ELM327을 이용해서 OBD2의 확장PID를 요청하고 응답을 받는 방법에 대해서 살펴볼것입니다!
아두이노로 냅다하면 무슨 데이터가 오고가는지 확인하기가 어렵기때문에 스마트폰으로 페어링을 해서 먼저 데이터를 request하고 response받아보도록 합니다~~!
먼저 표준 PID는 모든 차종이 동일하게 사용가능하고 일부 지원을 하거나 하지 않는 정도의 차이가 있습니다만, 확장 PID는 제조사별로 원동기형식별로 트림별로 차이가 있을 수 있습니다~~!
제가 예시로 보여드릴 차종은 가솔린 차종인데 디젤차에만 있는 DPF포집량 같은것은 지원하지 않는 다는 것입니다~~!
아무튼 확장PID를 사용하시려면 헤더를 변경하셔야 합니다~~!
ELM327의 제조사 메뉴얼을 보면 헤더를 바꾸는 명령어가 있는데요~~!
바로 AT SH ### 입니다~~!
공통 PID는 헤더가 기본으로 7E0으로 세팅이 되어있습니다!
GM차종은 확장 PID를 사용하기 위해서 7E2로 변경해야하는데, 예시는 아래와 같습니다~~!
AT SH 7E2
그럼 성공적으로 변경했다고 OK라는 response가 날라올것입니다~!
제 차종은 확장PID를 요청할만한게 마땅치 않아서 2개만 준비 해봤는데요~!
현재 기어의 상태와 미션오일의 온도입니다~!
기어는 22199A를 요청하면 1바이트로 response가 날라오고, 미션오일온도는 221940을 요청하면 1바이트로 response가 날라옵니다~~!
성공적으로 수신했다는 의미에 40에 mode값인 22가 더해져서 62가 출력이 되면 지원이 되는 것이고, 7F면 지원이 안되는 PID라고 표현하는 것 같네요~~~!
기어상태는 response받은 1바이트값 자체가 기어의 단수이고 미션오일온도는 1바이트값을 10진수로 변환한다음 40을 빼면 미션오일온도가 되는 것입니다~!
영상에서도 설명드렸지만, 확장PID쪽은 계기판에 없는 정보가 많이 있습니다~! 쉐보레 크루즈 차종의 경우 미션이 잘 고장나기로 유명해서 미션오일 온도를 모니터링 해줘야하는데요~~~! 연식이 낮은 차종은 볼수 있는 방법이 OBD2 말고는 없습니다~~!
나중에 아두이노로 미션오일 온도를 볼 수 있는것 까지 연계를 한번 해볼 생각이니 재밋게 봐주셨으면합니다~~~!