Hallo zusammen!
Heute möchte ich euch eine kleine Anleitung geben, wie ihr eine Lüftersteuerung am Raspberry Pi bauen könnt. Die Kosten, Schwierigkeit und Bauteilanzahl halten sich in Grenzen, sodass ein Nachbau nicht schwierig sein sollte.
Die benötigten Bauteile
Wie bei jedem Bastel-Projekt mir Hardware benötigt ihr auch für dieses ein paar Bauteile:
- Einen Lüfter (natürlich ;))
Ich verwende einen alten 120mm-Lüfter, den ich vor einiger Zeit aus meinem PC ausgebaut habe. Dieser läuft standardmäßig mit 12V, sodass er beim Betrieb mit 5V (so wie es hier beschrieben wird) recht leise ist und dank der Größe trotzdem gut kühlt - Einen Transistor
Hier dürfte die Auswahl an geeigneten Bauteilen riesig sein. Damit ihr meine Anleitung direkt nutzen könnt, sollte es aber ein NPN-Transistor mit CBE-Belegung sein (das ist die Reihenfolge der Pins von links nach rechts). Ich nutze selbst einen 2N2222, den ich noch rumliegen hatte. Andere Transistoren, wie der BC547 sollten auch funktionieren, evtl. muss dann aber der Widerstand anders dimensioniert werden - Einen Widerstand
Für meine Konfiguration nutze ich einen Widerstand mit 1kΩ. Gerade wenn ihr andere Transistoren verwendet, solltet ihr euch aber erst mal vortasten. Soll heißen: Mit einem möglichst großen Widerstand beginnen und ggf. austauschen, wenn der Transistor damit nicht durchschaltet. Genaueres in der Anleitung. - Ein altes USB-Kabel
Dieses wird zur Stromversorgung verwendet. Es können zwar auch die Strompins am Raspberry Pi verwendet werden, allerdings können hier auf Grund der beschränkten Stromstärke Probleme auftreten, gerade bei größeren Lüftern und Übertaktung des Raspberry Pi. Von daher ist es empfehlenswert eine andere Stromversorgung wie eben ein USB-Kabel am aktiven Hub oder ein extra Netzteil zu verwenden. - Ein Breadboard sowie Jumper-Kabel
Alternativ kann das Breadboard auch weggelassen werden und die Jumper-Kabel direkt gesteckt werden oder die Kabel entsprechend verlötet werden. Das geht alles, solange Strom fließt. Am Einsteigerfreundlichsten ist aber wohl die Lösung mit Breadboard und Kabeln - Einen Raspberry Pi
Ohne diesen geht natürlich nichts ;)
Die Kosten für die Bauteile (neben dem Raspberry Pi) sind recht gering. Leider kann ich nur grob schätzen, da ich bereits alles zu Hause hatte, aber mit ca. 5€ für einen Lüfter und weiteren 3-4€ für die anderen Bauteile solltet ihr hinkommen.
Die Verkabelung
Beginnen wir mit der Vorbereitung des Stromanschlusses durch das USB-Kabel:
Dieses muss in einem ersten Schritt auf die gewünschte Länge zugeschnitten werden. Anschließend geht ihr am Besten nach dieser Anleitung vor (bis „Simple breadboard test“, diesen braucht ihr nicht machen), in der alles bebildert erklärt wird. Für unser Projekt interessant sind nur die beiden Leitungen für Masse und VCC, also Minus- und Pluspol. Diese Leitungen sind in den Kabeln i.d.R. rot (Pluspol) und schwarz (Minuspol). Die beiden Datenleitungen brauchen wir nicht. Ihr müsst übrigens keine Pfostenstecker an die Leitungen löten, sondern könnt diese entweder direkt auf das Breadboard stecken oder über female-male-Jumper-Kabel. Da wir für den Lüfter mit 5V arbeiten können, reicht es nur den ersten Absatz dieser Anleitung zu befolgen.
Anschließend geht es zur Verkabelung der gesamten Bauteile.
Hierzu habe ich euch einen kleinen Schaltplan gemacht, der euch die Verkabelung verdeutlichen und vereinfachen soll:
Da meine Software zur Erstellung des Schaltplans keinen Lüfter enthielt (zumindest habe ich keinen gefunden), habe ich stattdessen einen DC-Motor platziert, der die gleiche Funktionsweise hat (nur die Rotor-Blätter fehlen).
Der GPIO14 in der Skizze ist auf einen Raspberry Pi Modell B Rev. 2 bezogen, bei anderen Modellen solltet ihr euch erst erkundigen, ob der entsprechende Pin an der gleichen Stelle ist und wenn nicht, wo er stattdessen platziert wurde.
Bei meinen Versuchen hat sich ein 1kΩ-Widerstand als brauchbar erwiesen, ihr solltet euch allerdings bei dem Wert erst einmal vortasten. Am Besten beginnt ihr mit 10kΩ und probiert die Anleitung damit weiter, dann mit 7kΩ, mit 5kΩ usw.. Sobald ihr einen Wert gefunden habt, bei dem der Transistor in eurer Konfiguration durchschaltet, könnt ihr diesen verwenden.
Die Software
Nachdem ihr alles verkabelt und den Raspberry Pi gestartet habt, geht es an die Software. Da ich gerne in Python programmiere, habe ich mich für eine komplette Umsetzung in Python entschieden. Ladet euch dazu erst einmal RPi.GPIO herunter (aktuell 0.5.6). Das macht ihr einfach über das Terminal auf eurem Raspberry Pi über wget:
wget https://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.5.6.tar.gz
Anschließend entpackt ihr die heruntergeladene Datei:
tar zxf RPi.GPIO-0.5.6.tar.gz
Um sie zu installieren, wechselt ihr über cd RPi.GPIO-0.5.6 in den durch die Entpackung erstellten Ordner und installiert sie über
sudo python setup.py install
Damit sind alle Vorbereitungen getroffen, um über ein eigenes Python-Script den Lüfter an- und ausschalten zu können. Für einen ersten Test legen wir uns ein Python-Script an mit folgendem Inhalt:
1 2 3 4 5 6 7 8 9 | #!/usr/bin/python import time import RPi.GPIO as GPIO GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.setup(14, GPIO.OUT) GPIO.output(14, True) time.sleep(10) GPIO.output(14, False) |
und speichern es unter fan_test.py. Dieses nun über
sudo python fan_test.py
aufrufen. Der Lüfter sollte nun eingeschaltet und nach 10 Sekunden wieder ausgeschaltet werden. Ist das nicht der Fall, könnt ihr nun den Widerstand gegen ein kleineres Modell ersetzen und das Script nochmals aufrufen. Sobald ihr einen geeigneten Widerstand gefunden habt, könnt ihr weitermachen.
Um die Lüfteraktivität zu automatisieren (anschalten bei hohen CPU-Temperaturen), habe ich ein Python-Script gebastelt, das ich per cron alle 10 Minuten starte.
Hier der entsprechende Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #!/usr/bin/python import os import time import RPi.GPIO as GPIO GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.setup(14, GPIO.OUT) def getCPUtemperature(): res = os.popen('vcgencmd measure_temp').readline() return(res.replace("temp=","").replace("'C\n","")) temp_float = float(getCPUtemperature()) try: if (temp_float > 47): print temp_float print "power on fan..." # ein GPIO.output(14, True) time.sleep(180) print "power off fan..." # aus GPIO.output(14, False) print float(getCPUtemperature()) else: print temp_float print "temp too low" except KeyboardInterrupt: print float(getCPUtemperature()) print "power off fan..." GPIO.output(14, False) print "cancelling..." |
Speichert euch das Script an einen beliebigen Ort unter dem Namen „fan_control.py“. Anschließend könnt ihr es über
sudo python fan_control.py
aufrufen. Ihr solltet nun auf der Konsole die aktuelle Temperatur angezeigt bekommen und der Lüfter sollte ab einer Temperatur von 47°C (Schwellwert kann natürlich angepasst werden) angeschaltet werden für 3 Minuten (kann auch geändert werden; 180s = 3min – immer in Sekunden angeben!). Anschließend solltet ihr die nun aktuelle CPU-Temperatur angezeigt bekommen und der Lüfter sollte ausgeschaltet werden. Ist die CPU-Temperatur eures Raspberry Pi unter 47°C, so sollte der Lüfter nicht anspringen und das Script sollte sich beenden.
Ich habe noch die Funktion eingebaut, dass ihr das Script jederzeit über Strg+C beendet werden kann und der Lüfter dann wieder ausgeschaltet wird sowie die aktuelle CPU-Temperatur angezeigt wird.
Um das Script automatisiert zu starten, könnt ihr euch noch einen cronjob anlegen. Da das Script root-Rechte benötigt, erstellt ihr über sudo crontab –e einen neuen cronjob mit dem Inhalt
*/10 * * * * /pfad/zum/script/fan_control.py
Damit wird das Script alle 10 Minuten aufgerufen. Das Intervall und Einschränkungen auf bestimmte Stunden/Tage könnt ihr nach belieben ändern. Achtet nur darauf, dass die Intervalle nicht zu eng beieinander liegen, da das Script 3 Minuten läuft.
Somit dürfet ihr eine vollautomatisierte, kleine Lüftersteuerung für euren Raspberry Pi und Gehäuse haben. Gerade in der warmen Jahreszeit sinnvoll bei Benutzung von Gehäusen für den Raspberry.
Bei Fragen, Probleme, Anregungen usw. dürft ihr gerne das Kommentarfeld unten benutzen.
Gutes Gelingen und viel Spaß mit dem Projekt!
Tolles Tutorial! Werde ich am Wochenende gleich ausprobieren, Teile habe ich sowieso alle hier rumliegen.
Funktioniert prima! Bei mir hats auch ein kleinerer Widerstand vorm Transistor getan ;)
funzt! Lüfter an den GPIO des Pi funktioniert bei mir ebenfalls.
Wie beschrieben: Das sollte i.d.R. auch gehen, allerdings ist je nach Stromaufnahme des Lüfters und Konfiguration des Raspberry Pi davon abzuraten.
Hallo,
mein Lüfter läuft mit 12V, 0,08A und 1,01W. Habe noch einen Transistor 2N2222 NPN TO-18 40V 0,8A 0,5W. Funktioniert es damit?
Danke für Eure Hilfe
Funktioniert alles super, vielen Dank für das Tutorial. Ich habe zusätzlich noch eine LED angeschlossen und das Skript so erweitert, dass die LED beim Starten des Lüfters kurz blinkt und während des Lüfterbetriebs dauerhaft leuchtet.
Hi Sascha,
schön zu lesen, dass es bei dir funktioniert! :)
Leider konnte ich dir mangels fundierter Elektronik- und Bauteilkenntnisse auf deine vorherige Frage keine Antwort geben.
Die Idee mit der LED finde ich super! Würde mein alter Billig-Lüfter nicht so brummen, hätte ich die jetzt auch gleich eingebaut, um zu wissen, wann er an ist und wann nicht.
Sascha könntest du bitte das erweiterte Skript hochladen? Das wäre sehr nett, weil ich mich mit Python nicht auskenne aber mir das mit der LED gefällt.
Vielen Dank schonmal :)
hallo Sascha,
schon älter der Thread dennoch würde mich das Thema mit der Status LED mit dem zugehörigen Script interessieren.
Der Lüfter läuft, mit etwas Anpassung an Py3 und Libreelec mit Kodi, wunderbar.
kannste mir das bitte zukommen lassen.
MfG Peter
Das macht doch nichts, ich hab es mutig ausprobiert :-)
Um die Ausgabe in der Konsole zu vermeiden und die Spielerei noch zu erweitern, versuche ich mal eine Ausgabe der aktuellen Temperatur über ein LCD-CHR-Display mit HD44780-kompatiblem Controller (2 € bei ebay). Zur Steuerung gibt es eine Python-Erweiterung namens RPLCD (https://pypi.python.org/pypi/RPLCD/0.3.0)
Funktioniert wunderbar! Danke für die Anleitung, gerade für warme Sommertage eine gute Idee :)
Hallo,
hab alles so nach gebaut, nur mit einem BC547 Transistor.
Funktioniert super und der Pi ist auch immer schön gekühlt !!!
Würde das Ganze auch gerne noch in eine Log-Datei rein schreiben lassen und dazu Datum und Uhrzeit mit ausgeben.
Habe aber leider keine Ahnung von Python-Programmierung.
Wie kann ich das umsetzen?
Danke Dommschwenker
Hallo Dommschwenker,
schön, dass es geklappt hat :)
Zu dem Log: Das dürfte sich recht einfach umsetzen lassen. Welche Sachen sollen wie geloggt werden? Temperatur vor und nach dem Lüften mit Datum + Uhrzeit oder noch andere Sachen?
Und: Welches Format sollte die Logdatei haben? .csv oder einfach eine Textdatei mit einem neuen (menschenlesbaren) Eintrag pro Zeile?
Wenn ich die Zeit finde, kann ich das Script in erweiterter Version bereitstellen mit einem Basic-Logger.
Hallo Alexander,
mir würde vollkommen reichen, wenn ich das Datum, die Uhrzeit, die Temperatur und die „Option“ (Lüfter an/ Lüfter aus/ Temperatur zu niedrig/ abgebrochen) lesen kann.
Das ganze sollte nur in eine .log-Datei (Textdatei / eine Zeile pro Aktion) sein, damit ich nachvollziehen kann, ob das ganze auch in Zeiten meiner Abwesenheit funktioniert.
Danke und Gruß
Dommschwenker
Hallo Dommschwenker,
hab gerade ein erweitertes Script gebastelt, du findest es hier.
Ausgabe der Beispiellogdatei:
Bei der letzten Zeile habe ich die Threshold-Temperatur hochgesetzt, sodass der Temperaturwert unterhalb der Schwelle war (daher das „-„).
Keine Garantie, dass alles 100%ig richtig ist, hab es gerade nur getestet.
Hallo,
funktioniert soweit gut.
Hab jetzt die Dateien ersetzt. Leider wird, wenn ich das ganze per Crontab starten lasse, nichts in die Log-Datei geschrieben.
Muss ich die Crontab anpassen?
Hi Dommschwenker,
das dürfte eher an dem Pfad der Log-Datei im Script liegen – für cron sollte dieser nicht relativ sein, also die Zeile
‚logfile = open(„test.log“,“a“)‘
ersetzen mit z.B.
‚logfile = open(„/home/pi/test.log“,“a“)‘
Hi Alex,
hab zu Beginn leider Collector und Emitter vertauscht. Der Lüfter ging direkt los (langsamer als wenn er direkt am Strom hängt). Hab dann umgepolt und nun tut sich gar nichts mehr, er reagiert auf das Script mit den 10 Sekunden nicht. Nutze ein 1K Widerstand und den von dir vorgeschlagenen 2n2222. Hab ich mir durch das falsche anschließen den Transistor zerschossen?
Hier das Datenblatt: http://media.internet11.de/PDF/500013.pdf
Hi Nico,
um sicherzugehen könntest du den Transistor mit einem Multimeter überprüfen.
Auch sonst wäre ein Überprüfen der Schaltung mit einem Multimeter nicht verkehrt. Dann siehst du auch, ob der Transistor mit aktuellem Anschluss durchschaltet.
Hi Alex,
die Überprüfung war positiv, der Transistor lebt. Die Schaltung habe ich ebenfalls mit dem Multimeter überprüft, auch da kommt alles an. Weiß leider nicht wo der Fehler liegen kann :-(
Hi Nico,
klingt erstmal ganz gut. Dreht der Lüfter denn, wenn er direkt an 5V + GND angeschlossen wird (sollte im Prinzip das sein, was durch den Transistor gemacht wird)?
Hi Alex,
habe einen 12V Lüfter den ich an einem 7V Netzteil (wegen der Lautstärke) betreibe und ja, damit läuft er.
Hi Nico,
läuft er mit 5V auch noch an? Habe hier z.B. auch Lüfter, die bei 5V nicht mehr drehen – daher die Nachfrage ;)
Ansonsten sollte er bei richtigem Anschluss am Transistor auf jeden Fall anlaufen – gerade, wenn er auch bei Vertauschen von Kollektor und Emitter angelaufen ist.
Dann liegt es vielleicht gar nicht an der Hardware sondern an der Software?
Wobei ich beim ausführen des Testscriptes auch keine Fehler bekomme.
Hey Nico,
nein – das wird schon eine Hardware-Sache sein. Die Frage ist nur, ob der Fehler auf Raspberry Pi-Seite (unwahrscheinlich), Transistor-Seite (möglich) oder Lüfter-Seite (auch möglich) zu finden ist.
Dreht denn der Lüfter nach wie vor, wenn du ihn an den falschherum angeschlossenen Transistor anschließt bzw. bist du sicher, dass der Transistor nun richtig angeschlossen ist?
Hi Alex,
hab eben nochmal alle Varianten probiert. Direkt am 7V Netzteil dreht er wunderbar wie schon viele Tage zuvor. Wenn ich ihn falsch am Transistor anschließe, dreht er zwar aber langsamer. Und wenn ich es richtig anschließe passiert nichts.
Hey Nico,
kannst du ihn, wenn er falsch herum angeschlossen ist, auch über das Script schalten?
Wenn das klappt, könnte die Pin-Belegung deines Transistor vielleicht anders sein und er doch richtig angeschlossen sein. Dass er langsamer dreht ist klar, da er weniger Spannung bekommt.
Hi Alex,
nein.. auf das Script reagiert er dann leider nicht.
Wenn der Lieferant nicht das falsche Datenblatt verlinkt, habe ich ihn richtig angeschlossen.
Hi Nico,
hm, ich kann mir das Verhalten leider auch gerade nicht erklären :(
Meinem Verständnis nach sollte der Transistor auch bei Vertauschen von Kollektor und Emitter über die Basis schaltbar sein – bei korrektem Anschluss erst recht (und dort der Lüfter vor allem auch drehen). Warum er sich bei dir wie beschrieben verhält, weiß ich leider nicht.
Solltest du den Grund herausfinden bzw. eine Lösung finden, würde ich mich sehr über eine Meldung von dir freuen – rein aus Interesse.
Ansonsten könnte man die Bauteile nur nach und nach Austauschen und schauen, wie es sich mit anderen Bauteilen verhält (passende LED statt Lüfter, Transistor wechseln und im Zweifelsfall den Raspberry Pi).
Tut mir Leid, dass ich dir da nicht weiterhelfen kann!
Hallo,
kann man mehrere Lüfter anschließen?
Ich möchte mein PC gehäuse (in das das Raspi eingebaut ist) kühlen, und mein Motherboard hat nicht genug Anschlüsse für Lüfter. Brauch ich da eine andere Stromversorgung?
Aktuell sind die Lüfter direkt ans Netzteil angeschlossen mit paar kabeln und Büroklammern ^^
Hallo Martin,
klar – auch mehrere Lüfter lassen sich schalten. Allerdings sollten diese nicht alle an der Stromversorgung des Raspberry hängen, sondern besser die vom PC-Netzteil nutzen. Wie man Transistoren als Schalter verwenden kann, ist u.a. hier beschrieben (Achtung für Berechnungen: Der Raspberry nutzt 3V-Pegel!).
Ich würde allerdings eine Lüftersteuerung bevorzugen ?
hallo. bei mir kommt der Fehler .
Traceback (most recent call last):
File „fan_ctl.py“, line 4, in
import RPi.GPIO as GPIO
ImportError: No module named GPIO.
ich würde mich freuen wenn du mir helfen könntest.
Da ist das Python-GPIO-Modul nicht installiert.
Hallo,
ich habe auf meinem PI momentan Recalbox am laufen und habe mir ein Gehäuse gebaut.
jetzt meine frage , ich habe einen 12v Lüfter am Gehäuse der doch sehr laut ist , ist es möglich diese Lüftersteuerung in Kombination mit der Recalbox laufen zu lassen und wenn ja, nach dem gleichen verfahren ?
MFG tesa
Hallo,
mit Recalbox kenne ich mich leider nicht aus, worauf basiert das? Hat es eine Paketverwaltung (z.B. APT)?
Alexander, Du musst mir helfen ;)
Ich habe „RPi.GPIO-0.6.2“ nun mit Putty erfolgreich auf dem Raspberry installiert.
Nun schreibst Du: „erste Test-Datei anlegen“. Habe also mit Python auf dem Heim-PC die „fan_test.py“ geschrieben. Mit welchem Programm und wohin muss diese Datei nun genau? Diese befindet sich bei mir z.B. jetzt auf dem Desktop ;)
Entschuldige meine Unwissenheit auf diesem Gebiet :)
…die Installation von „RPi.GPIO-0.6.2“ verlief wohl doch nicht ohne Probleme.
Da kommt ein ellenlanger Text:
„Raspberry:~/RPi.GPIO-0.6.2 # python setup.py install
running install
running build
running build_py
creating build
creating build/lib.linux-armv7l-2.7
creating build/lib.linux-armv7l-2.7/RPi
copying RPi/__init__.py -> build/lib.linux-armv7l-2.7/RPi
creating build/lib.linux-armv7l-2.7/RPi/GPIO
copying RPi/GPIO/__init__.py -> build/lib.linux-armv7l-2.7/RPi/GPIO
running build_ext
building ‚RPi._GPIO‘ extension
creating build/temp.linux-armv7l-2.7
creating build/temp.linux-armv7l-2.7/source
/home/chewitt/LibreELEC.80-official/build.LibreELEC-RPi2.arm-7.90.004/toolchain/bin/host-gcc -pthread -fno-strict-aliasing -O2 -Wall -pipe -I/home/chewitt/LibreELEC.80-official/build.LibreELEC-RPi2.arm-7.90.004/toolchain/include -Wno-format-security -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c source/py_gpio.c -o build/temp.linux-armv7l-2.7/source/py_gpio.o
unable to execute ‚/home/chewitt/LibreELEC.80-official/build.LibreELEC-RPi2.arm-7.90.004/toolchain/bin/host-gcc‘: No such file or directory
error: command ‚/home/chewitt/LibreELEC.80-official/build.LibreELEC-RPi2.arm-7.90.004/toolchain/bin/host-gcc‘ failed with exit status 1″
Das mit dem verschieben der Dateien habe ich schon hinbekommen!
Beim ausführen der Testdatei kommt folgendes:
“ # python fan_test.py
Traceback (most recent call last):
File „fan_test.py“, line 3, in
import RPi.GPIO as GPIO
ImportError: No module named RPi.GPIO“
Woran könnte es liegen?
Betreibe Libreelec 7.90.004 auf dem Raspberry 3
Hallo Michael,
mit Libreelec habe ich bisher nicht gearbeitet. Laut deren Seite haben sie RPi.GPIO im Repository, hast du es schon mal so versucht zu installieren?
Ich habs gesucht, aber leider nirgends dieses:
new “pi tools” bundle that contains RPi.GPIO, gpiozero and picamera.
gefunden :(
Hi Michael,
wo das Paket genau ist, kann ich leider nicht sagen, da ich LibreElec noch nie genutzt habe.
Es ist unter LibreELEC Add-ons und dann unter Programm-Addons und heisst Raspberry PI Tools
Hi,
Könnte man statt dem gpio14 auch einen andern nehmen? ZB gpio12 und diesen dann in das Programm integrieren?
Hallo Tobias,
mir fällt gerade nichts ein, warum das nicht genauso funktionieren sollte :)
Im Code nur die Pin-Nummer anpassen und schon sollte es laufen.
Wie ist das eigentlich wenn ich berryboot und mehrere Betriebssysteme installiert habe. Läuft die Lüftersteuerung dann auf allen Betriebssystemen?
Hallo Tobi,
um die Steuerung von allen Systemen nutzen zu können, muss der Software-Teil auf allen Systemen umgesetzt werden.
habe ein broblem bei mir wirt immer bei dem versuch das stkript zu starten die fellermeldung gebracht Missing parentheses in call to ‚print“ und dan wirt mir das im skript rot unterstrischen temp_float
Hallo, danke für die Anleitung. Bin leider was das angeht absoluter Neuling und möchte einen 5V Lüfter direkt an den Pi anschließen, ohne diese Schaltung mit dem Transistor dazwischen. Muss ich hierzu den Minuspol an Ground und den Pluspol des Lüfters an den GPIO14 anschließen?
Hallo Heinz,
ohne Transistor sollte der Lüfter keinesfalls am Raspberry betrieben werden, da das ihn zerstören kann. Die GPIOs sind nicht ausgelegt dafür, als Stromversorgung von derartiger Hardware zu dienen.
Hallo, super Anleitung, vielen Dank! Funktioniert das Schalten auch über einen anderen GPIO? Der TXD ist durch eine Raspbee belegt.
Hallo Marius,
sicher – es kann jeder GPIO genutzt werden, da der Pin nur low oder high geschalten wird.
Läuft auch jetzt auf meinem RPi3 mit Libreelec.
Das installieren von python kann man sich sparen, es wird einfach aus der Libreelec Repo das Addon RPi-Tools geladen und dann kann man bequem im Ordner /storage einen neuen Ordner wie z.B. „fancontrol“ anlegen.
Zusätzlich zum script selbst muss nurnoch ein Eintrag hinzugefügt werden.
Mein Script sieht aus wie folgt:
#!/usr/bin/python
import sys
sys.path.append(‚/storage/.kodi/addons/virtual.rpi-tools/lib‘)
import os
import time
import RPi.GPIO as GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(14, GPIO.OUT)
def getCPUtemperature():
res = os.popen(‚vcgencmd measure_temp‘).readline()
return(res.replace(„temp=“,““).replace(„‚C\n“,““))
temp_float = float(getCPUtemperature())
try:
if (temp_float > 46):
print temp_float
print „lüfter aktiviert…“
# ein
GPIO.output(14, True)
time.sleep(240)
print „lüfter deaktiviert…“
# aus
GPIO.output(14, False)
print float(getCPUtemperature())
else:
print temp_float
print „temp zu gering“
except KeyboardInterrupt:
print float(getCPUtemperature())
print „lüfter deaktiviert…“
GPIO.output(14, False)
print „abbruch durch benutzer…“
Hallo Robert,
Das installieren von python kann man sich sparen, es wird einfach aus der Libreelec Repo das Addon RPi-Tools geladen und dann kann man bequem im Ordner /storage einen neuen Ordner wie z.B. „fancontrol“ anlegen.
Wie wird das Addon RPI-Tools geladen und wo soll der Ordner /storage sein?
Danke Dir leilei
Hallo,
kann man denn einen 12V Lüfter direkt an die GPIO-Pins anschließen, also ohne USB, Transistoren und Widerstände? Das Skript bräuchte ich gar nicht. Da der Raspi übertaktet ist, würde ich den Lüfter eh die ganze Zeit laufen lassen.
Hallo,
nein, einen 12V Lüfter kannst Du nicht direkt anschließen. Das Board bringt max. 5V.
Ich habe seit einem Jahr erfolgreich mit dieser Installation und dem script einen Lüfter am Raspi betrieben. Jetzt habe ich ein neues Gehäuse mit einem kleineren 5V Lüfter, den ich genau wie den alten umgebaut habe. Schließe ich diesen an eine Baterie läuft er auch, nur am Raspi läuft dieser nun mit selbigem script nicht mehr. Selbst mit einem Testscript läuft er nicht an. Ich habe beide 5V Anschlüsse versucht und mit GPIO 14 und 15 getestet.
Woran könnte es liegen bzw. was könnte ich noch testen ?
Ich habe alle Befehle ausgeführt, bekomme aber wenn ich fan.control starte folgende Fehlermeldung:
[email protected]:~/RPi.GPIO-0.5.6 $ sudo python fan_control.pyTraceback (most recent call last):
File „fan_control.py“, line 4, in
import RPi.GPIO as GPIO
ImportError: No module named GPIO
Halli Hallo,
bin neu hier und hab das Script soweit zum zum laufen gebracht, also Start des Lüfters und Stop via
Strg +C , Automatischer Start geht noch nicht und das mit dem Cronjob, das hab ich nicht geblickt. Da bräucht ich nochmal nen Tipp wie man das macht.
Raspi 3+ als Multiroom Squeezebox Server
MfG Peter
Der Lüfter ist wegen seiner kleinen Größe recht laut. Ist es daher möglich, diesen Lüfter mittels Programmierung langsamer drehen zu lassen ?