AW: Digitale Eigenbau-Lüftersteuerung mit Touchscreen / Infrarot und komplexer LED-Rechnerbeleuchtung
DER PLAN
Wie bereits beschrieben, bastle und programmiere ich sehr gerne mit dem Atmega328 in Verbindung mit dem Arduino Uno Bootloader. Nachdem ich mir bereits einmal viele RGB LEDs billig aus Fernost bestellt habe und mit denen einige schöne Sachen gebastelt habe, möchte ich mein Fachwissen jetzt sinnvoll nutzen und mir meinen PC für den Alltagsgebrauch modifizieren. Als zweites, kleines Rechenherz wird der Atmega328 fest in den Rechner integriert. Die Stromversorgung wird über das normale PC-Netzteil geschehen. Das fertige Projekt soll modular aufgebaut sein, dabei möchte ich folgende Liste von oben nach unten abarbeiten:
#1 Temperaturabhängige Steuerung der LED-Farbe der Lüfter
Ich habe aktuell die quietschenden Frontlüfter dauerhaft abgeschaltet. Ich werde diese aber zeitnah mit den neuen Lüftern ersetzen. Genauer gesagt habe ich hier im Forum 3 Cooler Master SickleFlow gekauft, diese sollen gesteuert in die Front des Gehäuses wandern. Die 2000 UPM bei 12V eignen sich natürlich überhaupt nicht für den Einsatz in einem Gehäuselüfter, durch die Regelung verspreche ich mir später allerdings einen ruhigen Betrieb, den ich mir auch gerne mit wenig Luftstrom erkaufen werde. Diese Lüfter zu kaufen war eine spontane Kaufentscheidung, die ich hoffentlich nicht bereuen werde - schauen wir mal
Optisch sind sie sehr anders als die Standard-Gehäuselüfter des Lian Li, das muss ja aber nichts schlechtes sein. Im Gegenteil, wenn man nach "Lian Li Armorsuit PC-P60" googlet, findet man weit oben bei der Bildersuche noch jemanden, der die Frontlüfter gegen welche in einem ähnlichen Stil wie meinem geplanten getauscht hat - dunkler Rahmen und eine komplett andere Optik. Hier sind die SickleFlow, in dem Fall mit roter LED:
Quelle: Cooler Master
Außerdem habe ich auch ein schönes Bild gefunden, auf dem man die Lüfter in einer ähnlichen wie der von mir geplanten Konfiguration laufen sieht:
Quelle:
Album
Die Lüfter auf dem Noctua NH-D14 werden noch ersetzt, eventuell vorerst mit den jetzigen BeQuiet Silentwing. Die LEDs des 140mm Lüfters oben im Gehäuse werden abgeklemmt.
Die LEDs der Lüfter werden durch (diffuse) 5mm LEDs ersetzt. Diese werden per PWM in der Helligkeit und Farbe gesteuert. Ich kann dabei die Helligkeit für rot, grün und blau in jeweils 255 Schritten festlegen. Die LEDs sind sehr hell und ziehen pro Farbe ca. 20mA. Der Stromverbrauch hält sich dabei übrigens in Grenzen, da ich kein weiß mischen möchte, wofür ich alle drei Farben auf 100% setzen müsste. Wenn man davon ausgeht, dass im Mittel immer eine LED "volle Power" geschaltet werden würde, komme ich auf unter 3 Watt für 24 LEDs mit ihren Vorwiderständen.
Über vorerst 2 getrennte Einheiten möchte ich dann separat die Farben bestimmen können. Mit anderen Worten: Die Lüfter auf dem Prozessorkühler werden über die Temperatur am Prozessorsockel geregelt, die Gehäuselüfter über die Temperatur im Gehäuse.
#2 Temperatursensoren
Ab hier wird die Steuerung dann interessant. Zur Steuerung der LED-Einheiten benötige ich natürlich einen gewissen Input, damit der Umbau nicht nur "geil aussieht", sondern auch noch in gewissen Maßen funktionell ist. Aus diesem Grund werde ich vorerst 3 Temperatursensoren anschließen. Einen auf dem Prozessorsockel, bei dem für die Beleuchtung der Gehäuselüfter bin ich noch unsicher. Vielleicht am Boden des PCs, wo bisher gerne mal ein wenig Hitze gestaut wird. Wofür jetzt der dritte? Nun, damit ich im heißen Sommer nicht umständlich die Schwelltemperaturen umprogrammieren muss, werde ich einen dritten Sensor außerhalb des Gehäuses verlegen. Mit diesem bestimme ich dann Delta-Temperaturen. Somit ist es also egal, wenn in meinem Zimmer 40 Grad sind (was im Sommer möglich ist
), solange der Prozessorkühler trotzdem nur 10° wärmer ist als seine Umgebungstemperatur.
Für ein Projekt bei einem Freund habe ich so schon einige Erfahrung sammeln können, damit ihr mal einen kleinen Einblick habt ...
.. Wobei ich dazu sagen muss, dass die Werte hier nur die Stellung der Schieberegler darstellen.
Später wurde dann mehr draus gebastelt. Unter anderem lässt sich mit den 3 Schiebereglern ebenfalls eine RGB-Steuerung vornehmen. Das war mein erstes wirklich großes Projekt, vor 2-3 Monaten saß ich viele Nächte vor dem C-Code. Die LEDs auf diesem Foto wurden gegen RGB LEDs ersetzt, die um ein Vielfaches heller sind.
#3 Digitale Lüftersteuerung
Hier kommt nun erstmals "kompliziertere" Elektronik ins Spiel. Die Lüfter sollen in ihrer Geschwindigkeit regelbar werden. Da mich Mainboard-Lüftersteuerungen nie überzeugt haben und Lüftersteuerungen für den 5,25" Slot bei meinem Gehäuse sehr unpraktisch sind, liegt es natürlich nahe, dann auch den Mikrochip für die Steuerung zu benutzen. Klar könnte man mit Potentiometern (diese einfachen Drehregler) so etwas sehr einfach realisieren, das hat nur den Nachteil, dass es total langweilig ist.
Für die digitale Ansteuerung habe ich bereits einen Schaltplan, den ich vom Grundgedanken her übernehmen werde. Die Erklärungen zu manchen Bauteilen helfen ungemein, das System zu verstehen.
Quelle:
Automatic PWM fan controller/
An der Steuerung werde ich vermutlich eine Weile sitzen, bis sie funktioniert. Im Grundstadium soll sie die Lüfter separat in 3 Geschwindigkeitsstufen regeln können. Eine völlig selbstständige Regulierung der Lüftergeschwindigkeit wäre, sobald das erstgenannte Modul funktioniert, kein Problem. Ich bin mir trotzdem nicht sicher, ob ich es implementiere, da ich nach Fertigstellung der Module #4 und #5 wohl keinen Gebrauch mehr davon machen würde, dazu passt mein Nutzungsprofil einfach nicht. Der Rechner ist einfach zu 99% der genutzten Zeit unter 10% Auslastung, da wird nicht viel warm werden. Wenn es jetzt wie erwartet auch bei der Realisierung kein großer Aufwand wird, implementiere ich es trotzdem als Zusatz.
#4 Steuerung über Infrarot
Ja, da ist sie, die Steuerung über Infrarot. Was möchte ich damit machen? Nunja, auch das möchte ich in verschiedene Module aufteilen:
#4.1 Steuerung der Lüftergeschwindigkeit
Das sollte sich als relativ einfach erweisen, sobald Modul #3 funktioniert. Mit Hilfe eines iR-Empfängers werde ich die Codes einer alten Fernbedienung auslesen und diesen gewisse Funktionen zuweisen, wie zB die Geschwindigkeitssteuerung gruppierter Lüfter.
#4.X1 Anschalten des Rechners über iR
Was eigentlich simpel klingt, ist es leider nicht - denn sobald ich den PC herunterfahre, kriegt mein Mikrochip ebenfalls keinen Saft mehr. Ich werde mich mal informieren, durch welche Leitungen noch immer Strom fließt - man kann an manchen PCs ja auch Handys laden, wenn diese ausgeschaltet sind. Ich bin der Meinung, das macht mein kommendes Mainboard auch. Dann müsste an einem internen USB-Stecker eine Spannung liegen, die ich benutzen kann. Allerdings mache ich mir Sorgen, ob meine Steuerung an diesem Anschluss wirklich funktionieren kann, da muss ich mir noch Gedanken machen.
#4.X2 Einbindung in ein kommendes Smart Home
Ein sehr langfristiges Projekt - entweder über iR oder einen 433 MHz Empfänger/Sendermodul würde ich diesen Rechner dann in weitere Mikrocomputer-realisierte Schaltungen im Haus (und außerhalb des Hauses
) einbinden. Da mein Rechner das erste Projekt wird, in dem ich Mikrocomputer in meinem Alltag nutzen werde, steht davon leider noch gar nichts. Unter anderem geplant sind eine mit Solarpanels (sind bestellt) und Akkus betriebene Wetter-Sendestation im Garten, einen Empfänger und Anzeigegerät im Wohnzimmer, eine Umrüstung auf LED-Beleuchtung mit intelligenter Steuerung über Bewegungsmelder in meinem Zimmer und so weiter. Ich habe da schon einiges geplant. Interessant daran soll halt nur werden, dass diese Module alle untereinander kommunizieren sollen. Dann wäre es zum Beispiel in sehr ferner Zukunft kein Problem, im Flur einen dort platzierten Mikrocontroller ein Signal ins 433 MHz Netzwerk einspeisen zu lassen, mit dem meine Lampen und mein Computer schon aktiviert werden. Bis ich so eine unsinnige Vernetzung geschaffen habe, wird es sich aber darauf beschränken, dass der Mikrocontroller zum Beispiel die selben Daten vom Temperatursensor draußen bekommt.
#5 Das Display
Ich habe mir auf eBay zwei verschiedene Displaymodule bestellt. Einmal 2,2" und einmal 2,8". Zumindest beim 2,2" Display bin ich mir sicher, dass mir eine Ansteuerung gelingen wird. Auf diesem Display, das wohl Einzug unter meinem Bildschirm erhält, werde ich Temperaturen und weitere Daten des Rechners anzeigen lassen (späteres Modul #7), sowie den Lüfterstatus. Eventuell bekomme ich das Signal der Lüfter ausgelesen, mit denen ich die Umdrehungen pro Minute hätte. Wenn ich schon so ein Display habe, soll das ganze auch grafisch zumindest ansehnlich sein - bisher habe ich mit Displays gearbeitet, die nur 20 Zeichen in 4 Zeilen darstellen können. Da hatte man gar keinen Zugriff auf etwas anderes als Buchstaben und Zahlen. Da diese Einschränkung jetzt weg fällt und ich mehr möchte als nur bunten Text darzustellen, werde ich mir da noch ein paar schöne Sachen ausdenken
#6 Das Display II - Der Touchscreen
Das 2,8" Display kommt mit einem digitalen Touchscreen. Wofür ich das nutzen möchte, liegt wohl auf der Hand: Die komplette Steuerung der Module. Lüftergeschwindigkeiten, LED-Steuerung, einfach alles. Ich hoffe stark, dass mir hier die Ansteuerung gelingt. An diesem Punkt würde ich mein System als fertig ansehen.
#7X Weitere Rechnerdaten - Kommunikation mit dem OS
Während die bisherigen Daten direkt an den Mikrochip geschrieben werden, wäre dieses Modul eine zusätzliche Option nach Abschluss des Hauptprojektes. Ich hoffe nämlich, etwas zu finden, mit dem man dem Mikrochip flüstern kann, was die PC-Hardware macht. Ich bin mir ziemlich sicher, das schon einmal gesehen zu haben. Eine Option wäre dann zB die permanente Anzeige des verfügbaren RAMs / Prozessorauslastung etc auf dem Display oder - was ich noch interessanter fände - eine Neuprogrammierung der LED-Steuerung. Im Prozessor direkt ausgelesen zeigen sich Temperaturänderungen nämlich extrem schnell, während große Kühlerblöcke erst langsam warm werden. Das schränkt gerade die Steuerung der LEDs für den Prozessor stark ein - bis ich merke, dass die Temperatur dort ansteigt, vergeht mir zu viel Zeit. Ich möchte auch nicht, dass die LED-Steuerung bei wechselnder Auslastung wild hin und her zuckt, aber das kann ich filtern und zum Beispiel den Mittelwert der letzten 10 Sekunden nehmen.
Ich hoffe, die Entstehung meines Projektes wird euch interessieren. Damit das ganze nicht zu trocken wird, probiere ich es mit Bildern aufzulockern, wie ihr ja sicher schon gemerkt habt
Ich freue mich jedenfalls sehr drauf, wieder in vielen freien Stunden vor dem Code zu hocken und am Ende doch etwas fertig zu bekommen - gerade, weil ich jetzt einen genau strukturierten Plan habe, sollte sich dieses Projekt deutlich effizienter entwickeln als die bisherigen Projekte, an denen ich gebastelt habe.