回答:
RPi FAQから:
使用可能な温度範囲は?
Raspberry Piは、さまざまな温度範囲に適合する商用チップから構築されています。LAN9512は、0°C〜70°Cの認定を受けているメーカーによって指定され、APは-40°C〜85°Cの認定を受けています。ボードはこれらの温度外でも動作することがわかるかもしれませんが、ボード自体をこれらの極端な状態に限定するわけではありません。
LAN chip
温度を検出する方法はありますか?それはSoc Chip
、そのデッド温度がよりもはるかに低いため、/opt/vc/bin/vcgencmd measure_temp
コマンドはSoc Chip
正しい温度しか報告できないと思いますか?
Raspberry Piは、液体窒素に浸されたときに安定することが証明されているという記事によると、-70°C未満まで下がります。
Raspberry Pi 3での私の経験:SoCは約80℃で減速し始め、私の経験では、85℃よりも高温になることは決してありません。これはもちろんコア温度です。効率的な熱交換を促進するには、チップの外側の温度をもっと低くする必要があります。
あなたは(おそらく、私の言葉を受け入れないで)冷却せずに放置してSoCを破壊することはできませんが、パフォーマンスは深刻な影響を受けます。(電源、BTWも同様です)。私たちの研究室では、フレームの低下とビデオ処理能力の著しい低下に気づき始めました.1)ヒートシンクなしでは熱くなりすぎたこと、2)5Vの供給ワイヤが長すぎたために電圧が4.6Vを下回ったことがわかりました。
どんな種類の極端なシナリオでも、最初に処理能力が低下し、他の問題が発生する可能性が非常に高くなります。これは、ソフトウェアバグ(「なぜプログラムが突然こんなに遅く実行されるのですか?!?」)を探し出そうとすると、膨大な時間の無駄につながる可能性がありますが、ワイヤが細すぎるか、ヒートシンクが小さすぎることに気付くだけです!
低境界については、すべてのコンポーネントを確認する必要があります。最近、Raspi3を-12°Cの低温で起動しましたが、カメラは機能しませんでした(最初は数週間でしたが、夜間の気温はそれほど低くありませんでした)。15分間待ってから再起動すると、正常に動作し始めました。
また、ボード自体のネットワーク/ USBチップの定格は0 C以下ではないと思います。このような極端な値が必要な場合は、-20から80Cの範囲を持つCompute Module 3を待つことをお勧めします。まったくチップ:)
OPの質問は正式に回答されていますが、ここに私の2セントの経験があります。
基本的な透明なプラスチック製のファンなしエンクロージャーとヒートシンクを使用すると、ARM APは約50°C(122°F)で動作し、Pi3は正常に動作します。プラスチックシェルの上部を取り外すと、温度は47〜48に下がります。
私の結論は、エンクロージャーがこの点で測定可能な損害を引き起こしていないということです。
標準出力でCPU温度を返すコマンドはvcgencmd measure_tempです
uhoh
Pythonプログラムで温度を使用する場合、コマンドos.popen('vgencmd measure_temp').read()
は温度番号のテキストバージョンを返すことを述べているコメントを参照してください。
Popenを使用して温度を整数変数に変換する方法は次のとおりです。
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
上記はこのコードから取られています:
Webサイトにpingを実行し、オンライン/オフラインの場合に出力をオンにしますか?
この投稿ではfping
、結果は次のようになりますが、いくつかの異なる方法で使用する方法を示していますstderr
また、データを活用し、データが入ってくるとライブでプロットする、ゆりかごから墓場までのサンプルも含まれています。Pythonとgnuplotを示しています。ここでは、これらのシステム全体の例が十分に見当たりません。
os.popen('vcgencmd measure_temp').read()
Python内でも温度(テキスト)を利用できるように思われます。同様にcommands.getstatusoutput('vcgencmd measure_temp')[1]
os.popen
などのアプローチ.read
は非常に便利です。言うまでもなく、commands.getstatusoutput ... [1]
私はPythonを外部コマンドで頻繁に使用する傾向がありますが、これらのいずれにも遭遇しませんでした。よくやった。ところで、より多くの質問に答えれば、より多くのポイントが得られ、制限はすぐに解除されます。この特定のSEは厳しい群衆ですが、データベースへの貴重な貢献を間違いなく認識しています。
以下は質問の少し外ですが、いくつかのアイデアを与えるかもしれない一般的なユースケースです。
これは、あらゆる種類の入力、gpioセンサー、インターネットデータに適応できます。
CPU温度の経時変化をグラフ化する方法は?
gnuplotをインストールする
Gnuplotは端末でデータをグラフ化でき、Xサーバーを必要とせず、リソースをほとんど使用しません。
最も遅いラズベリーパイのモデル1 /ゼロでもスムーズに動作します。
sudo apt install gnuplot
gnuplot
ファイルを作成するスクリプトの例:
temperature
残業データを保存するスクリプト。
#!/bin/sh
echo $(date +%s ; cat /sys/class/thermal/thermal_zone0/temp) | tee >> temperature.plot
このスクリプトに実行権限を付与します。
chmod +x temperature
次のリブートまで切り離し、1秒ループで実行します。
nohup watch ./temperature &
後で、データをグラフ化します。
gnuplot -e "set terminal dumb $(tput cols) $(tput lines);plot 'temperature.plot' using 0:2 with lines"
これはベアボーンの例で、温度は摂氏* 1000で、開始から数秒で、独自のスクリプトスイートで拡張されます。
watch
ループを終了するには、killall watch
ハッピーハッキング;)
while sleep 1;do tput sc;tput cup 0 $(($(tput cols)-2));cat /sys/class/thermal/thermal_zone0/temp;tput rc;done &
コンソールの右上隅にCPU温度が表示されます。モニタリング用。