20140405_022952

Projekte

Lüftersteuerung zur besseren Übertaktung des Raspberry Pi

Wer sein RaspberryPi als Server etc. laufen hat, wird schnell feststellen, dass der kleine Riese doch sehr heiß werden kann. Bis zu einem gewissen Grad kann man das sicherlich ignorieren, läuft der Pi jedoch Tag und Nacht sollte auf die Temperatur (besonders in einem Gehäuse) achten. Da ich dieses Problem auch hatte, nahm ich mir als Projekt vor, das Gehäuse und die CPU kühl zu halten.

Zubehör

Ich habe einen 5V Lüfter sowie einen DS18B20 Temperatursensor genommen. Als Transistor ist ein BC547 verbaut. Wer keinen Temperatursensor hat oder damit nicht messen will, kann mit einer kleinen Anpassung das Skript trotzdem nutzen.

Aufbau

Als Widerstände habe ich jeweils 4,7k Ohm genommen. Ausgangspin für den Transitor ist Pin 23, wobei auch jeder andere GPIO Pin, der keine zugewiesene Funktion hat, genommen werden kann.
Wichtig: Der Temperatursensor ist an 3.3V angeschlossen, wogegen der Kühler an 5V angeschlossen ist.

Skript

Um die Arbeit so einfach wie möglichst zu machen, habe ich bereits ein Skript vorgefertigt, das du nur noch anpassen musst.

wget http://www.tutorials-raspberrypi.de/wp-content/uploads/2014/04/cooler_skript.zip

und entpacken:

unzip cooler_skript.zip

Nun, dann bearbeiten wir das Skript:

sudo nano cooler_skript.py

Hierbei sind Zeile 19 bis 23 wichtig und ggf. anpassbar.

Nun gibt IMPULS_PIN einfach den GPIO Pin an, mittels dem der Transistor angesteuert wird.
SLEEP_TIME gibt an, alle wie viel Sekunden die Temperatur überprüft werden soll. Ich empfehle keine all zu kleine Zahl, um dem Pi noch gebug Rechenzeit für andere Anwendungen zu geben.
MAX_CPU_TEMP und MAX_SENSOR_TEMP geben die jeweiligen Temperaturen an, bei denen der Lüfter anfangen soll zu drehen. Dabei spielt es keine Rolle, was zu erst erreicht wird; sobald eines erreicht wurde wird angefangen zu drehen. Soll sich der Kühler immer drehen, setze MAX_CPU_TEMP = 0.
Nun zur Sensor ID: Wie man diese heraus bekommt habe ich bereits hier gezeigt. Wenn du keinen Sensor hast, lass es einfach so stehen. Bei mir ist es z.B. die ID 10-000802b4ba0e:

So weit, so gut. Im Grunde sind wir jetzt bereits fertig. Mit

sudo python cooler_skript.py

lässt sich das Skript bereits starten. Wenn du bei jeder Überprüfung die Werte ausgegeben haben willst, kannst du im Skript in den Zeilen 59 und 60 die # löschen.

Automatisch starten

Falls du das Skript automatisch starten lassen willst, kannst du dir dieses Tutorial einmal anschauen. Optimal verschiebst du das Skript nach /usr/local/bin/

sudo cp cooler_skript.py /usr/local/bin/cooler_skript.py

Dann musst Du lediglich die Namen anpassen, sowie in Zeile 8:

 

Übertakten

Nachdem nun sichergestellt ist, dass der Pi immer kühl genug ist, können wir auch übertakten:

sudo raspi-config

Unter Punkt 7 Overclock kannst du die Taktrate einstellen. Ich habe bspw. je nach Bedarf Medium oder High eingestellt. Du kannst dies je nach Anwendung anpassen (Bei rechenintensiver Nutzung macht eine höhere Taktung natürlich gleich mehr Sinn und bringt gleichermaßen Schnelligkeit).



, , , , , , , , , ,


12 Kommentare

  1. Martin sagt:

    Hallo,
    Kann man mehrere Lüfter (aktuell 3) über ein Raspi steuern? Mein Mainboard hat leider nicht genug anschlüsse für Lüfter. Brauche ich da ne stärkere Stromversorgung? Wäre über Hilfe dankbar 🙂

    • Felix sagt:

      Klar, das geht. Du hast ja genügend GPIOs, mit denen du die Transistoren der Lüfter steuern kannst. Die üblichen Lüfter brauchen 5V, was das Raspberry Pi liefert.

  2. Max sagt:

    Wie entpacke ich die Zip datein dabei kommt immer eine fehlermeldung

  3. Max sagt:

    Wir haben das Projekt nachgebaut und wollten jetzt anstatt der CPU temperatur einen anderen Temperatursensor kühlen bekommen das aber nicht im pyton skript umgeschrieben kann einer helfen ? Gruß

    http://pastebin.com/DtnkQrLn

  4. Felix sagt:

    Könnte man den Lüfter (wenn er nur 3Volt hat)
    auch einfach direkt am GPIO PIN anschließen und dann zurück zum Raspberry GND laufen lassen?

    Der Transistor ist ja in diesem Fall nur dafür da, dass man die 5V Stromzuvor an/abschlaten kann oder?

    Und wieso muss beim Transistor der Anschluss am GPIOPin mit einem Widerstand ausgestattet werden?

    • Felix sagt:

      Könnte man, aber es ist nicht empfehlenswert. Die GPIOs liefern nur wenige mA, dahingegen kann von dem 3.3V bzw 5V Pin bis zu 2-300mA gezogen werden. Daher sollte auch ein Lüfter, der nur 3V braucht mit Transistor geschaltet werden. Der Widerstand ist in dem Fall nicht unbedingt nötig.

    • Felix sagt:

      Danke für die Antwort

    • Sven sagt:

      Ich besitze den Raspberry Pi 3, und bei mir funktioniert das Skript nicht. Ich bekomme die Temperaturen ausgegeben, der Lüfter wird allerdings nicht angesteuert!? Muss ich da noch etwas beachten?Gruß

    • Felix sagt:

      Wie viel Strom braucht dein Lüfter denn? Mehr als 5V und ~100-200mA kann der Raspberry Pi nicht liefern.

  5. Sven Limberger sagt:

    Ist ein kleiner 5V fan. Wenn ich ihn direkt an den pi schließe, funktioniert er. Wenn ich ihn über den Transistor schalten möchte, klappts nicht… hab alles wie im Tutorial beschrieben angeschlossen und programmiert. Allerdings ohne den Temperatursensor.

    • Felix sagt:

      An dem Temperatursensor liegt es nicht. Ist evtl. der Transistor kaputt oder du hast ihn falsch angeschlossen? Könnte auch ein PNP statt NPN sein.
      Du kansnt auch ein Relais ausprobieren, auch wenn das ein wenig überdimensioniert für 5V ist (nur als Test).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Blog abonnieren

Abonniere Tutorials-RaspberryPi, um kein Tutorial mehr zu verpassen!