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.
Project Overview
Special Thanks to nkkyviv for the Video!
Speedometer.mp4
UML Class Diagram
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."
- 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)
To compile and run the client and server applications on the desktop:
rm -r * && cmake .. && make && ./server && ./client
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
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
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
- Qt6: Used for building the GUI and handling multimedia components for both the client and server.
- Qt6::SerialPort: Used for UART communication when enabled.
- 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
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.
This project is licensed under the MIT License. Feel free to use and modify the code according to the terms of the license.
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