Raspberry Pi Temperaturmonitor

Raspberry Pi Temperature Monitor



Raspberry Pi ist ein leistungsstarker Single Board Computer (SBC). Es kann für viele anspruchsvolle Aufgaben verwendet werden. Dadurch wird jedoch die Temperatur des Prozessors von Raspberry Pi-Geräten erhöht. Was nicht gut ist. Die Leistung des Raspberry Pi SBC leidet unter der Temperatur. Dies wird auch als thermische Drosselung bezeichnet.

Wenn die Temperatur des Prozessors Ihres Raspberry Pi über 80 Grad Celsius liegt, sehen Sie in der oberen rechten Ecke des Bildschirms ein Thermometer-Symbol. Offiziell empfiehlt die Raspberry Pi Foundation, dass die Temperatur Ihres Raspberry Pi-Geräts unter 85 Grad Celsius liegen sollte, damit es richtig funktioniert. Das ist die Höchstgrenze. Aber es würde bei 82 Grad Celsius anfangen zu drosseln.







In diesem Artikel zeige ich Ihnen, wie Sie die Temperatur Ihres Raspberry Pi überwachen. Ich werde das Raspbian-Betriebssystem auf meinem Raspberry Pi 3 Model B-Gerät verwenden. Aber es sollte auf jedem Raspberry Pi SBC mit installiertem Raspbian-Betriebssystem funktionieren.



Sie können die Kerntemperatur Ihres Raspberry Pi-Geräts mit dem folgenden Befehl messen:



$vcgencmd measure_temp

Die aktuelle Kerntemperatur beträgt 48,3 Grad Celsius, wie Sie im markierten Abschnitt des Screenshots unten sehen können.





Wie Sie sehen können, zeigt der Befehl jedes Mal, wenn ich ihn ausführe, einen anderen Temperaturwert an.



Analysieren der Temperaturdaten:

Die Temperaturdaten, die wir vom vcgencmd Befehl ist ein String. Sie können damit keine Berechnungen durchführen. Wir können den regulären Ausdruck einfach verwenden, um nur die Temperaturdaten zu extrahieren und jede Art von Berechnung damit durchzuführen.

Wenn Sie die Temperaturdaten in einem Bash-Shell-Skript verwenden möchten, können Sie die Temperaturdaten mit extrahieren egrep Befehl wie folgt:

$vcgencmd measure_temp| egrep -oder '[0-9] * .[0-9] *'

Wie Sie sehen, werden nur die Temperaturdaten gedruckt. Es gibt nichts davor oder danach.

Sie können es in Ihrem Shell-Skript verwenden (sagen wir print_temp.sh ) wie folgt:

$nanoprint_temp.sh

Hier, in Zeile 3, setze ich die temp Variable zu den geparsten Temperaturdaten, die ich von der vcgencmd und Griff Befehl.

In Zeile 5 habe ich verwendet rauswerfen um den Inhalt der auszudrucken temp variabel auf dem Bildschirm.

Zeile 1 wird verwendet, um Linux mitzuteilen, dass das Skript mit ausgeführt werden soll /bin/bash standardmäßig.

Machen Sie nun das Skript mit dem folgenden Befehl ausführbar:

$chmod+ x print_temp.sh

Führen Sie nun das Skript wie folgt aus:

$./print_temp.sh

Wie Sie sehen, wird die gewünschte Ausgabe auf dem Bildschirm gedruckt.

Schreiben eines Raspberry Pi-Temperaturüberwachungsskripts:

Jetzt können wir die Temperaturdaten analysieren, die wir vom vcgencmd Befehl können wir ganz einfach ein Temperaturüberwachungsskript für Raspberry Pi schreiben. Das Temperaturüberwachungsskript druckt den aktuellen Zeitstempel und die Kerntemperatur jede Sekunde schön formatiert auf den Bildschirm.

Erstellen Sie zuerst ein neues Skript tempmon.sh mit folgendem Befehl:

$berührentempmon.sh

Bearbeiten Sie nun die tempmon.sh Skript mit folgendem Befehl:

$nanotempmon.sh

Geben Sie nun die folgenden Codezeilen ein und speichern Sie die Datei mit + x und drücke dann und gefolgt von .

