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分おきに定期実行するようにしました。