Skip to content

Connected-CAR/CAN-based_Vehicle_Control

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CAN-based_Vehicle_Control

CAN 통신 기반 차량 전장 제어 시스템


📖 Table of Contents

Table of Contents
  1. ➤ 프로젝트 소개
  2. ➤ 기능 명세
  3. ➤ 프로젝트 설계
  4. ➤ 기능 설명
  5. ➤ 시연 영상

-----------------------------------------------------

📝 프로젝트 소개

이 프로젝트는 GUI와 CAN 통신을 기반으로 차량 전장 제어를 구현한 시스템입니다.
차량 내 전장 장치를 효율적으로 제어하고, 사용자 친화적인 인터페이스를 제공하여 차량 제어를 쉽게 할 수 있게 합니다.
Qt Quick을 사용한 GUI는 직관적이고 반응이 빠르며, CAN 통신을 통해 안정적인 데이터 전송이 가능합니다.

🛠️기술 스택

Frontend

HTML CSS JavaScript Qt QML

Backend

Tools & Platforms

일정 관리, API 명세 RED
화면설계, 플로우차트 draw.io

차별점

  1. 플랫폼 및 하드웨어 :

    • RENESASESP32 사용: 실제 차량에 쓰이는 르네사스 보드를 활용, 무선 통신을 위해 ESP32를 이용함.
  2. 프로그래밍 및 GUI 구현:

    • Qt Quick : 기존의 Qt Widget (XML + Python)이 아닌, 더 직관적이고 현대적인 Qt Quick(QML + C++)을 사용하여 GUI를 개발.
  3. 통신 기술:

    • CAN 통신: UART, I2C, SPI와 같은 통신 기법 대신 차량 전장에 특화된 CAN 통신을 사용하여 안정적이고 빠른 데이터 버스 구축.
  4. 제어 기능:

    • GUI 입력과 센서 값 이용: 사용자는 GUI를 통해 차량의 여러 시스템을 제어할 수 있으며, 다양한 센서 값들을 실시간으로 모니터링하고 반영할 수 있음.

-----------------------------------------------------

🍴 기능 명세

센서

  • 온습도 센서 및 조도 센서 값 Read 후 CAN 통신을 통해 Main ESP32에 전송

통신

  • Main ESP32(Client)로부터 센서 데이터를 받아 AWS IoT를 통해 AWS EC2의 DB에 센서 데이터 전송
    • AWS IoT Core Service에서 MySQL을 지원하지 않기 때문에 AWS Lambda를 이용
  • Node.js를 활용해 Web Server를 구축하고 Main ESP32(Client)의 요청에 따라 DB의 센서 데이터 반환 및 수정
  • Vue.js를 활용한 센서 데이터 분석 및 지표 시각화

사용자 GUI

  • Qt Quick(QML / C++)을 활용한 GUI 기반의 원격 제어기 생성
  • 차량 제어 명령어 DB에 전송
  • 실시간으로 측정된 센서 값을 GUI에 표시

제어

  • 차량 제어 : DB의 차량 제어 명령어에 따라 차량 구동 제어
  • 센서 제어 : DB의 센서 데이터에 따라 방향 지시등, 상향등, 비상등 및 와이퍼 제어

Open AI

  • Aws EC2내에 ChatGPT 설치 및 Node.js으로부터 DB에 저장된 센서 값 읽어오기
  • ChatGPT 활용하여 센서 값 데이터 분석 (현재 체감 온도 등) 및 시각화

-----------------------------------------------------

🌵 프로젝트 설계

회로도

동작부 ESP32

메인부 ESP32

센서부 ESP32

Renesas FPB-RA6E1


차량 프레임


통신 아키텍처 및 프로토콜


프로토콜 별 사용 이유

CAN

  • 3개의 ESP32 통신을 효율적으로 구축하기 위해 사용
    • 우선순위 기반의 메시지 전송을 통해 중요한 데이터가 먼저 전송되도록 하여 실시간 성능을 보장
    • 물리적 결함에 강한 네트워크 구조를 가지고 있어, 일부 노드의 장애가 전체 네트워크에 영향을 주지 않음
    • BUS를 기반으로, 각 장치가 고유한 메시지 ID를 사용하여 통신하기 때문에 시스템 확장이 용이함

MQTT

  • 와이파이 환경을 위한 무선 통신 연결을 위함
    • 서버에 접근하기 위해 인터넷을 활용해야 했기 때문
    • 전송하는 데이터 양이 크지 않아, 가벼운 MQTT 프로토콜 사용

HTTP

  • EC2 서버의 MySQL에 접근하는 Bridge로써 쉬운 데이터 전달과 저장을 위해 활용
    • GET/PATCH Method

SPI/I2C

  • 차량의 확실한 제어를 위해 무선 통신보다 비교적 신뢰성이 높은 유선 통신 프로토콜 사용

-----------------------------------------------------

💾 기능 설명

센서 값 Read & DB 저장


센서 값에 따른 제어

Image 1 Image 2


사용자 조작에 따른 제어


측정 데이터 시각화

🎯 시연 영상

Video Label

About

CAN 통신 기반 차량 전장 제어 시스템

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •