Was ist die maximale / minimale Betriebstemperatur?

47

Wie laut Titel lauten die maximalen und minimalen Betriebstemperaturwerte des Pi, bevor er nicht mehr zuverlässig funktioniert? Könnte dies auch von der verwendeten SD-Karte abhängen?

berry120
quelle
1
while sleep 1;do tput sc;tput cup 0 $(($(tput cols)-2));cat /sys/class/thermal/thermal_zone0/temp;tput rc;done &zeigt die CPU-Temperatur in der oberen rechten Ecke der Konsole an. Zur Überwachung.
NVRM
2
Die Verwendung von @NVRM watch /opt/vc/bin/vcgencmd measure_temp(gibt alle zwei Sekunden einen neuen Messwert aus) klingt einfacher und sauberer als Ihre Herangehensweise an eine konstante Temperaturüberwachung. Aber ich könnte mich irren.
Trejder
Nun, die sind ziemlich ähnlich, der catAnsatz funktioniert unter allen Linux-Betriebssystemen, während vcgencmdpi-spezifisch ist.
NVRM

Antworten:

41

Aus den RPi FAQ :

Was ist der nutzbare Temperaturbereich?

Der Raspberry Pi besteht aus handelsüblichen Chips, die für verschiedene Temperaturbereiche geeignet sind. Der LAN9512 wird von den Herstellern als von 0 ° C bis 70 ° C qualifiziert spezifiziert, während der AP von -40 ° C bis 85 ° C qualifiziert ist. Sie werden vielleicht feststellen, dass das Board außerhalb dieser Temperaturen funktioniert, aber wir qualifizieren das Board selbst nicht für diese Extreme.

Jivings
quelle
5
Weiß jemand, was der "AP" ist, dh welcher Chip / welche Komponente?
Darryl Hein
9
Dies ist der Anwendungsprozessor (Broadcom BCM2835), die CPU der Karte.
Bayindirh
3
Und es liegt auf der Hand, dass die erzeugte Wärme beim Einschalten des Geräts einen Faktor darstellen kann. IE: Wenn das Gerät bei -40 ° C gestartet wird, kann dies zu Fehlern führen. Wenn es jedoch eingeschaltet bleibt, sollten die Komponenten wärmer als die Umgebungstemperatur sein und daher nicht bei -40 ° C. 40. Die Umgebung sollte berücksichtigen. -40, hier komme ich, ich parke ein paar Pis draußen in Kanada. :)
James T Snell
2
@ Doc Witzig solltest du das eh erwähnen. ;) Ich habe einen im Freien (innerhalb von Tupperwear, luft- / wasserdicht, aber ohne Isolierung) bei -20 ° C einige Stunden lang geparkt und habe nicht bemerkt, dass die tatsächliche Kerntemperatur (vom eingebauten Sensor) unter + 20 gefallen ist C.
Goldlöckchen
1
gibt es eine LAN chipmöglichkeit, die temp zu erkennen , da ihre tote temp viel niedriger ist als Soc Chip, ich glaube, der /opt/vc/bin/vcgencmd measure_tempbefehl kann nur die Soc Chiptemp melden , richtig?
Shawn
9

Meine Erfahrung mit Raspberry Pi 3: Der SoC wird bei ungefähr 80 Grad Celsius anfangen zu drosseln und wird sich meiner Erfahrung niemals erlauben, wärmer als 85 Grad Celsius zu sein. Dies ist natürlich die Kerntemperatur - die Temperatur außerhalb des Chips muss viel niedriger sein, um einen effizienten Wärmeaustausch zu ermöglichen.

Sie können den SoC zwar nicht zerstören, indem Sie ihn ungekühlt lassen, aber die Leistung wird stark beeinträchtigt. (Gleiches gilt für das Netzteil, übrigens). In unserem Labor bemerkten wir Bildabfälle und eine signifikante Verschlechterung der Videoverarbeitungskapazität, nur um festzustellen, dass 1) es ohne den Kühlkörper zu heiß wurde 2) die Spannung aufgrund zu langer 5-V-Versorgungskabel unter 4,6 V abfiel.

In jeder Art von Extremszenario ist es am wahrscheinlichsten, dass Ihre Verarbeitungsleistung zuerst abnimmt und andere Probleme erst viel später auftreten, wenn überhaupt. Dies kann zu einer enormen Zeitverschwendung führen, wenn Sie versuchen, Softwarefehler aufzuspüren ("Warum läuft mein Programm plötzlich so langsam?!?"), Nur um festzustellen, dass die Drähte zu dünn oder der Kühlkörper zu klein sind !

In Bezug auf die untere Grenze sollten Sie alle Komponenten überprüfen. Ich habe kürzlich Raspi3 bei -12C kalt gebootet und die Kamera hat nicht funktioniert (zum ersten Mal seit Wochen, aber zu anderen Zeiten waren die Temperaturen über Nacht nicht so niedrig). Nach 15 Minuten Wartezeit habe ich es neu gestartet und es begann normal zu funktionieren.

Außerdem denke ich, dass der Netzwerk- / USB-Chip auf der Platine selbst nicht unter 0 C bewertet ist. Wenn Sie solche Extreme benötigen, empfehle ich, auf Compute Module 3 zu warten, das einen Bereich von -20 bis 80 C haben wird, indem Sie das Problem einfach nicht bereitstellen Chip überhaupt :)

