mirror of
https://github.com/JDM170/orangepi_coolfan
synced 2025-12-10 05:57:21 +07:00
Fully reworked scripts
Signed-off-by: Lev Rusanov <30170278+JDM170@users.noreply.github.com>
This commit is contained in:
@@ -1,43 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Physical | V | Mode | Name | wPi | GPIO
|
||||
# 8 | 0 | OUT | TXD.3 | 3 | 13
|
||||
readonly FAN_PIN="13"
|
||||
readonly FAN_PATH=/sys/class/gpio/gpio${FAN_PIN}
|
||||
|
||||
readonly MSG_ON="Fan ON!"
|
||||
readonly MSG_OFF="Fan OFF!"
|
||||
old_state=$(cat $FAN_PATH/value)
|
||||
|
||||
setup()
|
||||
{
|
||||
echo $FAN_PIN > /sys/class/gpio/export
|
||||
echo "out" > $FAN_PATH/direction
|
||||
echo 0 > $FAN_PATH/value
|
||||
}
|
||||
cleanup()
|
||||
{
|
||||
echo 0 > $FAN_PATH/value
|
||||
echo $FAN_PIN > /sys/class/gpio/unexport
|
||||
}
|
||||
|
||||
on()
|
||||
{
|
||||
echo 1 > $FAN_PATH/value
|
||||
}
|
||||
off()
|
||||
{
|
||||
echo 0 > $FAN_PATH/value
|
||||
}
|
||||
case $1 in
|
||||
on|off ) "$1";;
|
||||
esac
|
||||
|
||||
cur_state=$(cat $FAN_PATH/value)
|
||||
if [ "$old_state" != "$cur_state" ] && [ -z "$2" ]; then
|
||||
if [ "$cur_state" = 0 ]; then
|
||||
echo $MSG_OFF
|
||||
else
|
||||
echo $MSG_ON
|
||||
fi
|
||||
fi
|
||||
60
coolfan-control
Normal file
60
coolfan-control
Normal file
@@ -0,0 +1,60 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Physical | V | Mode | Name | wPi | GPIO
|
||||
# 8 | 0 | OUT | TXD.3 | 3 | 13
|
||||
# readonly FAN_PIN=13
|
||||
readonly FAN_PIN=3
|
||||
readonly FAN_START=44000
|
||||
readonly FAN_STOP=35000
|
||||
readonly SLEEP_TIME=10
|
||||
FAN_STATE=0
|
||||
|
||||
setup()
|
||||
{
|
||||
# echo $FAN_PIN > /sys/class/gpio/export
|
||||
# echo "out" > $FAN_PATH/direction
|
||||
# echo 0 > $FAN_PATH/value
|
||||
gpio export $FAN_PIN out
|
||||
gpio write $FAN_PIN 0
|
||||
}
|
||||
cleanup()
|
||||
{
|
||||
# echo $FAN_STATE > $FAN_PATH/value
|
||||
# echo $FAN_PIN > /sys/class/gpio/unexport
|
||||
gpio write $FAN_PIN 0
|
||||
gpio unexport $FAN_PIN
|
||||
rm /var/run/coolfan.pid
|
||||
exit 0
|
||||
}
|
||||
setFanState()
|
||||
{
|
||||
if [ $(gpio read $FAN_PIN) != $1 ]; then
|
||||
# echo $1 > $FAN_PATH/value
|
||||
gpio write $FAN_PIN $1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
setup
|
||||
trap cleanup 15
|
||||
echo $$ > /var/run/coolfan.pid
|
||||
|
||||
while :; do
|
||||
#echo $$ > /var/run/coolfan.pid
|
||||
|
||||
TEMP=$(cat /sys/class/thermal/thermal_zone0/temp)
|
||||
|
||||
if [ "$TEMP" -ge "$FAN_START" ] && [ $FAN_STATE != 1 ] ; then
|
||||
FAN_STATE=1
|
||||
setFanState $FAN_STATE
|
||||
echo "FAN ON; TEMP: $TEMP"
|
||||
else
|
||||
if [ "$TEMP" -le "$FAN_STOP" ] && [ $FAN_STATE != 0 ] ; then
|
||||
FAN_STATE=0
|
||||
setFanState $FAN_STATE
|
||||
echo "FAN OFF; TEMP: $TEMP"
|
||||
fi
|
||||
fi
|
||||
|
||||
sleep $SLEEP_TIME
|
||||
done
|
||||
@@ -1,30 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
FAN_START=45000
|
||||
FAN_STOP=36000
|
||||
|
||||
cleanup()
|
||||
{
|
||||
/usr/bin/coolfan-control cleanup
|
||||
rm /var/run/coolfan.pid
|
||||
exit 0
|
||||
}
|
||||
|
||||
trap cleanup 15
|
||||
|
||||
/usr/bin/coolfan-control setup
|
||||
|
||||
while :; do
|
||||
echo $$ > /var/run/coolfan.pid
|
||||
|
||||
TEMP=$(cat /sys/class/thermal/thermal_zone0/temp)
|
||||
|
||||
if [ "$TEMP" -ge "$FAN_START" ]; then
|
||||
/usr/bin/coolfan-control on
|
||||
else
|
||||
if [ "$TEMP" -le "$FAN_STOP" ]; then
|
||||
/usr/bin/coolfan-control off
|
||||
fi
|
||||
fi
|
||||
sleep 10
|
||||
done
|
||||
@@ -3,7 +3,7 @@ Description=Controls cooling fan on GPIO
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/coolfan-start
|
||||
ExecStart=/usr/bin/coolfan-control
|
||||
ExecStop=/usr/bin/coolfan-stop
|
||||
Restart=always
|
||||
PIDFile=/var/run/coolfan.pid
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Physical | V | Mode | Name | wPi | GPIO
|
||||
# 8 | 0 | OUT | TXD.3 | 3 | 13
|
||||
readonly FAN_PIN="3"
|
||||
|
||||
readonly MSG_ON="Fan ON!"
|
||||
readonly MSG_OFF="Fan OFF!"
|
||||
|
||||
setup()
|
||||
{
|
||||
gpio export $FAN_PIN out
|
||||
gpio write $FAN_PIN 0
|
||||
old_state=$(gpio read $FAN_PIN)
|
||||
}
|
||||
cleanup()
|
||||
{
|
||||
gpio write $FAN_PIN 0
|
||||
gpio unexport $FAN_PIN
|
||||
}
|
||||
|
||||
on()
|
||||
{
|
||||
gpio write $FAN_PIN 1
|
||||
}
|
||||
off()
|
||||
{
|
||||
gpio write $FAN_PIN 0
|
||||
}
|
||||
case $1 in
|
||||
on|off ) "$1";;
|
||||
esac
|
||||
|
||||
cur_state=$(gpio read $FAN_PIN)
|
||||
if [ "$old_state" != "$cur_state" ] && [ -z "$2" ]; then
|
||||
if [ "$cur_state" = 0 ]; then
|
||||
echo $MSG_OFF
|
||||
else
|
||||
echo $MSG_ON
|
||||
fi
|
||||
fi
|
||||
Reference in New Issue
Block a user