전체 글 118

<2단계> Flutter_blue_plus 예제로 OBDII(ELM327) Notify 확인(7)

가장 궁금했던, OBDII ELM327칩이 전송 받은 명령에 대해 응답하는가? (Notify 기능)에 대해 확인했습니다. 이전글에서 진행했던것 처럼 AT 명령을 string으로 보내고 응답 받도록 코드를 수정했습니다. 각각 배열의 값을 변경해서 아래 4가지 서비스 선택후 결과 확인하면, (3) 조건만 응답 확인이 가능합니다. (1) services[0], characteristics[0] = 0x2A00 (2) services[1], characteristics[0] = 0x2A05 (3) services[2], characteristics[0] = 0xFFF1 (4) services[2], characteristics[1] = 0xFFF2 (참고)Visual studio code의 "디버그 콘솔창"에서..

<2단계> Flutter_blue_plus 예제 코드로 OBDII write 명령 실행(6)

example 코드 수정해서 OBDII 명령(ELM327 AT 명령) 보내기 위해, 아래와 같이 "device_screen.dart" 코드를 수정하여 전송 버튼 만듭니다. 실행하면 아래 처럼 우측 상단에 작은 버튼 하나 생성됩니다. 위의 버튼을 눌렀을 때 실행될수 있도록 _sendElm327Command() 함수 만들어줍니다. 아래 두줄로 Service UUID = 0x1801의 Characteristic 0x2A05 선택해줍니다. BluetoothService basicObiidiService = services[1]; BluetoothCharacteristic pidCharacteristic = basicObiidiService.characteristics[0]; 원하는 기능을 선택하려면 현재 사용..

<2단계> Flutter_blue_plus 예제 android 실행 결과와 API 정리(5)

(참조) flutter_blue_plus: ^1.31.2 (코드) https://github.com/boskokg/flutter_blue_plus (1)VSC에서 example의 main.dart 우클릭후 실행하거나 (2)터미널 창에서 직접 "flutter run" 실행 둘다 가능합니다. 실행하면에서 (1)버튼은 BT 스킨 기능이며, (2)원하는 OBDII 동글과 연결합니다. (3)MTU 사이즈 변경, (4)서비스 종류 검색 기능입니다. 위의 순서대로 진행해서 (4)Get service 누루면 서비스 UUID가 3개 나옵니다. 각각의 내용을 열어보면, 0x1800과 0x1801은 OBD 통신에 사용할 수 없고(이전글 참조) 0xFFF0에 있는 0xFFF1과 0xFFF2중 0XFFF1만 사용 가능합니다. ..

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

지금까지는 PC, 또는 ESP32등에서 ELM327 AT 명령 전송/수신에 대한 경험이 있지만 스마트폰에서 진행해 보지 못해서, 안드로이드폰 앱에 있는 "LightBlue"라는 앱을 통해서 어떻게 전달 되는지 먼저 경험했습니다. (참조) https://blog.naver.com/chandong83/222852750573 ← 댓글 (앱) 안드로이드만 있음 → LightBlue (이앱은 BLE만 가능합니다.) 좀더 상세히 설명하면 아래와 같습니다. ELM327 명령 전송 & 수신 성공 사례 → Write와 Notify 기능이 있어야 명령 전송과 수신이 가능함 : (3)참조 위의 사진에서 (3)항목의 UUID만 write 기능과 Notify, 그리고 Subscribe 기능이 있습니다. (4)에서 String으..

<2단계> 미리 학습해야 할것 : Bluetooth Low(BLE) spec(3)

새롭게 등장한 허들.... Flutter_blue_plus 라이브러리 예제를 돌려보면 메뉴에 무슨 의미인지 모르는 값들이 나옵니다. 0x1800, 0x1801, 0xFFF0등등... 이전 ESP32나 Arduino로 BT 접속하여 통신할때는 몰라도 상관없었는데..이것을 모르면 스마트폰에서 콘트롤이 안됩니다. Bluetooth에서 0x1800, 0x1801, 0xFFF0은 다음과 같은 의미를 갖습니다. (참고 자료) Assigned Numbers * 0x1800: Generic Access Service (GAP) * 0x1801: Generic Attribute Service (GATT) * 0xFFF0: Vendor Specific Service GAP은 Bluetooth Low Energy (BLE)..