xmp125a
quelle
7

Ich sehe, dass die Frage des OP maßgeblich beantwortet wurde, aber hier sind meine Erfahrungen von 2 Cent:

Mit dem transparenten Kunststoffgehäuse ohne Lüfter und den Kühlkörpern läuft der ARM AP bei ca. 50 ° C, und mein Pi3 funktioniert einwandfrei. Wenn ich den oberen Teil der Plastikhülle abnehme, sinkt die Temperatur auf 47-48.

Mein Fazit ist also, dass das Gehäuse in dieser Hinsicht keinen messbaren Schaden anrichtet.

Der Befehl zum Zurückgeben der CPU-Temperatur in stdout lautet vcgencmd measure_temp


In Kommentaren wird uhoherwähnt, dass der Befehl os.popen('vgencmd measure_temp').read()die Textversion der Temperaturnummer zurückgibt, wenn Sie die Temperatur in einem Python-Programm verwenden möchten .

-------------------------------------------------- ----

So verwende ich Popen, um die Temperatur in eine Ganzzahlvariable umzuwandeln:

from subprocess import Popen, PIPE
.
.
.
cmd = 'vgencmd measure_temp'
p = Popen(cmd,stdout=PIPE, stderr=PIPE, shell=True)
stdout, stderr = p.communicate()

CPUtemp = int(stdout)
.
.
etc

Das Obige stammt aus diesem Code:

Pingen Sie eine Website und schalten Sie die Ausgabe ein, wenn Sie online oder offline sind?

Dieser Beitrag zeigt, wie man es auf fpingverschiedene Arten benutzt, auch wenn die Ergebnisse wie folgt eingehenstderr

Enthält auch ein Cradle-to-Grave-Beispiel, in dem die Daten und Plots verwendet werden, sobald sie vorliegen. Es zeigt Python und Gnuplot. Von diesen Ganzsystembeispielen sehen wir hier nicht genug.

SDsolar
quelle
1
stelle einfach sicher, dass es in Umgebungen mit sehr hohen
Temperaturen
Hervorragender Punkt. Meine Raumtemperatur ist 75F, was gerade unter 24C ist, und die Tür ist nach außen offen, so dass es einen guten Luftstrom gibt.
SDsolar
1
Das ist sehr hilfreich! (wird in 12 Stunden abstimmen, wenn mein Kontingent für den Tag abläuft). Es scheint, os.popen('vcgencmd measure_temp').read()dass die Temperatur (Text) auch in Python verfügbar ist. wie auchcommands.getstatusoutput('vcgencmd measure_temp')[1]
uhoh
1
TNX für die Python-Befehle. Dieser Ansatz zu verwenden os.popenund .readwie das könnte in sehr nützlich. Ganz zu schweigen davon, dass commands.getstatusoutput ... [1] ich Python in der Regel häufig mit externen Befehlen verwende, aber keine davon gefunden habe. Gut gemacht. Übrigens, je mehr Fragen Sie beantworten, desto mehr Punkte erhalten Sie und die Einschränkungen werden ziemlich schnell aufgehoben. Diese bestimmte SE ist eine harte Masse, aber sie erkennen definitiv wertvolle Beiträge zur Datenbank an.
SDsolar
1
Ich habe heute maximale Stimmen abgegeben. Während ich mehrere Stunden lang nach Dingen suchte, stieß ich immer wieder auf hilfreiche Beiträge mit null Stimmen. Ich habe nicht herausgefunden, was manche SE-Sites großzügiger macht und andere weniger.
uhoh
0

Das Folgende ist ein wenig außerhalb der Frage, aber ein allgemeiner Anwendungsfall, der einige Ideen geben könnte.

Dies kann an jede Art von Eingaben, GPIO-Sensoren, Internetdaten angepasst werden.

Wie zeichnet man die CPU-Temperatur über die Zeit auf?

Installieren Sie Gnuplot

Gnuplot kann Daten im Terminal grafisch darstellen, benötigt keinen X-Server und verbraucht sehr wenig Ressourcen.

Es funktioniert sogar auf dem langsamsten Himbeer-Pi-Modell 1 / Null reibungslos.

sudo apt install gnuplot

Skriptbeispiel zum Erstellen einer gnuplotDatei:

temperature Skript zum Speichern der Daten über die Zeit.

#!/bin/sh
echo $(date +%s ; cat /sys/class/thermal/thermal_zone0/temp) | tee >> temperature.plot

Erteilen Sie Ausführungsrechte für dieses Skript:

chmod +x temperature

Trennen und bis zum nächsten Neustart in 1s-Schleife ausführen:

nohup watch ./temperature &

Zeichnen Sie später die Daten:

gnuplot -e "set terminal dumb $(tput cols) $(tput lines);plot 'temperature.plot' using 0:2 with lines"

Bildbeschreibung hier eingeben

Dies ist ein Barebone-Beispiel, dessen Temperatur in Celsius * 1000 und Sekunden seit dem Start in Ihrer eigenen Skriptsuite erweitert werden soll.

Um die watchSchleife zu töten ,killall watch

Viel Spaß beim Hacken;)

NVRM
quelle