Hey 馃憢, I'm The-R4V3N!
Connect with me
Welcome! Glad to see you here
Team_project_Speedometer
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
Special Thanks to nkkyviv for the Video!
UML Class 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 applicationserver/desktop- Contains the source code and headers for the desktop server applicationclient/esp32- Contains the firmware code for the ESP32 clientserver/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.
More about me can be found on my Website