Skip to content

The Team project is a C++ application that uses Qt6 for its client and server desktop applications and allows for UART and TCP communication protocols.

License

Notifications You must be signed in to change notification settings

The-R4V3N/Team_project_Speedometer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

22 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Hey ๐Ÿ‘‹, I'm The-R4V3N!


Connect with me

Welcome! Glad to see you here

Team_project_Speedometer

License Lines of code

The Team project is a C++ application that uses Qt6 for its client and server desktop applications and allows for UART and TCP communication protocols.

Table of Contents

Media

Project Overview

Overview

Special Thanks to nkkyviv for the Video!

Speedometer.mp4

UML Class Diagram

UML Diagram

Features

This project showcases a Speedometer built using C++ and Qt6, accompanied by a server for remote control. It includes built-in features for monitoring temperature and battery levels, as well as turn signal lights and audible alerts. In the event of a disconnection between the server and client, a warning message will promptly notify the user."

Prerequisites

  • CMake version 3.22 or higher
  • Qt6 with the following components: Core, Widgets, Multimedia, and SerialPort
  • PlatformIO (for building and uploading firmware to the ESP32)

Building

Desktop Client and Server

To compile and run the client and server applications on the desktop:

rm -r * && cmake .. && make && ./server && ./client

Firmware for ESP32

To build the firmware for the ESP32 server:

cmake --build . --target build_server_firmware

To upload the built firmware to the ESP32 server:

cmake --build . --target upload_server_firmware

To build the firmware for the ESP32 client:

cmake --build . --target build_client_firmware

To upload the built firmware to the ESP32 client:

cmake --build . --target upload_client_firmware

Communication Protocols

By default, the TCP communication protocol is used. If you want to switch to the UART communication protocol, modify the CMakeLists.txt:

set(UARTCOM ON) # Switch this to ON for UART

Directory Structure

  • client/desktop - Contains the source code and headers for the desktop client application
  • server/desktop - Contains the source code and headers for the desktop server application
  • client/esp32 - Contains the firmware code for the ESP32 client
  • server/esp32 - Contains the firmware code for the ESP32 server

Dependencies

  • Qt6: Used for building the GUI and handling multimedia components for both the client and server.
  • Qt6::SerialPort: Used for UART communication when enabled.

Contributions

  • simonahls - Implemented the Server and the ESP32 Micro-Controller code.
  • isse89 - Implemented Server gui UART Communication.
  • Supraja493 - Implemented TCP Communication and the Abstract class the client.
  • The-R4V3N - Implemented Client gui and TCP Communication and ESP32 Micro-Controller.
  • nkkyviv - Video creation and Editing

Contributing

We welcome your contributions! If you have any ideas, suggestions, or improvements, please feel free to open an issue or submit a pull request. Before doing so, please review our Code of Conduct.

License

This project is licensed under the MIT License. Feel free to use and modify the code according to the terms of the license.

Future

In the future, this project will include additional features such as a digital clock displaying the current time and an engaging startup sequence.

The-R4V3N More about me can be found on my Website

About

The Team project is a C++ application that uses Qt6 for its client and server desktop applications and allows for UART and TCP communication protocols.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks