|
이 프로젝트는 GUI와 CAN 통신을 기반으로 차량 전장 제어를 구현한 시스템입니다.
차량 내 전장 장치를 효율적으로 제어하고, 사용자 친화적인 인터페이스를 제공하여 차량 제어를 쉽게 할 수 있게 합니다.
Qt Quick을 사용한 GUI는 직관적이고 반응이 빠르며, CAN 통신을 통해 안정적인 데이터 전송이 가능합니다.
| 일정 관리, API 명세 |
|
| 화면설계, 플로우차트 | |
플랫폼 및 하드웨어 :
- RENESAS 및 ESP32 사용: 실제 차량에 쓰이는 르네사스 보드를 활용, 무선 통신을 위해 ESP32를 이용함.
프로그래밍 및 GUI 구현:
- Qt Quick : 기존의 Qt Widget (XML + Python)이 아닌, 더 직관적이고 현대적인 Qt Quick(QML + C++)을 사용하여 GUI를 개발.
통신 기술:
- CAN 통신: UART, I2C, SPI와 같은 통신 기법 대신 차량 전장에 특화된 CAN 통신을 사용하여 안정적이고 빠른 데이터 버스 구축.
제어 기능:
- 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를 활용한 센서 데이터 분석 및 지표 시각화
- Qt Quick(QML / C++)을 활용한 GUI 기반의 원격 제어기 생성
- 차량 제어 명령어 DB에 전송
- 실시간으로 측정된 센서 값을 GUI에 표시
- 차량 제어 : DB의 차량 제어 명령어에 따라 차량 구동 제어
- 센서 제어 : DB의 센서 데이터에 따라 방향 지시등, 상향등, 비상등 및 와이퍼 제어
- Aws EC2내에 ChatGPT 설치 및 Node.js으로부터 DB에 저장된 센서 값 읽어오기
- ChatGPT 활용하여 센서 값 데이터 분석 (현재 체감 온도 등) 및 시각화
- 3개의 ESP32 통신을 효율적으로 구축하기 위해 사용
- 우선순위 기반의 메시지 전송을 통해 중요한 데이터가 먼저 전송되도록 하여 실시간 성능을 보장
- 물리적 결함에 강한 네트워크 구조를 가지고 있어, 일부 노드의 장애가 전체 네트워크에 영향을 주지 않음
- BUS를 기반으로, 각 장치가 고유한 메시지 ID를 사용하여 통신하기 때문에 시스템 확장이 용이함
- 와이파이 환경을 위한 무선 통신 연결을 위함
- 서버에 접근하기 위해 인터넷을 활용해야 했기 때문
- 전송하는 데이터 양이 크지 않아, 가벼운 MQTT 프로토콜 사용
- EC2 서버의 MySQL에 접근하는 Bridge로써 쉬운 데이터 전달과 저장을 위해 활용
GET/PATCHMethod
- 차량의 확실한 제어를 위해 무선 통신보다 비교적 신뢰성이 높은 유선 통신 프로토콜 사용









