2009년 6월 10일 수요일

자동차의 상태를 읽어주는 OBD-II (OBD-II interface for reading car status)

자동차에는 OBD-II라 불리는 인터페이스 포트가 장착되어 있어 자동차 시스템에 문제가 생기면 이 포트를 통해 에러코드를 읽어 문제점을 파악할 수 있다.



자동차 정비소에 갔을 때 자동차의 운전석쪽 대시보드 아래쪽에 케이블을 꼽고 위의 사진과 같은 휴대용 테스터기나 컴퓨터에 연결해서 뭔가 작업하는걸 본 적이 있을텐데 그게 OBD-II 케이블이다. OBD는 On-Board Diagnostic의 약자로 문제가 생겼을 때의 에러코드 뿐 아니라 주행중 자동차의 상태(RPM, 속도, 엔진 온도 등등)도 읽어볼 수 있다.
저가형 제품인 경우 숫자로 된 에러코드만 보여주지만 고급형 제품인 경우 자동차 제조사/모델별로 그 에러코드의 의미까지도 알려준다.


가끔 Dealexterme (가격도 싸고 무료배송이고 믿을만한건 좋은데 단점은 배송에 시간이 좀 오래 걸리는 편이다) 사이트에 물건들을 구경하러 가는데 얼마전에 재미있는 제품을 하나 발견했다.
ELM327 Bluetooth OBD-II Wireless Transceiver Dongle ($54.67)로 자동차의 OBD-II 포트에 연결하면 블루투스로 컴퓨터나 PDA에 연결해서 동작시킬 수 있다.

전원은 OBD-II포트를 통해 자동차의 +12V배터리를 사용하기 때문에 별도의 배터리도 필요없다.

물론 이미 아이폰용으로는 유사한 제품을 사용한 소프트웨어(Rev)도 나와있다.
단 차이는 아이폰에는 아직까지 블투를 이용해서 데이터 전송을 할 수 없기 때문에 데이터 전송을 위해 무선랜 인터페이스를 가지고 있는 OBD-II 동글(몇가지가 나와 있는데 제일 싼게 $150 정도이다)을 아이폰에 연동해서 동작한다. 그렇기 때문에 이 프로그램은 jail-broken도 필요없다.


현재 Rev. + OBD-II 를 통해 측정할 수 있는 것들로는 Air intake temp., Barometric pressure, Boost pressure, Calculated Engine Load, Engine Coolant temp., EVAP pressure, Fuel consumption, Fuel level, Fuel pressure, Fuel trim, Intake manifold pressure, Mass Air Flow, RPM, Throttle position, Timing Advance, Vehicle speed 가 있다. 물론 OBD-II 모듈이 없는 경우에도 아이폰 자체의 GPS모듈과 가속도 센서를 사용해서 기본적으로 GPS tracking과 출발/정지시 가속능력을 측정할 수 있다.



위에 소개한 블투 OBD-II 동글과 arduino, GPS 모듈등을 사용해서 위의 프로그램과 같이 꾸며 볼 생각이다.

현재 구상한 블럭 다이어그램은 다음과 같다.

자동차에 블투 OBD-II 동글을 꼽아주고 아뒤노에 블투모듈(Serial port Bluetooth Module, $19.50), microSDHC 슬롯, GPS모듈, Nokia 6100에서 뜯어낸 LCD등을 arduino에 연결해 줄 예정이다. 이렇게 하면 차량 주행중의 연료소비, RPM, 속도, 온도, 연료소비, 이동경로등을 microSD카드에 기록해서 나중에 컴퓨터에서 분석하거나 구글맵에 연동해서 지도상에 이동경로 표시등 여러가지 재미있는 일들을 할 수 있게 된다. 또한 주행중이라도 차량에 문제가 발생시 바로 에러코드를 확인해서 원인을 파악해서 좀 더 빠르고 정확한 처치가 가능해진다.

