Raspi 4 の空冷システム

暑い夏を直前にして・・

異常気象として最近徐々に気温が上がっているように感じる。そんな中、先日VTC に参加中に終了間際で突然回線が切れた。思い当たる原因が無い。もしやと思い、我が家のインターネットの出入り口のルータ(Raspi 4)を確認したら動作不安定に・・・。なんと全身放熱器に付属している二連のFan の障害だった。原因は、ゴミ、老朽化なのか不明だが一つは完全停止、もう片方はチロチロと回っている程度。これでは放熱というよりは動作しようと熱くなっているFan がRspi 4 に火を注いでいるようなもの、皮肉な連鎖になっていた。

全身放熱器で、かつFan も二連なので安心しきっていた。そんな時に災害は降り掛かってくる。

冷却せねば

まずは、Fan を交換すればと思いつつも、とりあえず代替の機器で運用しながら対策する。以前から小型のFan の冷却能力にも疑問を感じていたため、少し大きめのFan を設置することを検討した。Fan から発する騒音も狭隘な我が家では気になることから、省エネも加味して温度に応じて回転数を変更できるようにしてみたいと考えた。

PWM の活用

Fan の回転数を変更させるには、電圧を調整する方法もあるが、今回はRaspi 4 に実装されているPWM(Pulse Width Modulation) を使うことにした。パルスの幅を変えて回転数を変更させるものである。つまり、スイッチのオン・オフの間隔を変更することで回転数を変えるようにするものである。Raspi 4 にはハードウェアが実装されているので、本来の機能にもあまり影響を与えないものだと思う。これを、CPU の温度を測定しつつ、Fan の回転数を上げたり下げたりをすることでRaspi 4 の動作を安定的に運用したいとの方針を固めた。

実装

GPIO(汎用入出力)の利用

ネットにも色々な記事が出ているので、簡単にできると高を括っていたが、いつものように色々とハマりどころ満載だった・・・。これはいつも経験していることなので仕方ない。まずは、Raspi 4 でGPIO を使用する必要があるが、運用しているOS がUbuntu-22.04 なのでGPIO アクセスのために導入するWiring Pi のバージョンが古いために動作しない。そのため、最新版をインストールするためにネットから最新のものを取得してくる。ここまでは、ごく普通の流れだが、CPU のアーキテクチャが違うということでそのままインストールできず、dpkg の外部アーキテクチャを設定、関連のパッケージを入れることで、何とかGPIO にアクセスできるようになった。こんなことなら、Raspi OS を入れておけば良かった。でも、GPIO コマンドが使えるようになると、キーボードから直接PWM を制御することができる。ここで、やる気が復活。

パルスの幅を変更できていることが確認できた。

Fan の改造

一般のFan を秋葉原で安価に購入してきたので、それにPWM で制御できるように簡単な回路を構成してみた。

Fan の最大運用電流は150mAほど、制御用に使用しているトランジスタもコレクタ電流が400mA のスペックなので大丈夫だろう。これが実際に動作するかどうか、とりあえず付けてみた。

動作の確認が出来たので、あとは少し綺麗に配線をする。動くことが分かっていると何だか楽しい時間になる。

CPU の温度監視

いよいよ運用段階。Fan の回転は、高速、中速、低速、OFF の4 段階として、定期的にCPU の温度を策定して、それに応じて切り替えるようにした・・・。というが、すべてが感覚的な内容なので、これでは実装は出来ても運用できない。というわけで、これらを一応見える化して都度パラメタを調整することにした。測定データ → InfluxDB(時系列DB) → Grafana という流れで観測した。

結果に満足?

色々やってみると、40度を超えるとFan の回転数を1段階上げて、37.5度を下回ると1段階下げる、監視は1分毎、そんな値に落ち着いた。多分、本来の機能にもそんなに影響は与えないだろう。下のグラフは、上がCPU 温度、下がFan の回転モードを示している。殆ど低速〜OFF を繰り返している。Fan で放熱器を冷却することの効果があることが分かると思う。

監視が1分毎なので、多少の凸凹はあるが、Fan もそれなりに動作しているのでこのまま酷暑を乗り切ることができるのではないかと思っている。結果には満足といえばそうだが、そもそもここまで温度をシビアに見る必要があるのかということも脳裏をかすめる。まぁ、ここまで何とかたどり着けたということで良しとしましょう(自己評価)。

教訓

  • 異常が発生したら、速やかに対策をとることが肝要。放っておくといずれ必ず重大な事案につながる。
  • 障害の原因は複数ある。今回の原因、実はもう一つ電源スイッチも不安定になっていた。こちらが主たる原因だったかも知れない。なので、復帰後もしばらく監視しておく必要性を痛感した。
  • 我が家ではルータは二重化しているが、この時期にSDカードからSSD に移行する作業で片系を止めて作業していたところだった。障害はこんな時に起きる、、今更ながら痛感した。踏んだり蹴ったり・・・、これは心理的な教訓にもなるが、常に前向きな気持ちを持ち続けることが大事。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です