C++ Projects

  • Project Description: Bluetooth-Controlled Reservoir Filling System with Qt Supervision

    This project enables remote control and monitoring of a water reservoir using an Arduino board, an HC-05 Bluetooth module, and a Qt-based desktop interface. A water pump is managed based on ultrasonic distance measurements and Bluetooth commands, providing real-time supervision of the filling process.

    Key elements of the project include:
    • Hardware & Firmware (Arduino): • HC-SR04 ultrasonic sensor connected to pins 9 (TRIG) and 10 (ECHO). • Pump controlled via L298N driver (IN1: D4, IN2: D5, ENA: D3). • Pump starts only if Bluetooth authorization is active and the tank level is below 4 cm. • Serial messages sent include fill percentage and motor state.
    • Desktop Application (Qt/C++): • UI designed with Qt Designer (.ui file). • Serial communication over Bluetooth COM port using QSerialPort. • Buttons for manual pump activation/deactivation and progress bar indicating fill level (%). • Label shows motor status based on real-time Arduino feedback.
    • Bluetooth Integration: • HC-05 paired with PC and exposed as a virtual serial port. • User selects the COM port and connects via a button. • One-way control and two-way feedback for status and safety.
    • Smart Control Logic: • Manual activation is overridden if the reservoir is already considered full (≤ 4 cm). • Fill percentage dynamically calculated from configurable empty/full distances. • Pump stops automatically when target level is reached.

    This project demonstrates effective integration of Bluetooth communication, embedded sensor control, and real-time UI visualization using Qt. It offers a practical framework for intelligent water or liquid tank management systems.



  • Project Description: Bluetooth-Based LED Control via HC-05 and Qt Interface

    This project enables wireless control of an LED connected to an Arduino board using a HC-05 Bluetooth module and a Qt-based desktop application. The system demonstrates seamless communication between embedded hardware and desktop software using the serial port over Bluetooth.

    Key elements of the project include:
    • Hardware & Firmware (Arduino): • HC-05 module wired to the Arduino’s hardware serial (pin 0 & 1). • LED connected to digital pin 7. • Arduino listens for single-character commands ('1' to turn on, '0' to turn off) via Serial @ 9600 baud.
    • Desktop Application (Qt/C++): • GUI built with Qt Designer (.ui file). • Uses QSerialPort to communicate over Bluetooth COM port. • UI includes COM port selection and two buttons to control the LED state.
    • Bluetooth Integration: • HC-05 configured for pairing with the PC and exposed as a virtual serial port. • Qt application detects and connects to this port for sending control signals. • Real-time feedback and connection status displayed in the GUI.
    • Modular & Extensible Design: • Clear separation between communication logic and UI components. • Easy to extend for bidirectional communication (e.g., feedback from sensors). • Portable and suitable for integration into larger embedded control systems.

    This project highlights wireless communication between Qt and Arduino, mastery of QSerialPort usage, and practical embedded control using Bluetooth—valuable skills for developing interactive IoT applications.



  • Project Description: Real-Time Environment Dashboard with DHT11 Sensor and Qt

    This project, developed as part of an embedded systems assignment, implements a complete end-to-end solution for monitoring temperature and humidity in real time. It combines an Arduino-based DHT11 sensor module with a custom Qt application that visualizes sensor data over a sliding 60-second window.

    Key elements of the project include:
    • Sensor & Firmware (Arduino): • DHT11 sensor connected to digital pin 2. • Non-blocking read every 2 s using millis(). • Data formatted as “T:<temp>;H:<hum>” and sent via Serial @ 9600 baud.
    • Desktop Application (Qt/C++): • UI designed with Qt Designer (.ui file). • Serial communication on COM5 via QSerialPort. • Parsing of “T:xx.x;H:yy.y” messages and updating of QLabel widgets.
    • Data Visualization (QtCharts): • Real-time line chart plotting temperature (°C) and humidity (%) series. • Sliding time window (last 60 s) on the X-axis, auto-updating every second. • Customizable axes, legend, and antialiasing for clear presentation.
    • Modular Design & Simulation: • Separation of concerns: sensor firmware versus GUI logic. • Easily extensible to additional sensors or alternative charting libraries. • Simulated running of the Qt app even without hardware, using dummy serial data.

    This project showcases proficiency in embedded C++, desktop GUI development with Qt, serial data handling, and real-time data visualization—key skills for modern IoT and monitoring applications.



Formulaire de contact

Envoyer