mirror of
https://github.com/JDM170/orangepi_coolfan
synced 2025-12-10 05:57:21 +07:00
Swap scripts, update manual_clean_bash/README.md, add manual_wiringOP (example-script, README.md)
Signed-off-by: Lev Rusanov <30170278+JDM170@users.noreply.github.com>
This commit is contained in:
@@ -2,7 +2,8 @@
|
||||
|
||||
# Physical | V | Mode | Name | wPi | GPIO
|
||||
# 8 | 0 | OUT | TXD.3 | 3 | 13
|
||||
readonly FAN_PIN=3
|
||||
readonly FAN_PIN=13
|
||||
readonly FAN_PATH=/sys/class/gpio/gpio${FAN_PIN}
|
||||
readonly FAN_START=44000
|
||||
readonly FAN_STOP=35000
|
||||
readonly SLEEP_TIME=10
|
||||
@@ -10,20 +11,21 @@ FAN_STATE=0
|
||||
|
||||
setup()
|
||||
{
|
||||
gpio export $FAN_PIN out
|
||||
gpio write $FAN_PIN 0
|
||||
echo $FAN_PIN > /sys/class/gpio/export
|
||||
echo "out" > $FAN_PATH/direction
|
||||
echo 0 > $FAN_PATH/value
|
||||
}
|
||||
cleanup()
|
||||
{
|
||||
gpio write $FAN_PIN 0
|
||||
gpio unexport $FAN_PIN
|
||||
echo 0 > $FAN_PATH/value
|
||||
echo $FAN_PIN > /sys/class/gpio/unexport
|
||||
rm /var/run/coolfan.pid
|
||||
exit 0
|
||||
}
|
||||
setFanState()
|
||||
{
|
||||
if [ $(gpio read $FAN_PIN) != $1 ] ; then
|
||||
gpio write $FAN_PIN $1
|
||||
if [ $(cat $FAN_PATH/value) != $1 ] ; then
|
||||
echo $1 > $FAN_PATH/value
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -31,7 +33,7 @@ setup
|
||||
trap cleanup 15
|
||||
echo $$ > /var/run/coolfan.pid
|
||||
|
||||
while :; do
|
||||
while : ; do
|
||||
TEMP=$(cat /sys/class/thermal/thermal_zone0/temp)
|
||||
|
||||
if [ "$TEMP" -ge "$FAN_START" ] && [ $FAN_STATE != 1 ] ; then
|
||||
|
||||
@@ -32,6 +32,3 @@ cat /sys/class/gpio/gpio<номер порта>/value
|
||||
echo 0 > /sys/class/gpio/gpio<номер порта>/value
|
||||
echo 1 > /sys/class/gpio/gpio<номер порта>/value
|
||||
```
|
||||
---
|
||||
|
||||
В моем случае, скрипт не активировал GPIO-порт, поэтому была использована wiringOP
|
||||
|
||||
27
manual_wiringOP/README.md
Normal file
27
manual_wiringOP/README.md
Normal file
@@ -0,0 +1,27 @@
|
||||
## Небольшой мануал по командам wiringOP
|
||||
---
|
||||
Включение GPIO-порта:
|
||||
```
|
||||
gpio export <номер порта> <in/out>
|
||||
```
|
||||
---
|
||||
Отключение GPIO-порта:
|
||||
```
|
||||
gpio unexport <номер порта>
|
||||
```
|
||||
---
|
||||
Смена направления GPIO-порта (in - вход, out - выход):
|
||||
```
|
||||
gpio mode <номер порта> <in/out>
|
||||
```
|
||||
---
|
||||
Получение значения GPIO-порта low(0)/high(1):
|
||||
```
|
||||
gpio read <номер порта>
|
||||
```
|
||||
---
|
||||
Смена значений GPIO-порта (low/high):
|
||||
Для смены значения порта нужно поменять его direction на out
|
||||
```
|
||||
gpio write <номер порта> <0/1>
|
||||
```
|
||||
@@ -1,7 +1,8 @@
|
||||
#!/bin/sh
|
||||
|
||||
readonly FAN_PIN=13
|
||||
readonly FAN_PATH=/sys/class/gpio/gpio${FAN_PIN}
|
||||
# Physical | V | Mode | Name | wPi | GPIO
|
||||
# 8 | 0 | OUT | TXD.3 | 3 | 13
|
||||
readonly FAN_PIN=3
|
||||
readonly FAN_START=44000
|
||||
readonly FAN_STOP=35000
|
||||
readonly SLEEP_TIME=10
|
||||
@@ -9,21 +10,20 @@ 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 0 > $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 [ $(cat $FAN_PATH/value) != $1 ] ; then
|
||||
echo $1 > $FAN_PATH/value
|
||||
if [ $(gpio read $FAN_PIN) != $1 ] ; then
|
||||
gpio write $FAN_PIN $1
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ setup
|
||||
trap cleanup 15
|
||||
echo $$ > /var/run/coolfan.pid
|
||||
|
||||
while : ; do
|
||||
while :; do
|
||||
TEMP=$(cat /sys/class/thermal/thermal_zone0/temp)
|
||||
|
||||
if [ "$TEMP" -ge "$FAN_START" ] && [ $FAN_STATE != 1 ] ; then
|
||||
Reference in New Issue
Block a user