댓글 14개:

  1. OBD 동글은 좀 땡기는데요. 가격도 저렴하고 ^^;

    그렇지 않아도 아두이노로 나중에 한번 만들어 봐야겠다...하고 있었는데...

    머 차가 구형이라 OBD를 제대로 지원하지도 않는거 같아서 의욕이 조금 떨어지긴 했지만요.

    답글삭제
  2. @펩시맨 - 2009/06/11 09:48
    OBD동글도 그렇지만 저 블투 모듈이 참 가격이 착합니다. SPP 프로파일 지원하는 시리얼-to-블투 모듈인데 $20밖에 안하거든요. 그 동안은 보통 싸도 기본 $50은 넘었었는데 말이죠.

    답글삭제
  3. 제가 말한 OBD 동글이 블투 말한건데 $50이라고 되어 있는데 $20 짜리는 어디있나요. 당장이라고 사고 싶네요.

    지원하는 소프트만 있다면....

    답글삭제
  4. @펩시맨 - 2009/06/11 10:43
    마지막 사진 바로 아래 '블투모듈'에 링크되어 있습니다. 단순히 SPP profile만 지원하는 블투모듈이라 별도 소프트도 필요없고 그냥 arduino의 시리얼 포트에 연결하고 컴퓨터와 페어링 시키기만 하면 됩니다.

    답글삭제
  5. OBD랑 상관 없는 bt2시리얼 컨버터군요..싸긴 싸네요.

    아두이노에 무선으로 프로그램을 다운로드하는것도 가능하겠네요 ^^

    지그비는 비싸서리....대신 장거리에는 유리할듯..

    지그비1은 좀 싸겠네요. 1세트로 있어야 되긴하지만...

    어차피 블투도 동글 있어야하고 비슷비슷하네요

    답글삭제
  6. @펩시맨 - 2009/06/11 11:52
    그래도 XBee를 사용할 때 보다 장점은 아뒤노에 붙일 모듈 하나만 있으면 된다는거죠. 요새 노트북들은 웬만하면 블투 다 내장하고 있으니까요. 설사 그렇지 않거나 데스크탑이라 해도 pc에 연결하는 usb 블투동글이야 http://www.dealextreme.com/details.dx/sku.11866 이런거 $2.5 정도밖에 안하니까요.

    답글삭제
  7. @펩시맨 - 2009/06/11 10:43
    아...그리고 저 OBD 블투모듈도 ELM327 칩을 사용하기 때문에 따로 소프트웨어 없더라도 AT 커맨드로 제어됩니다.

    물론 저거 사면 윈도우, PDA용 소프트웨어는 같이 따라온다고 합니다.

    답글삭제
  8. 이글 보고 dealextreme에 가서 주문해서 이틀전에 받았는데, S/W CD가 깨져서왔더군요. dealextreme에서는 다시보내주면 새로보내주겠다 하던데, 혹시 S/W만 구할 수 있는 방법이 없을까요? 가지고 계신분들이 있으시면 부탁드리면 좋겠는데요.

    답글삭제
  9. 저 역시 이글을 통해 알게되어 14일날 주문했는데 아직 발송도 안됬네요...

    보통 얼마나 걸리나요?

    CD가 멀쩡히 도착하면 ISO로 굽겠습니다.

    답글삭제
  10. @템토이 - 2009/08/17 14:57
    글쎄요. 제가 dealextreme하고 아무 관계가 없다보니.... ^^;;



    '물건이 안오거나 사기치는 곳은 아닌데 배송이 상당히 늦다'가 사람들의 일반적인 평입니다.

    답글삭제
  11. 저 동글이 혹시 아반떼 XD에도 되는건지 모르겠네요

    혹시 알고 계신분 계시면 자문좀 구하겠습니다.



    답변을 nameji@paran.com으로 주시면 정말 감사하겠습니다.

    답글삭제
  12. @MD_Guy - 2010/06/24 16:40
    기본적으로 전기적 신호는 동일하기 때문에 아반테에도 별 문제 없이 붙는걸로 알고 있습니다. 다만 100% 확신할 수 없으니 가능하면 실제 사용해 보신 분들의 사용기를 찾아보시는게 좋을거 같습니다.

    답글삭제
  13. 한국에 판매하는 곳이 있어서 저두 한번 질러봤네요.



    http://gauto.co.kr/front/php/product.php?product_no=73&main_cate_no=&display_group=

    답글삭제
  14. 죄송하지만 질문이 잇습니다..



    제가 저 파란놈 저놈을 구입했는데요..

    같은 곳에서...

    이놈이 페어링까지는 되는데.. 연결이 안되네요...

    wm 6.1 , wM6.5 버전인 삼성 스마트 폰이고요..

    당연하게도 시리얼 포트 할당까지 했고요... (뭐 불투 gps 쓰는 방법도 마찬가지라)



    프로그램 호환성은 둘째치고.. 연결 호환성은 문제가 없어야 할텐데요..

    spp 프로토콜로 알고 있는데요..



    노트북도 페어링만 되고 연결이 안되는것은 마찬가지군요..



    뭐가 문제 일까요... 따로 뭐 변수가 있나요?

    답글삭제