<2단계> Flutter, Dart 예제- dart:ffi 사용한 C 상호 운용 예제(2)

Flutter_blue_plus 라이브러리내 example 소스 코드 분석을 바로 하고 싶었는데, 외계어 수준이라 포기하고.. 1)우선 "flutter 어플리케이션 만들어 보기"를 먼저 따라해서 대략 감을 익혔습니다. (참조) https://codelabs.developers.google.com/codelabs/flutter-codelab-first?hl=ko#0 2)다음으로 진행한 것은 Dart 예제를 모두 돌려보는 것입니다. https://dartpad.dev/?id=e75b493dae1287757c5e1d77a0dc73f1 ← DartPad https://dart-ko.dev/codelabs ← dart codelab https://github.com/lkmandy/dart_practice ← da..

<2단계> Flutter : 푸조 전용 OBD앱 제작- 새로운 언어에 막히다(1)

우선 서둘러 Flutter 설치하고 예제 돌려보기로 합니다. (참고) Mac에 flutter 설치해 보자 (참고) Mac에서-Flutter-설치하기 (참고) 공식 사이트 → mac os : https://docs.flutter.dev/get-started/install/macos 위의 내용을 참고하여 mac mini(M1)에 설치했습니다. 워낙 설명이 잘되어 있어서 여기서는 다루지 않겠습니다. 추가로 Flutter_blue_plus 라이브러리 설치하고 소스 코드 분석하려는.... 순간.....(침묵) 거의 맨붕 상태에 빠집니다. 무식해서 허들이 뭔지도 모르고 여기까지 왔는데, 소스 코드를 들여다 보니, 숨이 턱 막힙니다. ㅠㅜ https://pub.dev/packages/flutter_blue_plus#..

<2단계> Flutter로 푸조 전용 OBD ELM327앱 만들기

(이전글)에서 정리했던 완료되었습니다. (총11편 작성) 기본 기술 학습 (완료) 1) C 나 C++로 만들어진 오픈 소스 코드 분석 (3가지 사례) 2) 임베디드 소형 PC에 올려서 동작 확인( Arduino or ESP32 ) 다음으로, 이제 2단계 절차 진행했던 내용 정리해보겠습니다. 안드로이드, iOS, 윈도우, Mac OS에서 사용 가능한 앱 제작 가능할까? 1) C++ 또는 dart 혼합형 Flutter앱 개발 가능성 확인 2) "dart" + "Flutter" 언어 이해 3) OBDII 프로토콜 : peugeot 디젤 차량에 맞게 "C++ 라이브러리 수정" 사용하는 스마트폰은 아이폰입니다. 그러나 푸조 차량에 사용하는 OBDII앱은 FAP citroen/peugeot elm32..

(1단계 최종)Arduino-psa-diag C++ 활용 ELM327 명령 송수신(2)-5

마지막으로 검토했던 오픈 소스코드입니다. (세번째) Arduino-psa-diag ← (hw) arduino 사용 ; Peugeot 엔지니어 출신이 만든것으로 추정됩니다. 찾아본 자료중에 가장 전문적인 오픈 소스입니다. -mac mini (M1) -arduino IDE -Arduino (uno 사용했습니다) -MCP2515 SPI CAN 버스 모듈 (Arduino와 함께 MCP2515 SPI CAN 버스 모듈을 사용하는 방법) 1) 소스 코드 다운로드하고.. git clone https://github.com/ludwig-v/arduino-psa-diag.git ← 다운로드시 내부에 libraries가 있음 2) Arduino IDE에서 MCP2515 사용할 수 있도록 Custom 헤더 ..

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

(참고) 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 동글과 -블루투스가 인식되는지 확인 -Putt..