Inhaltsverzeichnis:
- Zubehör
- Schritt 1: Richten Sie Ihren Lüfter ein
- Schritt 2: Erstellen Sie einen PI(D)-Controller
- Schritt 3: Steuerskript beim Start ausführen
Video: Präzise Temperaturkontrolle auf dem Raspberry Pi 4: 3 Schritte
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
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
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
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.
- 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.
- 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)
- 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).
- Lüfter proportional zu vergangenen Werten einstellen (Integral/Summe aller bisherigen Fehler)
- 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
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.
- öffne das Terminal
- crontab-e in das Terminal eingeben
- fügen Sie die folgende Codezeile in die Datei '@reboot python /home/pi/bootScripts/fanControl.py &'
- 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:
Präzise Wiimote Light Gun für Raspberry PI - Gunook
Präzise Wiimote-Lichtpistole für Raspberry PI: Normalerweise ist die als Lichtpistole verwendete Wii-Fernbedienung für Retro-Spiele wie NES Duck Hunt nicht genau genug, da die Wii-Fernbedienung tatsächlich nicht den Punkt auf dem Fernseher auswählt, auf den sie gerichtet ist. Es kann nicht! Die Wii-Fernbedienung hat eine Infrarot-Kamera in der Vorderseite
Tweets auf dem OLED-SPI-Display und dem Photonenboard von Particle - Gunook
Tweets auf dem OLED-SPI-Display und dem Photon-Board von Particle: Grüße an alle. Dieses einfache Tutorial zeigt uns, wie wir unsere Tweets mit IFTTT und einem Photon-Board lesen. Möglicherweise müssen Sie dieses instructable sehen
So zeichnen Sie den Bildschirm auf dem Samsung Galaxy S7 auf !! - Gunook
So zeichnen Sie den Bildschirm auf dem Samsung Galaxy S7 auf !!: Dieses Instructable zeigt Ihnen, wie Sie den Bildschirm auf Ihrem Samsung Galaxy S7 aufzeichnen Bitte abonnieren Sie meinen Kanal Danke
Hausautomation: Einen Alarm auslösen und auf dem LCD anzeigen, wenn die Temperatur über dem Schwellenwert liegt - Gunook
Hausautomation: Alarm auslösen und auf LCD anzeigen, wenn die Temperatur über dem Schwellenwert liegt: In diesem Blog wird gezeigt, wie ein Hausautomationssystem erstellt wird, das einen Alarm auslöst, wenn die Temperatur den programmierten Schwellenwert überschreitet. Es zeigt weiterhin die aktuelle Temperatur des Raums auf dem LCD an und es müssen Maßnahmen ergriffen werden
Orange PI HowTo: Einrichten für die Verwendung mit dem Auto-Rückfahrdisplay und dem HDMI-auf-Cinch-Adapter - Gunook
Orange PI HowTo: Richten Sie es für die Verwendung mit dem Auto-Rückfahrdisplay und dem HDMI-zu-Cinch-Adapter ein: VORWORT. Und es sieht ein bisschen übertrieben aus, wenn es für eingebettete Systeme gedacht ist. Hier brauchen wir etwas Kleines und etwas Günstiges. Wie ein