DB7SG

German Amateur Radio Station

Benutzer-Werkzeuge

Webseiten-Werkzeuge


allerlei:raspberry_lueftersteuerung

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

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
allerlei/raspberry_lueftersteuerung.txt · Zuletzt geändert: 06.04.2022 12:18 von DB7SG

...powered by DB7SG