Ein interaktives PyQt6-Dashboard zur Visualisierung und Analyse simulierten Temperaturdaten mit zusätzlichen Funktionen wie Kamera-Livestream, CSV-Export, Snapshot- und Videoaufzeichnung.
Der Sensor Monitor ist eine interaktive Anwendung, mit der sich Temperaturdaten von Sensoren in Echtzeit überwachen, analysieren und dokumentieren lassen. Entwickelt wurde das Projekt im Rahmen eines Softwareentwicklungsprojekts mit Python und PyQt6. Ziel war es, eine benutzerfreundliche Oberfläche zu schaffen, die nicht nur Messwerte live darstellt, sondern auch Auswertungen ermöglicht und praktische Zusatzfunktionen bietet. Die Anwendung zeigt die Temperaturdaten in einem Live-Diagramm an und protokolliert alle Werte automatisch in einer Tabelle, sodass der Verlauf jederzeit nachvollzogen werden kann. Neben der reinen Anzeige werden auch statistische Kennzahlen wie Minimum, Maximum und Durchschnitt berechnet und grafisch aufbereitet. Zusätzlich erkennt das System kritische Wertebereiche und reagiert bei Überschreitungen mit visuellen Hinweisen und einer Sprachausgabe als akustische Warnung. Ein weiteres Highlight ist die integrierte Kamerafunktion. Damit kann man ein Livebild anzeigen lassen, Schnappschüsse machen oder Videoaufnahmen starten – etwa zur zusätzlichen Dokumentation von Umgebungsbedingungen. Auch ein Screenshot der Benutzeroberfläche kann mit einem Klick erstellt werden. Die Daten lassen sich bei Bedarf als CSV-Datei exportieren oder als PDF-Bericht ausgeben. Darüber hinaus gibt es eine Druckfunktion, um Ergebnisse direkt zu Papier zu bringen. Die Anwendung unterstützt sowohl einen hellen als auch einen dunklen Modus und passt die Abtastrate automatisch an die aktuelle CPU-Auslastung an, um effizient zu arbeiten. So bietet das Sensor Monitor eine umfassende Lösung zur Messwerterfassung und -auswertung mit vielen nützlichen Funktionen, die im Alltag eines technischen oder wissenschaftlichen Projekts echten Mehrwert schaffen.
Damit der Sensor Monitor lokal ausgeführt werden kann, sind einige Voraussetzungen notwendig. Zunächst muss Python in der Version 3.10 oder höher auf dem System installiert sein. Die Anwendung basiert vollständig auf Python und nutzt keine externen ausführbaren Programme, wodurch sie plattformunabhängig und leicht portierbar ist. Nach der Installation von Python müssen die benötigten Bibliotheken über pip installiert werden. Diese beinhalten unter anderem PyQt6 für die Benutzeroberfläche, PyQtGraph für die grafische Darstellung der Daten, OpenCV für die Kamerafunktionen, pyttsx3 für die Sprachausgabe und psutil zur Ermittlung der Systemauslastung. Die Installation erfolgt über folgenden Befehl im Terminal oder in der Eingabeaufforderung: • pip install pyqt6 pyqtgraph opencv-python pyttsx3 psutil Nach erfolgreicher Installation kann die Anwendung direkt durch Ausführen der Python-Datei gestartet werden. Es sind keine weiteren Konfigurationsschritte notwendig – alle Einstellungen werden beim ersten Start automatisch im lokalen Benutzerprofil gespeichert.
pip install pyqt6 pyqtgraph opencv-python pyttsx3 psutil
python main.py
Benötigte Bibliotheken:
- PyQt6
- pyqtgraph
- psutil
- opencv-python
- pyttsx3
Funktion | Beschreibung |
---|---|
👤 Benutzerauswahl | Dropdown zur Auswahl bzw. Eingabe des Benutzernamens |
🕒 Datum & Uhrzeit | Anzeige der aktuellen Systemzeit, automatische Aktualisierung |
🌙 Theme-Umschalter | Wechsel zwischen Light Mode und Dark Mode |
📸 Screenshot erstellen | Speichert ein Screenshot der gesamten Anwendung |
🗂️ Menüleiste | Datei-Menü mit Optionen: Neu, Öffnen, Beenden |
Funktion | Beschreibung |
---|---|
📈 Live-Diagramm | Darstellung der aktuellen Sensordaten mit Farbmarkierung nach Status |
⚙️ Frequenz-Slider | Zeigt aktuelle Messfrequenz, automatisch gesteuert je nach CPU |
🌡️ Grenzwert-Eingabe | Benutzerdefinierter Schwellenwert (in °C) |
Startet oder stoppt die Datenmessung | |
💾 CSV-Export | Exportiert alle Messdaten als CSV mit Benutzername |
📢 Sprachwarnung (TTS) | Automatisierte Sprachausgabe bei kritischer Temperatur |
📊 Statistiken | Anzeige von Mittelwert, Maximalwert, Minimalwert |
✅ |
Farbige Anzeige des Temperaturstatus: Normal, nah, kritisch |
Funktion | Beschreibung |
---|---|
🧾 Tabelle mit Logdaten | Zeigt alle bisherigen Messwerte mit Zeit, Sensorname, Wert, Status |
Funktion | Beschreibung |
---|---|
📊 Balkendiagramm | Visualisiert Max, Min und Mittelwert |
🔢 Zähler | Zeigt Anzahl aller Normal-, Warn- und Kritisch-Werte |
🚨 Warnungszähler | Separater Zähler für kritische Grenzwertüberschreitungen |
Funktion | Beschreibung |
---|---|
📈 Trenddiagramm | Darstellung des Temperaturverlaufs der letzten 100 Werte |
ℹ️ Trendanzeige | Textanzeige des aktuellen Trends (optional erweiterbar) |
Funktion | Beschreibung |
---|---|
📷 Livebildanzeige | Anzeige des Kamerabildes in Echtzeit (OpenCV) |
📸 Snapshot speichern | Speichert ein aktuelles Kamerabild |
🎥 Videoaufnahme | Startet/stoppt eine Aufnahme des Kamerabildes als .avi-Datei |
Menüpunkt | Funktion |
---|---|
Neu | Setzt das gesamte Dashboard zurück: löscht Messwerte, Statistik, Diagramme |
Öffnen | Öffnet das Projektverzeichnis im Datei-Explorer |
Beenden | Schließt das Programm |
Die Umsetzung des Projekts erfolgte im Team und wurde von Anfang an gemeinsam geplant und besprochen. Wir haben alle Schritte, vom ersten Entwurf über die Umsetzung bis hin zum Testen, als Gruppe abgestimmt, wodurch jeder jederzeit einen Überblick über das Gesamtprojekt hatte. Gleichzeitig hat aber auch jede Person eine konkrete Aufgabe übernommen, um die Arbeit effizient zu strukturieren und Verantwortung zu verteilen. In der Hier sieht man die Verantwortung der einzelnen Projektmitglieder:
Name | Beiträge |
---|---|
Yamen Alhammoud | Kamera- und Speicherfunktion • Nutzung von OpenCV zur Anzeige von Live-Bildern • Speichern von Bildern und Videos in Ordnern • Integration der Kamerabilder in die GUI • CSV |
Yazan Alhammoud | Diagramme und Statistik-Update • Datenvisualisierung • Trendanalyse • Statistische Auswertung von Sensorwerten • Balkendiagramm |
Celine Wendt | Bedienelemente und Menüführung • Start- und Stopp-Funktionen • Steuerung der Sensor Datenübertragung • Allgemeine Menüstruktur • Tabs |
Zainab Raad Hussein Hussein | Benutzerinteraktion und Anzeige • Themenauswahl via ComboBox • Statistische Kennzahlen • Frequenz-Slider und Eingabeelemente • Timer |
- Ideenfindung
- UI-Prototyping
- Sensor-Logik
- Live-Plot und Alarmierung
- Statistik & CSV-Export
- Kamera & Video
- Tests & Optimierung
- Doku & Präsentation