From c2a65be9565c3334891c0ad8c4ecec42405a74ee Mon Sep 17 00:00:00 2001 From: Lev Rusanov <30170278+JDM170@users.noreply.github.com> Date: Sat, 10 Sep 2022 15:08:24 +0700 Subject: [PATCH] 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> --- coolfan-control | 18 +++++++------ manual_clean_bash/README.md | 3 --- manual_wiringOP/README.md | 27 +++++++++++++++++++ .../example-script | 20 +++++++------- 4 files changed, 47 insertions(+), 21 deletions(-) create mode 100644 manual_wiringOP/README.md rename manual_clean_bash/exapmle-script => manual_wiringOP/example-script (65%) diff --git a/coolfan-control b/coolfan-control index 48ef1b8..db61be2 100644 --- a/coolfan-control +++ b/coolfan-control @@ -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 diff --git a/manual_clean_bash/README.md b/manual_clean_bash/README.md index 2cff78c..1d4824b 100644 --- a/manual_clean_bash/README.md +++ b/manual_clean_bash/README.md @@ -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 diff --git a/manual_wiringOP/README.md b/manual_wiringOP/README.md new file mode 100644 index 0000000..5c0d1b6 --- /dev/null +++ b/manual_wiringOP/README.md @@ -0,0 +1,27 @@ +## Небольшой мануал по командам wiringOP +--- +Включение GPIO-порта: +``` +gpio export <номер порта> +``` +--- +Отключение GPIO-порта: +``` +gpio unexport <номер порта> +``` +--- +Смена направления GPIO-порта (in - вход, out - выход): +``` +gpio mode <номер порта> +``` +--- +Получение значения GPIO-порта low(0)/high(1): +``` +gpio read <номер порта> +``` +--- +Смена значений GPIO-порта (low/high): +Для смены значения порта нужно поменять его direction на out +``` +gpio write <номер порта> <0/1> +``` diff --git a/manual_clean_bash/exapmle-script b/manual_wiringOP/example-script similarity index 65% rename from manual_clean_bash/exapmle-script rename to manual_wiringOP/example-script index b61a90b..48ef1b8 100644 --- a/manual_clean_bash/exapmle-script +++ b/manual_wiringOP/example-script @@ -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