Inhaltsverzeichnis:

Präzise Temperaturkontrolle auf dem Raspberry Pi 4: 3 Schritte
Präzise Temperaturkontrolle auf dem Raspberry Pi 4: 3 Schritte

Video: Präzise Temperaturkontrolle auf dem Raspberry Pi 4: 3 Schritte

Video: Präzise Temperaturkontrolle auf dem Raspberry Pi 4: 3 Schritte
Video: Temperatursensor für SNMP-kompatible sensorProbe Datenlogger 2024, November
Anonim
Präzise Temperaturkontrolle auf dem Raspberry Pi 4
Präzise Temperaturkontrolle auf dem Raspberry Pi 4

Das Pimoroni Fan Shim ist eine großartige Lösung, um die Temperatur Ihres Pi zu senken, wenn er heiß wird. Die Hersteller liefern sogar eine Software, die den Lüfter auslöst, wenn die CPU-Temperatur über einen bestimmten Schwellenwert (z. B. 65 Grad) steigt. Die Temperatur sinkt schnell unter einen unteren Schwellenwert und schaltet den Lüfter aus. Das ist großartig, führt aber bei mäßiger Last zu einem Anstieg und Abfall der Temperatur und erzeugt hörbare Lüftergeräusche. Dieses anweisbare reduziert das Geräusch des Lüfters, während die CPU-Temperatur mit einem sogenannten PID-Controller auf einen bestimmten Wert festgelegt wird. Höhere Schwellenwerte (z. B. 65 Grad) führen zu einem viel leiseren Lüfter, während niedrigere Schwellenwerte (z. B. 50 Grad) zu einem lauteren Lüfter, aber einer besseren Temperaturkontrolle führen.

Das obige Beispiel zeigt meine Ergebnisse beim Ausführen des PID-Reglers und Ändern der Zieltemperatur alle 500 Sekunden. Die Genauigkeit beträgt +/- 1 Grad mit etwas Überschwingen bei plötzlichen Temperaturänderungen.

Wichtig ist, dass dieser Test während der gesamten Testzeit unter der gleichen Last durchgeführt wurde (beim Anschauen des BBC iPlayers).

Zubehör

  • Raspberry Pi 4
  • Pimoroni Fächer Shim

Schritt 1: Richten Sie Ihren Lüfter ein

Richten Sie Ihren Lüfter ein
Richten Sie Ihren Lüfter ein

Der erste Schritt besteht darin, Ihren Lüfter einzurichten. Das Pimorini-Tutorial ist großartig!

Öffnen Sie dann das Terminal auf Ihrem Pi (ctrl alt t)

Und installieren Sie den von Pimoroni. bereitgestellten Code

git-Klon https://github.com/pimoroni/fanshim-pythoncd fanshim-python sudo./install.sh

Schritt 2: Erstellen Sie einen PI(D)-Controller

Erstellen Sie einen PI(D)-Controller
Erstellen Sie einen PI(D)-Controller

Ein Proportional Integral Derivative (PID)-Regler ist ein System, das verwendet wird, um den Wert eines bestimmten Prozesses (CPU-Temperatur) durch Manipulation eines physikalischen Geräts (Lüftergeschwindigkeit) zu steuern. Wir können die „Geschwindigkeit“und das Geräusch des Lüfters manipulieren, indem wir ihn regelmäßig ein- und ausschalten (Pulswellenmodulation). Die Einschaltdauer in einem bestimmten Zeitraum (z. B. 1 Sekunde) bestimmt, wie schnell und wie laut der Lüfter ist (900 ms = laut und schnell, 100 ms = leise und langsam). Wir werden die PID verwenden, um die Geschwindigkeit des Lüfters zu manipulieren und somit die Temperatur zu steuern.

