DPF 모니터링을 위한 대시보드 제작기-1
나의 2014년식 말리부는 경유를 먹는다. 토크빨로 치고 나가는 힘도 좋고, 고속도로 정속 주행 땐 리터당 20km 가량의 연비를 보여줘서 꽤 만족하면서 타고 있다. 물론 부품값이 비싸고, 그 마저도 쉽게 구하기 어려운 것들이 있어서 알리나 이베이를 뒤져야한다는 문제는 있다.
디젤차는 DPF 관리가 숙명이다. DPF는 Diesel Particulate Filter의 약자로 디젤이 뿜는 각종 오염 물질을 필터에 가둬뒀다가 어느 정도 차면 불로 태워버리는 장치로 환경을 위해서는 꼭 필요한 장치이다. 문제는 관리가 까다롭다는 점이다. 때때로 장거리 고속 주행을 하면서 DPF를 태워줘야 하고, 목적지에 다다랐을 때 DPF가 터지기라도하면 완료되기 전까진 시동을 끄지 않아야 한다. 망가지면 몇 백만원은 깨지기 때문에 귀찮음을 감수해야하는 것이다.
지금까지 '몬스터게이지'를 통해 DPF 포집량을 확인하고, DPF가 재생 중인지를 확인해왔다. OBD2 단자에 몬스터게이지를 꽂고, 자동차에 내장된 태블릿에 티맵과 함께 띄워서 사용한 것이다. 다른 사람들은 별도의 디스플레이가 달렸고, 유선으로 OBD2 단자와 연결하는 DAG3를 사용하는 것 같기도 하다.
여튼 지금 상태로도 관리엔 문제가 없지만, 괜히 '만들기 욕구'가 생겼다. 몬스터게이지는 2016년쯤 내가 살땐 13만원쯤이었는데, 요즘은 16만원까지 오른 것 같다. 저렴한 솔루션(?)을 만들어 공개하면 말리부 디젤 DPF 관리로 고통 받는 다른 사람들에게도 도움이 될 것 같았다.
우선 검색에 들어갔다. 말리부 디젤은 오펠사의 2.0 디젤 엔진을 쓴다. 외국에선 이 엔진을 오펠 '인시그니아'라는 자동차에 쓰는 것 같다. 그래서 인시그니아(insignia)로 검색하면 꽤 많은 정보가 나온다.
각종 정보를 섭렵한 뒤 우선 'ESP32의 블루투스로 OBD2 동글과 연결하고, 정보는 동그란 모양의 디스플레이(gc9a01)로 보여준다'는 식으로 구상했다.
평소엔 Esphome을 쓰지만, 이번 만들기엔 참고할만한 esphome 예제가 없었다. 평소 잘 쓰지 않는 arduino ide를 이용하기로 결정. 코드를 잘 모르기 때문에 GPT와 Perplexity 등 생성형 AI의 도움을 받아 코드를 수정하기로 했다.
우선 옛날에 알리 '천원마트'가 진짜 천원마트였던 시절 사놓은 싸구려 ELM327을 꺼냈다. 이녀석을 차에 물리고 시동을 켜니 계기판에 온갖 오류가 떴다. 검색해보니 ELM327도 1.5 버전과 2.1 버전 등이 있는데, 1.5버전이 지원하는 차종이 더 많다고 한다. 저 파란색 ELM327은 2.1 버전이었다. 참고로 알리에선 1.5라고 해놓곤 아닌 것들도 꽤 있다고 한다. 스마트폰에 'ELM327 Identifier' 어플을 설치해서 테스트해보면 아래와 같이 1.5인지 아닌지를 판단할 수 있다.
그래서 1.5버전을 찾아다녔다. 알리 제품 설명 페이지에 ELM327 Identifier 화면을 캡처해놓은 것을 찾아 1만원 정도 주고 사봤다. 제대로 동작은 했지만, ESP32와 도무지 연결이 되지 않았다. 블루투스 버전이 문제일까 싶어서 BT4.0을 지원하는 ELM327을 또 1만원 주고 사봤다. 역시 ESP32와 연결이 안됐다. 이것 저것 테스트판다고 사모으다보니 아래처럼 ELM327을 수집(?)하게 됐다. 이 사진엔 처음 테스트했던 파란색 ELM327은 빠져있으니 현재 가진 ELM327은 총 6개다... ELM327 부자다.
여러 테스트에도 붙지 않아 위 사진 두번째의 WIFI 버전도 테스트했다. 저녀석의 ELM327 버전은 1.5라고 해서 사봤는데, 2.1이었다. 당연히 시동을 걸면 계기판서 여러 오류 메시지를 뱉아냈다.
다만, WIFI로 ESP32와 연결할 수 있다는 점은 확인했다. RPM을 정상적으로 받아왔다. 이제 1.5 버전을 지원하는 ELM327 중 WIFI로 통신하는 녀석을 구하면 될 일이다. 알리에 또 9000원쯤 주고 주문했다. 지금 배타고 열심히 건너오는 중이다.