ラズベリーパイのヒートシンクの効果は?ファンまで必要かを検証!

ラズベリーパイ(raspberry pi)

発熱が不安なラズパイ4のCPU温度を測定して「ヒートシンクの効果」「ファンまで必要なのか」を検証してみました。

これからラズパイを購入する方のために何処までCPUの発熱対策のパーツを購入するべきなのかを紹介します。

 

スポンサーリンク

ラズベリーパイのヒートシンクの効果は?ファンまで必要かを検証!

技適対応したRaspberry Pi 4 model Bラズベリーパイ4用ケースを購入しました!

 

今回のラズパイ4のケースにはヒートシンクとファンまでついてきました。ファンまで購入したのは初めてです。

ラズパイにヒートシンクは必要

筆者は「ラズベリーパイ1B+」の頃からラズパイを使っていますが、ヒートシンクは必須と考えています。

ヒートシンク無しだと普通に運用しているだけで発熱で強制シャットダウンが頻発しました

 

ラズパイを安定運用するためにもヒートシンクは必要です。下記の小さいヒートシンクでもCPU上に載せるだけで大分違います。

 

結局はラズベリーパイ1B+にも別売りのヒートシンク購入しました。

 

それ以降の3B+まで全てヒートシンクを付けて筆者は運用しています。

 

ラズパイ4のCPU発熱対策にファンまで必要なのか

もともとCPUの発熱が大きいといわれていたラズパイ4です。

 

確かにヒートシンクは必要だと思いますが、本当にラズパイ4の発熱対策の部品がファンまで必要なのか確認していきます。

 

ラズパイのケースにファンが付いていることが多い

Amazonのラズパイのケースを見ても最近は大半がヒートシンクだけでなくファンも付いています。

もしくは下記のようにファンがなくとも非常に大きなヒートシンクになっているケースも多いです

 

数年前からもラズパイのファン自体はあったが、こんなに標準的には付いていなかった記憶…。

何にせよ最新のラズパイ4の電源はTypeCで3Aまで流せる以上、発熱も大きくなっているのは自明のようです。

 

またラズパイのケースについて紹介した記事は下記になります。よろしければご覧ください。

Raspberry Pi 4のケースのおすすめは?3B+と互換性を調査!
Raspberry Pi 4は従来の3B+からコネクタ種類・位置が変更されていますのでのケースをそのまま流用できません。 ラズベリーパイ4のケースを購入する人のために、4B,3B+のサイズ・寸法の違いを徹底調査してみました。 ...

 

ラズパイ4をファンレスとファンの向きを変えてCPU温度を比較

PythonでプログラムしてCPUの温度比較したのですが、プログラム内容は後に回して結果を先に記述します。

 

今回は「ファンレス(ヒートシンクのみ)」「ファン有(正常向き_風がCPU向き)」「ファン有(異常向き_風が外気向き)」の3パターンで比較します。

 

試験条件

テストは下記条件で実施しました。

 

温度:室温17℃。

CPU負荷:大体90%~100%(topコマンドでの数字)

OS:Raspbian Buster with desktop and recommended software(September 2019)

試験プログラム:後述に記載

接続デバイス:特になし(電源だけ入れてリモートデスクトップ接続)

 

テストプログラム

当初は発熱を見るため負荷の高いベンチマークプログラム(UnixBench等)でも走らせようかと考えていました。

 

しかし今回使ったPythonのCPU温度表示プログラムが10ms(0.01秒)周期で速い周期で更新して、それだけで「top」コマンドでのCPU使用率が90%~100%になっていました。

そのため後述するプログラム以外は走らせていない環境でテストしました。

 

※今回はCPUには多少負荷は掛かっていますが、GPU・各IFには全く負荷が掛かっていません。

そのため運用次第ではさらに高温になると思われますのでご注意ください。

 

テストプログラムで温度がサチる(最高温度になる)まで回し続けています。

 

ラズパイ4の冷却ファンの効果を確認した結果

まずは「ファンレス(ヒートシンクのみ)」「ファン有(正常向き_風がCPU向き)」の2パターンで冷却ファンの効果を確認しました。

結果は「ファンレス(ヒートシンクのみ)」がMAX_62℃(外気温+45℃)となり、「ファン有(正常向き_風がCPU向き)」はMAX_37℃(外気温+20℃)となりました。

 