Wir können die Verwendung einer PID in mehrere Schritte unterteilen.

  1. Entscheiden Sie sich für den Wert der Prozessvariablen, den Sie erreichen möchten (z. B. CPU-Temperatur = 55). Dies wird als Ihr Sollwert bezeichnet.
  2. Berechnen Sie den PID-Fehler. Wenn Ihr Sollwert 55 Grad beträgt und die tatsächliche Temperatur 60 Grad beträgt, beträgt Ihr Fehler 5 Grad (Temperatur - Sollwert)
  3. Verändern Sie die Einschaltzeit des Lüfters proportional zum Fehler (Große Fehler führen zu großen Änderungen der Lüfterdrehzahl, kleine Fehler führen zu kleinen Änderungen der Lüfterdrehzahl).
  4. Lüfter proportional zu vergangenen Werten einstellen (Integral/Summe aller bisherigen Fehler)
  5. Optional passen Sie die Lüfterdrehzahl basierend auf der Änderungsrate des Fehlers (Ableitung) an, aber das werden wir hier nicht tun

Nun, da Sie die Theorie haben, führen Sie den folgenden Code in der Thonny-IDE (oder einer anderen Python-IDE) aus. Ändern Sie den Wert von 'target' im folgenden Code, um zu ändern, auf welcher Temperatur Ihr Pi gehalten werden soll. Ich habe die Terme 'P' und 'I' auf etwas willkürliche Werte gesetzt. Fühlen Sie sich frei, diese anzupassen, wenn sie für Sie nicht funktionieren. ein größeres 'P' bedeutet, dass der Controller schnell auf neue Fehler reagiert (aber möglicherweise nicht stabil ist). Das Ändern von 'I' führt dazu, dass der Controller seine Reaktion stärker auf vergangene Werte gewichtet. Ich würde nicht versuchen, diese Begriffe zu groß zu machen, da eine schnelle Änderung der Lüftergeschwindigkeit die Temperatur nicht schnell ändert. Auch wenn Sie unglaublich schwere Arbeit an Ihrem Pi verrichten, erreichen Sie möglicherweise nicht die gewünschte Temperatur (die Grenzen des Lüfters gelten weiterhin).

von Fanshim importieren FanShim

from time import sleep, time import os import math # CPU-Temperatur als Zeichenkette zurückgeben def getCPUtemperature(): res = os.popen('vcgencmd measure_temp').readline() return(res.replace("temp=", " ").replace("'C\n", "")) fanshim = FanShim() target = 55 # gewünschte Temperatur (spielen Sie damit und sehen Sie, was passiert) period=1 # PWM period on=.1 # initialisieren auf 0 % Tastverhältnis aus=Periode ein # Initialisierung auf 0% Tastverhältnis P=.01 # Proportionaler Verstärkungsterm (spielen Sie damit und sehen Sie, was passiert) intErr=0 # Integralfehler I=.0001 # Integralverstärkungsterm (spielen Sie damit und sehen was passiert) während True: # get temperaute temp=int(float(getCPUtemperature())) # Fehler berechnen und glätten err = temp-target # Integra lerror berechnen und einschränken intErr=intErr+err if intErr>10: intErr =10 if intErr=period: on=period off=0 else: on=on off = period-on # Mindesteinschaltdauer einstellen if on<.09: on=.09 else: on=on # PWM auf dem Fanshim-Pin if on ==Periode: fanshim.set_fan(True) sleep(on) else: fanshim.set_fan(True) s leep(on) fanshim.set_fan(False) sleep(off)

Schritt 3: Steuerskript beim Start ausführen

Steuerskript beim Start ausführen
Steuerskript beim Start ausführen

Sie können dieses Skript jedes Mal ausführen, wenn Sie Ihr Pi starten, oder Sie können es beim Neustart automatisch auslösen lassen. Das geht ganz einfach mit crontab.

  1. öffne das Terminal
  2. crontab-e in das Terminal eingeben
  3. fügen Sie die folgende Codezeile in die Datei '@reboot python /home/pi/bootScripts/fanControl.py &'
  4. beenden und neu starten

Ich habe das Skript (fanControl.py) in einem Ordner namens bootScripts abgelegt, aber Sie können es überall platzieren, stellen Sie nur sicher, dass Sie den richtigen Pfad in crontab angeben.

Alles fertig! Jetzt regelt Ihr Lüfter die Temperatur Ihrer CPU auf einen bestimmten Wert und minimiert gleichzeitig das hörbare Geräusch, das er erzeugt.

Empfohlen: