【仅以私家云为例,其他有风扇的盒子同理,只是GPIO参数不同而已】
【1】建立一个 温控程序,例如 /123/temp_ctrl.sh
以及下面的两个开、关风扇程序 都放在 /123 目录下,
并设置所有sh程序为755权限 chmod 755 *.sh
其中 temp_warn=57 为设定的cpu监控温度,
一般夏天大约在这个上下吧,自己根据实际情况设定。
/etc/update-motd.d/30-armbian-sysinfo 是armbian系统里的一个小程序,
能输出cpu温度,用awk提取出来就可以用了
#!/bin/sh -e
temp_cpu=$(/etc/update-motd.d/30-armbian-sysinfo | grep temp | awk '{print substr($4,1,2)}' )
temp_warn=57
if [ $temp_cpu -lt $temp_warn ]; then
/123/fan_off.sh
else
/123/fan_on.sh
fi
【2】创建两个sh,一个开风扇并设置LED为黄色,另一个关风扇并设置LED为绿色
都放在 /123 目录下,并设置所有sh程序为755权限 chmod 755 *.sh
开风扇程序 fan_on.sh
#!/bin/sh -e
#fan's gpio is 504 in armbian
if [ ! -e /sys/class/gpio/gpio504/direction ]; then
echo 504 > /sys/class/gpio/export
fi
echo high > /sys/class/gpio/gpio504/direction
# setLED G off
if [ ! -e /sys/class/gpio/gpio476/direction ]; then
echo 476 > /sys/class/gpio/export
fi
echo high > /sys/class/gpio/gpio476/direction
# setLED Y on
if [ ! -e /sys/class/gpio/gpio474/direction ]; then
echo 474 > /sys/class/gpio/export
fi
echo low > /sys/class/gpio/gpio474/direction
另一个程序关风扇:fan_off.sh
#!/bin/sh -e
#fan's gpio is 504 in armbian
if [ ! -e /sys/class/gpio/gpio504/direction ]; then
echo 504 > /sys/class/gpio/export
fi
echo low > /sys/class/gpio/gpio504/direction
# setp LED W on
if [ ! -e /sys/class/gpio/gpio477/direction ]; then
echo 477 > /sys/class/gpio/export
fi
echo high > /sys/class/gpio/gpio477/direction
# setLED G on
if [ ! -e /sys/class/gpio/gpio476/direction ]; then
echo 476 > /sys/class/gpio/export
fi
echo low > /sys/class/gpio/gpio476/direction
【3】运行 crontab -e 写入定时,每分钟执行一下温控脚本
* * * * * /123/temp_ctrl.sh
完工,让机器自己去启停风扇吧,你看看面板的LED灯就行了。