冷却ファン有無でやはり大きく結果が変わりました。(差分で25℃もある)

冷却ファンがあれば外気温+20℃で抑えれているので、例えば「夏場」「密閉環境」で周囲温度が60℃になっても何とか動いてくれそうです。(あくまで単純換算ですが…)

 

ラズパイ4ではCPU上の小さなヒートシンクだけでは放熱が厳しそう

ラズベリーパイ財団の公式HPにも記載されていますが、ラズパイ4もCPU温度が85℃近くになるとCPUパフォーマンスを落とします。

(Overclocking・Overvoltageがdisabledにされるそうです。リンク先はこちらから)

 

軽い負荷の運用ならば大丈夫かもしれないですが、何にせよ小さなヒートシンクだけでは放熱が厳しそうです。

 

ラズパイのファン取り付けの向きを間違えた場合の結果

「ファン有(正常向き_風がCPU向き)」「ファン有(異常向き_風が外気向き)」の2パターンでファンの取り付け向きを間違えた場合を確認しました。

(かなり余談になりますが…)

 

結果は「ファン有(正常向き_風がCPU向き)」はMAX_37℃(外気温+20℃)となり、「ファン有(異常向き_風が外気向き)」がMAX_42℃(外気温+25℃)ました。

 

やはりCPUに向かって風を当てるのが良い結果になりました。(差分で5℃も違います)

説明書でファンの取り付け箇所を見ても風がCPUに向く形(シール有る方が下側)で記載されています。

 

ラズパイのファンを付けるときは説明書を見て取り付けましょう。

 

ラズパイ4のCPU温度上昇をまとめたテスト動画

テストの内容をYoutubeにもアップしました。よろしければご覧ください。

(今回は動画内にも説明を残しています)

ラズベリーパイ4で冷却ファンの必要性をCPU温度から確認してみた

 

Raspberry piのCPU温度のグラフをPythonで描いてみた

今回はPythonでプログラミングしてCPU温度のリアルタイムのグラフを描きました。

理由はLXTerminal (ターミナル)でコマンド打ってラズパイのCPU温度を測定するだけでは単純で(筆者が)面白くなかっただけです。

 

ラズパイのCPU温度をPythonで取得する

ターミナルならば下記「vcgencmd」のコマンドで簡単に温度・クロックなど各情報が取得できます。

vcgencmd measure_temp

温度に関しては上記のように「measure_temp」と打てば「temp=38.0'C」のように反ってきます

 

Pythonでも「subprocess」を使えばターミナルで使っていたコマンドをプログラム上で使えます。

 

あと上記コマンドでは「文字列」として温度が出るので、「split」など使って数字の部分だけ使いました。

 

PythonでリアルタイムのCPU温度グラフをプロットする

単にデータ取得してグラフを描くのでなく、リアルタイムで温度のグラフをプロットしました

 

今回は下記の記事を大いに参考にさせてもらいました。Pythonで動的にグラフを生成するパターンが複数記載されており、非常に参考になりました。

「もみじあめ」様にはこの場を借りてこの場を借りてお礼申し上げます。

Python: matplotlib で動的にグラフを生成する

 

ラズパイのCPU温度上限の85℃に補助線を引く

ラズパイのCPU温度に関してはラズベリーパイ財団から「85℃」が上限にされていることが記載されています。(リンク先はこちらから)

 

そのためPythonのプログラムで描くグラフには一つの指標として85℃箇所に補助線を引きます。

 

上記内容で赤点線の補助線がグラフに表示されます

 

Pythonのプログラム

先駆者のコードに筆者で拙いプログラミングで追記した形になりますが残しておきます。

50行目の「更新間隔」が10m秒(0.01秒)と速くなっていますので、ラズパイだと結構CPU負荷が掛かります。(90%~100%ぐらい)

 

まとめ

「密閉された空間」「夏場」などを考慮するとラズパイ4にファンは(もしくは大きいヒートシンクを)付けておいた方が無難そうです。

最近はキット・ケースに大抵付いてきます。それを装着しておけば、よほどの負荷を掛けない限り問題ないと思います。

コメント

  1. […] […]

  2. […] エンジニアり電気屋さん […]