kk logo

Kennst du das? Du bist mitten im Spiel oder renderst ein Video und fragst dich: "Was macht meine GPU? Läuft mein RAM voll oder ist meine Internetleitung am Anschlag?" Ständig mit Alt+Tab in den Task-Manager zu wechseln, nervt. Und ein zweiter Monitor ist oft zu groß oder zu teuer für diesen Zweck.

Das wirkt Display ist auf allen Bildern unscharf, das liegt aber nur an den Bildern. Im original sind die Farben sehr hell und klar und die Schrift gestochen scharf!

1 PC Hardware Monitor mit Uhrzeit und Temperatur über Arduino und 4 TFT

Die Lösung: Ein externer Hardware-Monitor auf deinem Schreibtisch, der dir alle wichtigen Daten live anzeigt ganz ohne Performance-Verlust. Dieses Projekt ist die perfekte Brücke zwischen deinem PC und deinem Schreibtisch-Setup. Ein kleines Python-Skript sammelt im Hintergrund alle wichtigen Systemdaten (CPU-Last, GPU Modell & Auslastung, RAM, Festplattenbelegung und Netzwerk-Speed) und schickt sie per USB an einen Arduino. Dieser füttert ein 4" TFT-Display, das dir die Werte in einer schicken Optic anzeigt. Unten links im Bild zu sehen. 

pc leistung auf externem monmitor selber bauen

So funktioniert das System

Das gesamte Projekt basiert auf einer einfachen, aber effektiven Kette. Die Hardware-Daten entstehen direkt in deinem PC. Da der Arduino keinen direkten Zugriff auf den internen Windows-Datenbus hat, übernimmt ein kleines Programm auf dem Computer die Rolle des Vermittlers. Dieses Skript sammelt die Informationen ein, bereitet sie mundgerecht auf und schickt sie über das USB-Kabel an den Arduino. Dieser fungiert als Übersetzer: Er nimmt die Textdaten entgegen, zerlegt sie in ihre Einzelteile und zeichnet daraus die grafischen Elemente wie Balken, Kurven oder eine analoge Uhr auf das Display.

Warum Python die ideale Basis ist

Vielleicht fragst du dich: "Warum brauche ich überhaupt Python? Kann der Arduino das nicht alleine?" Die Antwort ist einfach: Der Arduino ist ein tolles Steuergerät, aber er hat keinen direkten Zugriff auf die tiefen Systemdaten von Windows.

  • Bibliotheken: Mit psutil lassen sich Prozessor- und Arbeitsspeicher-Daten mit nur einer Zeile Code auslesen.
    • psutil: Das ist dein wichtigstes Werkzeug für die Hardware-Daten. Du nutzt es, um die Auslastung der CPU, den RAM-Verbrauch, den Füllstand deiner Festplatten und die Rohdaten deines Netzwerkverkehrs auszulesen.
    • pyserial (im Code als import serial): Diese Bibliothek baut die Brücke zum Arduino. Sie sorgt dafür, dass die Datenpakete über den USB-Anschluss (COM-Port) gesendet werden.
    • WMI: Damit greifst du tief in die Windows-Schnittstellen ein. Du nutzt es speziell, um den exakten Namen deiner Grafikkarte und die Auslastung der 3D-Engine deiner AMD Radeon auszulesen.
  • Hardware-Zugriff: Über die wmi-Schnittstelle erreicht Python sogar tief liegende Informationen deiner Grafikkarte, wie das genaue Modell oder die verschiedenen Auslastungen. 
  • Minimalismus: Das Skript läuft fast unbemerkt im Hintergrund. Es verbraucht kaum CPU-Leistung, sodass deine Gaming-Performance absolut unberührt bleibt.

Die Verdrahtung der einzelnen Bauteile

  • 3.5" SPI TFT Display:
    • TFT_CS: Pin 10
    • TFT_DC: Pin 8
    • TFT_RST: Pin 9
    • Standard SPI Pins (SCK, MOSI, MISO): Pin 13, 11, 12 (nicht explizit im Code definiert, aber Standard)
    • VCC: 5V
    • GND: GND
  • DHT11 Sensor:
    • DATA: Pin 7
    • VCC: 5V
    • GND: GND
  • Drehencoder mit Button (KY-040):
    • CLK (ENC_A): Pin 2 (Interrupt)
    • DT (ENC_B): Pin 3 (Interrupt)
    • SW (ENC_BTN): Pin 4
    • VCC: 5V
    • GND: GND
  • Schalter an Pin 6:
    • SWITCH_PIN: Pin 6
    • VCC: 5V
    • GND: GND
    • Info: Dieser Schalter schaltet Pin 6 softwaremässig. Er dient dazu, die NeoPixel-Hintergrundbeleuchtung auszuschalten auch wenn die Uhr ein ist.
  • NeoPixel LED-Streifen (Hintergrundbeleuchtung):
    • LED_PIN: Pin 5
    • VCC: 5V (Achte auf Stromstärke!)
    • GND: GND
    • Info: #define NUM_LEDS 64 im Code definiert die Anzahl der LEDs.
    • Achtung bei NeoPixels: Wenn du viele LEDs (wie die 64 im Code) verwendest, reicht der 5V-Pin des Arduinos nicht aus. Du brauchst ein externes Netzteil, um die LEDs zu versorgen.

Das Arduino Hauptprogramm

Der Arduino empfängt die Daten als langen "String" (eine Textkette), zerlegt diese an definierten Trennstellen (|) und weist sie den verschiedenen Tabs auf dem Display zu. Besonders wichtig ist hier die Performance, damit das Display flüssig reagiert und die analogen Zeiger der Uhr nicht ruckeln. Den vollständigen Code mit allen 7 Tabs findest du auf meinem GitHub-Profil! https://github.com/kreativekiste/pc_monitor

Der Arduino Code für den PC Monitor

Ein Blick hinter die Kulissen: Die Datenquelle

Mit dem Drehencoder kannst du durch die 7 verschiedenen Screens (Tabs) schalten. Ein Druck auf den Encoder-Button stoppt den automatischen Tab-Wechsel, ein langer Druck aktiviert ihn wieder. 

Tab 1: Uhrzeit, Temperatur, Feuchtigkeit

Dies ist dein Haupt-Screen. Du siehst eine analoge Uhr mit einem roten Sekundenzeiger, der sich flüssig bewegt, da die tickClock() Funktion die Sekunden intern hochzählt. Darunter siehst du die Digitaluhr, das Datum und den Wochentag (zweistellig: Mo-So). Links oben siehst du die Sensordaten deines DHT11-Sensors: Temperatur in Celsius und Feuchtigkeit in %.

1 PC Hardware Monitor mit Uhrzeit und Temperatur über Arduino und 4 TFT

Tab 2: CPU-Last und GPU-Last

Ein klassischer Performance-Screen. Du siehst die CPU-Last in % und die GPU-Auslastung der 3D-Engine deiner "AMD Radeon RX 6500 XT" Grafikkarte in %. Darunter zeigen sich zwei Balkendiagramme.

3 PC Hardware Monitor mit Uhrzeit und Temperatur über Arduino und 4 TFT

Tab 3: Lichtsteuerung

Hier wirst du zum Beleuchtungs-Profi. Mit dem Drehencoder navigierst du durch ein Menü, um deine 64 NeoPixel-Hintergrundbeleuchtung zu steuern. Du kannst Modi wie "Aus", "Weiß", "Farbe" oder "Regenbogen" wählen, die RGB-Werte für die Farbe einstellen und die Helligkeit (0-255) regeln. Deine Einstellungen werden im EEPROM gespeichert und sind auch nach einem Neustart noch da.

Über diese beiden Zeilen kannst du die Ein/Auszeit der LEDs einstellen. 

  • int ledOnHour = 19;    // Licht an ab 17 Uhr
  • int ledOffHour = 9;   // Licht aus ab 23 Uhr

