Peugeot OBD app 만들기 도전

(1단계)오픈 소스 :OBD2 C++ 활용 ELM327 명령 보내고 받기(2)-4

peugeotory 2024. 1. 7. 12:04

(참고) https://github.com/jjuiddong/OBD2 ← 윈도우 실행(한국분이 작성후 공유한 것으로 추정 : 주석문이 한글입니다.)

(참조) https://github.com/stanleyhuangyc/ArduinoOBD   ← 이것이 원본

 

두번째로 참고한 소스 코드는 OBD2라는 C++ 코드입니다.
특이하게, arduino, esp32등을 사용하지 않고 PC 자원만 그대로 사용합니다. (별도 디버거나, 미니 PC 불필요)

< 실행 환경> 

- windows 10 

- Visual studio 

- 맥북 프로(부트캠프)

;제약 조건때문에 아쉽게도 Mac mini에서 돌려보지 못했습니다.

 

 

1) 가장 먼저해야 할 것은 VS가 설치된 PC에서 대상 OBD2 동글과  
-블루투스가 인식되는지 확인 
-Putty나 Tera Term으로 at 명령어 보낼 수 있는지 확인

 

2) 점검해 보니, BLE(Bluetooth 4.0 : 여기서는 OBDII모듈), BT 3.0 모듈( 아래 사진 V-LINK)은 모두 잘 인식됩니다.

하지만, putty로 명령 전송이 BLE에서 이상하게 전달됩니다.(이유는 못찾았습니다.)

 

 

< Visual studio 빌드 에러>

(부트캠프 PC → VS 빌드) C2857 /Ycpch.h 명령줄 옵션과 함께 지정한 '#include' 문이 소스 파일에 없습니다. 에러 발생

 

<해결방법 >

main.cpp에서 우클릭하여 속성에서 미리 컴파일된 헤더 클릭후 파일 이름을 일치시켜야 합니다. (위의 사진 참조)

 

 

빌드전에 추가로 해야할 부분은 (Main.cpp) 에서 이전에 확인했던 블루투스 port 수정후 빌드 (반드시 PC에서 해당 포트가 BT와 연결되어 있어야 함)


<실행 결과>

 

CAN 신호 분석기로 확인해봐도 정확하게 읽어 옵니다.

 

별도의 디버깅 도구가 필요 없고, Arduino나 ESP32등을 구매 안해도 됩니다.
PC에서 C++ 소스코드 분석하는데 적합하므로 실행해 볼 가치가 충분합니다.