PoBD

푸조/시트로앵 디젤 OBD 스캐너 앱 개발 이야기

Peugeot OBD app 만들기 도전

<2단계> (사전학습) 스마트폰에서 ELM327 명령 송수신 시도(4)

peugeotory 2024. 1. 13. 12:07

지금까지는 PC, 또는 ESP32등에서 ELM327 AT 명령 전송/수신에 대한 경험이 있지만 스마트폰에서 진행해 보지 못해서,
안드로이드폰 앱에 있는 "LightBlue"라는 앱을 통해서 어떻게 전달 되는지 먼저 경험했습니다.

 

(참조) https://blog.naver.com/chandong83/222852750573  ← 댓글

(앱) 안드로이드만 있음 → LightBlue  (이앱은 BLE만 가능합니다.)

 

좀더 상세히 설명하면 아래와 같습니다.
ELM327 명령 전송 & 수신 성공 사례   → Write와 Notify 기능이 있어야 명령 전송과 수신이 가능함 : (3)참조


위의 사진에서 (3)항목의 UUID만 write 기능과 Notify, 그리고 Subscribe 기능이 있습니다.
(4)에서 String으로 선택해 주고, (5)Subscribe 버튼 눌러서 unsubscribe로 변경되는지 확인합니다.

(6)Write 버튼이 있는 곳에서 AT 명령 입력하고 버튼 누르면, ATZ이 echo_on되어서 반송되고 해당 명령에 따라 응답이 기록됩니다.

(7) 여기서는 ELM327 v2.1이라고 나옵니다.

 

그렇다면 다른 서비스 UUID는 어떨까요? 아래 사진을 보면
0x1800은 read 기능만 있고, 0x1801은 nofification 기능만 있습니다.

그리고, 0xfff1은 write 기능만 있어서 AT 명령 보내기만 가능합니다.


실제로 Flutter_blue_plus example 돌려보면 위의 메뉴와 거의 유사하므로, 미리 학습하는게 효과적입니다.


(그밖에 특이점)

이전글중 불량 OBDII 동글이 있다고 언급한 적이 있었는데, 그 이유를 지금 설명하겠습니다.

이번 실험에서 사용한 동글은 알리익스프레스에서 구매한 저렴한 OBDII 동글입니다.

 

이제품은 푸조 차량에 장착하고, 푸조 전용앱(참조)으로 접속시도 하면,에러(아래 좌측 사진)가 발생합니다.

물론 인식은 잘됩니다.

 

아래 사진 우측처럼 특정 AT 명령을 보내면 인식하지 못하고 "?"를 응답합니다.

 

 

( 원인 )

 

AT명령중  ELM327 1.4b command인 " FC CRA "명령 인식 못함. 즉 불량품이라는 것입니다.

AT FC CAR 688 명령을 인식 못하면 엔진 ECU로 부터 센서 data를 불러오지 못합니다.  
(이명령외에는 모두 정상적으로 동작합니다.)