Raspberry Pi サーバ ファンコントローラを実装

Amazonでの買い物であと数百円で送料無料だったので、
5V駆動のファンを買いました。

早速サーバにつけたのですが、12V駆動のファンに比べ爆音すぎたので、PWM制御でファンコントローラを実装しました。

やったこと
① WiringPi をインストール
② 以下のシェルスクリプトを実装(バグあるかも)

#!/bin/sh

#ファン制御する
#CPU温度を計測し、3段階出力する
#Level3(MAX) 50度以上
#Level2      45度以上
#Level1(MIN) 40度以上(解除35度未満)

gpio -g mode 18 pwm

while :
do
#CPU温度を計測する。
cat /sys/class/thermal/thermal_zone0/temp |awk '{printf("%.3f℃\n", ($1=$1 / 1000))}'
CPUTEMP=`sudo cat /sys/class/thermal/thermal_zone0/temp`

if [ $CPUTEMP -ge 50000 ] ; then
echo "FUN LEVEL3 (MAX)"
 gpio -g pwm 18 1024
elif [ $CPUTEMP -ge 45000 ] ; then
 echo "FUN LEVEL2"
 gpio -g pwm 18 1000
elif [ $CPUTEMP -ge 40000 ] ; then
 echo "FUN LEVEL1"
 gpio -g pwm 18 700
elif [ $CPUTEMP -le 35000 ] ; then
 echo "FUN OFF"
 gpio -g pwm 18 0
else
 echo "FUN LEVEL KEEP"
fi
sleep 300

done

③ ②のスクリプトを起動時に自動実行

一応動いているッぽいので様子見です。

2016/5/29追記
シェルを無限ループにするのはなんか相性が悪いみたいなので(シャットダウンできない等)、
cronで1分おきに定期実行するようにしました。

コメントを残す

メールアドレスが公開されることはありません。