2 PC Hardware Monitor mit Uhrzeit und Temperatur über Arduino und 4 TFT

Tab 4: Laufwerke

Volle Kontrolle über deinen Speicherplatz. Du siehst die Belegung deiner Laufwerke C: und D: in %. Darunter füllt sich ein Balken.

Tab 5: GPU-Auslastung

Spezifisch für deine Grafikkarte. Du siehst die GPU-Auslastung in % und darunter ein Balkendiagramm. Der gekürzte Name ("RX6500XT") wird oben angezeigt.

Tab 6: Netzwerk (Gigabit-Ready)

Hier siehst du, was deine Gigabit-Leitung leistet. Du siehst die Upload- und Download-Geschwindigkeit in KB/s. Darunter füllen sich zwei Balken. Die Skalierung ist so gewählt, dass sie auch bei schnellen Downloads (0-100.000 KB/s) und Uploads (0-10.000 KB/s) nicht sofort am Anschlag klebt.

Weiterschalten, Stopp und Auto-Modus: Volle Kontrolle

Du hast die volle Kontrolle über deine Screens. Durch Drehen des Encoders schaltest du durch die 7 Tabs. Ein Druck auf den Encoder-Button hat eine besondere Funktion:

  • Encoder-Drehen: Tabs weiterschalten.
  • Encoder-Button-Druck: Auto-Mode (automatischer Tab-Wechsel) ein-/ausschalten. autoModeActive = true/false im Code. Wenn der Auto-Mode aktiv ist, wechselt das Display alle 3 Minuten automatisch zum nächsten Tab. Ein Button-Druck stoppt diesen automatischen Wechsel, sodass du den aktuellen Tab in Ruhe betrachten kannst. Ein erneuter Druck aktiviert den Auto-Mode wieder.
4 PC Hardware Monitor mit Uhrzeit und Temperatur über Arduino und 4 TFT

 

Den Arduino vor unbeabsichtigtem Überschreiben sichern:

arduino vor uerberschreiben sichern

Hast du deinen Arduino fest für deine PC-Auslastung verbaut, willst du ihn sicher vor versehentlichem Überschreiben schützen. Da die Arduino IDE keine eigene Sperrfunktion bietet, ist ein 10µF Kondensator die ideale Lösung. Verbinde ihn einfach zwischen RESET und GND, um den automatischen Neustart beim Upload zu verhindern. Die IDE kann so keinen neuen Code mehr aufspielen, während deine Datenübertragung ungestört bleibt. Ein simpler Hardware-Schreibschutz, der deine Konfiguration zuverlässig vor Fehlklicks bewahrt!

 

Automatisierung: Das Skript unsichtbar starten

Damit du nicht jedes Mal ein schwarzes Konsolenfenster öffnen musst, binden wir das Python-Skript in die Windows Aufgabenplanung ein. So startet dein Monitor völlig automatisch und unsichtbar, sobald du dich einloggst:

6 PC Hardware Monitor mit Uhrzeit und Temperatur über Arduino und 4 TFT

  1. Suche in Windows nach "Aufgabenplanung".
  2. Erstelle eine neue Aufgabe und wähle unter Trigger "Bei Anmeldung".
  3. Unter Aktionen wählst du "Programm starten".
  4. Als Programm trägst du den Pfad zu deiner pythonw.exe ein (das "w" sorgt dafür, dass kein Fenster erscheint!).
  5. Als Argument gibst du den Pfad zu deinem Skript an.
  6. Wichtig: Aktiviere unter den Bedingungen, dass die Aufgabe auch im Akkubetrieb (bei Laptops) läuft.

5 PC Hardware Monitor mit Uhrzeit und Temperatur über Arduino und 4 TFT

Kontakt

visitenkarte

Ronnie

schwäbischer tüftler und bastler, kraftsportler, neurodivers, 45 Jahre, 1 Frau, 5 Kinder und 1003 Ideen. 

1.2 ronnie berzins