Inhaltsverzeichnis
Raspberry Lüftersteuerung
Vorwort
Alle Anleitungen ohne Gewähr! Verwendung auf eigenen Gefahr!
Immer wieder mal verbaue ich einenRaspberry Pi in ein enges (warmes) Gehäuse. Hier wird eine einfache Lüftersteuerung erläutert, die ab einer bestimmten Boardtemperatur einen Lüfter schaltet. Es werden keinerlei zusätzlichen Bibliotheken verwendet, ein „Raspbian-Lite-Image“ reicht völlig.
Hardware
- 1x Raspberry Pi (klar), mit installiertem Raspbian-Image
- 1x NPN-Transistor: BC337-40 800mA (o.ä.)
- 1x Widerstand: 1kOhm
- 1x Minilüfter: 5Volt
- Ein paar Breadboard-Strippen, oder Dupont Stecker, o.ä.
Anschluss
5V Raspberry (USB o. GPIO-Pin) → Lüfter (+)
GND Raspberry (GPIO-Pin) → Transistoremitter
Transistorcollector → Lüfter (-)
GPIOx (3,3V) → über Widerstand → Transistorbasis
Die 5 Volt können entweder von der GPIO-Leiste oder auch von einem USB-Port gezapft werden, der GPIO schafft das locker bei einem kleinen Lüfter…
Shellskript
Die ganze Steuerung übernimmt ein einziges Shellskript, dass beim Start geladen wird und endlos durchläuft. Die einzigen Parameter, die man anpassen kann, sind:
- Bevorzugter GPIO-Pin, einfach im Beispiel unten „21“ durch Suchen/Ersetzen auf den passenden Pin setzen.
- Schalttemperatur, durch die Logik entsteht automatisch quasi eine Hysterese von zwei Grad, bei 50 Grad wird z.B. bei 51 Grad eingeschaltet und bei 49 Grad wieder abgeschaltet.
- Ganz unten die Pausedauer, die trotz der zwei Grad Schaltpause eine gewisse Mindestlaufzeit erzwingt.
sudo nano /home/pi/lueftersteuerung.sh
#!/bin/sh #Bei Strg-C Cleanup fuer verwendeten GPIO trap 'echo --- Lueftersteuerung beendet ---; echo "21">/sys/class/gpio/unexport; exit 1' 2 # GPIO setzen (21) echo "21">/sys/class/gpio/export echo "out">/sys/class/gpio/gpio21/direction #Initiales Ein- und Ausschalten des Luefters (kleiner Funktionstest beim einschalten des Pi) echo "1">/sys/class/gpio/gpio21/value #Luefter ein sleep 5s #5 Sekunden laufen lassen echo "0">/sys/class/gpio/gpio21/value #Luefter aus meldetemp=50 #Ab dieser Temperatur Luefter einschalten while true # Endlos laufen do boardtemp=`vcgencmd measure_temp | cut -c6,7` #Boardtemperatur als ganze Zahl lesen if [ $boardtemp -ge $meldetemp ] #wenn Boardtemperatur ueber Limit then echo "Boardtemperatur: $boardtemp -> Luefter ein!" echo "1">/sys/class/gpio/gpio21/value fi if [ $boardtemp -le $meldetemp ] #wenn Boardtemperatur unter Limit then echo "Boardtemperatur: $boardtemp -> Luefter aus!" echo "0">/sys/class/gpio/gpio21/value fi sleep 15s #neuer Durchlauf in 15 Sekunden, Minimumlaufzeit des Lüfters done
Skript ausführbar machen: sudo chmod +x /home/pi/lueftersteuerung.sh
Danach das Skript starten lassen beim Systemstart, am einfachsten z.B. sudo crontab -e
→ @reboot /home/pi/lueftersteuerung.sh