【仅以私家云为例,其他有风扇的盒子同理,只是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灯就行了。
昨天又仔细看了看前面板几个GPIO接口的连接, 发现稍有错漏,实在抱歉,特订正如下图: 请各位自己按表里的情况, 自己选择平时,以及过热风扇开启时候的不同颜色。 |
私家云前面板LED颜色表.jpg (22.97 KB, 下载次数: 3)
前面板LED颜色表
把fan_on 和 fan_off 程序稍微修改如下,
三个灯的组合放在了一起,这样看得更为清楚一些:
程序 :fan_on.sh
面板灯粉色
#!/bin/sh -e
###-------fan's gpio is 504 ------###
if [ ! -e /sys/class/gpio/gpio504/direction ]; then
echo 504 > /sys/class/gpio/export
fi
echo high > /sys/class/gpio/gpio504/direction
###--------font-LED-------###
# open474-BLUE
if [ ! -e /sys/class/gpio/gpio474/direction ]; then
echo 474 > /sys/class/gpio/export
fi
# open476-RED
if [ ! -e /sys/class/gpio/gpio476/direction ]; then
echo 476 > /sys/class/gpio/export
fi
# open477-GREEN
if [ ! -e /sys/class/gpio/gpio477/direction ]; then
echo 477 > /sys/class/gpio/export
fi
echo high > /sys/class/gpio/gpio474/direction
echo high > /sys/class/gpio/gpio476/direction
echo low > /sys/class/gpio/gpio477/direction
====================
程序:fan_off.sh
面板灯绿色
#!/bin/sh -e
###-------fan's gpio is 504 ------###
if [ ! -e /sys/class/gpio/gpio504/direction ]; then
echo 504 > /sys/class/gpio/export
fi
echo low > /sys/class/gpio/gpio504/direction
###--------font-LED-------###
# open474-BLUE
if [ ! -e /sys/class/gpio/gpio474/direction ]; then
echo 474 > /sys/class/gpio/export
fi
# open476-RED
if [ ! -e /sys/class/gpio/gpio476/direction ]; then
echo 476 > /sys/class/gpio/export
fi
# open477-GREEN
if [ ! -e /sys/class/gpio/gpio477/direction ]; then
echo 477 > /sys/class/gpio/export
fi
echo low > /sys/class/gpio/gpio474/direction
echo low > /sys/class/gpio/gpio476/direction
echo high > /sys/class/gpio/gpio477/direction