Hier, in Zeile 4, druckenf wird verwendet, um die Zeichenfolgen TIMESTAMP und TEMP(degC) als Spalte mit fester Breite zu drucken.

In Zeile 5 habe ich verwendet druckenf erneut, um eine gestrichelte Linie zu drucken, nur um die Ausgabe lesbarer und ansprechender zu machen.

In Zeile 7-13 habe ich eine Endlosschleife ausgeführt, um die Temperaturdaten jede Sekunde zu drucken.

In Zeile 9 habe ich die geparsten Temperaturdaten auf dem temp Variable.

In Zeile 10 habe ich die Zeitstempeldaten gespeichert, die ich von der Datum Befehl auf dem Zeitstempel Variable.

In Zeile 11 habe ich Datum und Uhrzeit im Zeitstempelformat und die Temperaturdaten im Spaltenformat mit fester Breite gedruckt.

In Zeile 12 habe ich den Befehl sleep 1 verwendet, um die Ausführung des Skripts für eine Sekunde anzuhalten. Danach wird die Schleife fortgesetzt.

Machen Sie jetzt das Skript tempmon.sh ausführbar mit folgendem Befehl:

$chmod+ x tempmon.sh

Führen Sie schließlich das Skript aus tempmon.sh mit folgendem Befehl:

$./tempmon.sh

Wie Sie sehen, funktioniert das Temperaturüberwachungsskript perfekt. Es druckt jede Sekunde die Temperaturdaten.

Wie Sie sehen können, stieg die Temperatur leicht an, als ich die Systemlast erhöhte.

Wenn Sie das Temperaturüberwachungsskript stoppen möchten, drücken Sie + C . Die Temperaturüberwachung läuft nicht mehr, wie Sie im Screenshot unten sehen können.

Jetzt, da das Temperaturüberwachungsskript funktioniert, kopieren wir es nach /usr/bin Verzeichnis. Auf diese Weise können Sie es wie alle anderen Linux-Befehle ausführen.

Um das Skript zu kopieren tempmon.sh zum /usr/bin Verzeichnis, führen Sie den folgenden Befehl aus:

$sudo cptempmon.sh/usr/bin/tempmon

Wie Sie sehen, kann ich das Temperaturüberwachungsskript genauso ausführen, wie ich Standard-Linux-Befehle ausführe.

Ändern tempmon zum Drucken von Temperaturdaten in Fahrenheit:

Sie können die Temperaturdaten ganz einfach von Celsius in Fahrenheit umrechnen.

Die allgemein bekannte Formel zur Berechnung von Temperaturen in Fahrenheit aus Celsius lautet:

F =(9/5)*C +32
Oder
F =1,8 *C +32

Das Problem ist jedoch, dass die Bash-Shell nicht über die erforderlichen Funktionen verfügt, um Gleitkommaberechnungen durchzuführen. Sie müssen sich also auf einige andere Programme verlassen, wie z bc .

bc ist auf Raspbian standardmäßig nicht installiert. Aber Sie können es einfach mit dem folgenden Befehl installieren:

$sudogeeignetInstallieren bc

bc installiert werden sollte.

Jetzt müssen Sie das Temperaturüberwachungsskript ändern und die erforderlichen Berechnungen durchführen, um die Temperatur von Celsius in Fahrenheit umzuwandeln bc .

Bearbeiten Sie die tempmon.sh Skript mit folgendem Befehl:

$nanotempmon.sh

Nehmen Sie nun die Änderungen wie im Screenshot unten markiert vor.

Hier, in Zeile 4, habe ich gedruckt TEMP (F) Anstatt von TEMP (Grad C) .

In Zeile 9 habe ich die Variable geändert von temp zu tempC .

In Zeile 10 habe ich das Ergebnis der Umrechnung von Celsius in Fahrenheit zu einer Variablen hinzugefügt tempF .

Schließlich habe ich den Wert von gedruckt tempF variabel statt temp auf Zeile 12.

Führen Sie nun das Skript wie folgt aus:

$./tempmon

Wie Sie sehen können, wird die Temperatur in der Einheit Fahrenheit gedruckt.

So überwachen Sie die Temperatur in Raspberry Pi. Danke, dass Sie diesen Artikel gelesen haben.