Автор Тема: Охлождение  (Прочитано 376 раз)

Оффлайн Sampl

Охлождение
« : Июнь 17, 2019, 04:15:44 pm »
Привет всем, ребят дайте провереную инструкцию как сделать охлождение по контролю температуры проца... что то перебоал не одна не падаёт на Жпио 1 ((
Может что то не так делаю, стоит armbian

Оффлайн Serj_58

Re: Охлождение
« Ответ #1 : Сентябрь 05, 2019, 12:41:34 pm »
Автоуправление охлаждением на Orange Pi.
У меня Armbian Bionic
mainline based kernel 4.19.62
Для начала нужно сконфигурировать порты GPIO, делается это следующим образом ( я использую пин номер 27 он же GPIO19):
Подключение порта:
root@orangepipc2:~# echo 19 > /sys/class/gpio/export (отключение порта root@orangepipc2:~# echo 19 > /sys/class/gpio/unexport)
настраиваем порт на выход:
echo out > /sys/class/gpio/gpio19/direction
выставляем нужный уровень для проверки порта :
echo 1 > /sys/class/gpio/gpio19/value      (высокий уровень(echo 0 > низкий))

Делаем скрипт для автозагрузки ( в скрипте все пины, можно оставить только нужный или просто разкомментировать необходимый):
#!/bin/bash

## gpio0 PA0 pin 13
#echo 0 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio0/direction
#echo 1 > /sys/class/gpio/gpio0/value

## gpio1 PA1 pin11
#echo 1 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio1/direction
#echo 1 > /sys/class/gpio/gpio1/value

## gpio2 PA2 pin22
#echo 2 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio2/direction
#echo 1 > /sys/class/gpio/gpio2/value

## gpio3 PA3 pin15
#echo 3 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio3/direction
#echo 1 > /sys/class/gpio/gpio3/value

## gpio6 PA6 pin7
#echo 6 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio6/direction
#echo 1 > /sys/class/gpio/gpio6/value

## gpio7 PA7 pin29
#echo 7 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio7/direction
#echo 1 > /sys/class/gpio/gpio7/value

## gpio8 PA8 pin31
#echo 8 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio8/direction
#echo 1 > /sys/class/gpio/gpio8/value

## gpio9 PA9 pin33
#echo 9 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio9/direction
#echo 1 > /sys/class/gpio/gpio9/value

## gpio10 PA10 pin35
#echo 10 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio10/direction
#echo 1 > /sys/class/gpio/gpio10/value

## gpio11 PA11 pin5
#echo 11 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio11/direction
#echo 1 > /sys/class/gpio/gpio11/value

## gpio12 PA12 pin3
#echo 12 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio12/direction
#echo 1 > /sys/class/gpio/gpio12/value

## gpio13 PA13 pin24
#echo 13 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio13/direction
#echo 1 > /sys/class/gpio/gpio13/value

## gpio14 PA14 pin23
#echo 14 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio14/direction
#echo 1 > /sys/class/gpio/gpio14/value

## gpio15 PA15 pin19
#echo 15 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio15/direction
#echo 1 > /sys/class/gpio/gpio15/value

## gpio16 PA16 pin21
#echo 16 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio16/direction
#echo 1 > /sys/class/gpio/gpio16/value

## gpio18 PA18 pin28
#echo 18 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio18/direction
#echo 1 > /sys/class/gpio/gpio18/value

## gpio19 PA19 pin27
#echo 19 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio19/direction
#echo 1 > /sys/class/gpio/gpio19/value

## gpio21 PA21 pin26
#echo 21 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio21/direction
#echo 1 > /sys/class/gpio/gpio21/value

## gpio68 PC4 pin16
#echo 68 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio68/direction
#echo 1 > /sys/class/gpio/gpio68/value

## gpio69 PC5 pin8
#echo 69 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio69/direction
#echo 1 > /sys/class/gpio/gpio69/value

## gpio70 PC6 pin10
#echo 70 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio70/direction
#echo 1 > /sys/class/gpio/gpio70/value

## gpio71 PC7 pin18
#echo 71 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio71/direction
#echo 1 > /sys/class/gpio/gpio71/value

## gpio107 PD11 pin37
#echo 107 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio107/direction
#echo 1 > /sys/class/gpio/gpio107/value

## gpio110 PD14 pin12
#echo 110 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio110/direction
#echo 1 > /sys/class/gpio/gpio110/value

## gpio198 PG6 pin38
#echo 198 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio198/direction
#echo 1 > /sys/class/gpio/gpio198/value

## gpio199 PG7 pin40
#echo 199 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio199/direction
#echo 1 > /sys/class/gpio/gpio199/value

## gpio200 PG8 pin32
#echo 200 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio200/direction
#echo 1 > /sys/class/gpio/gpio200/value

## gpio201 PG9 pin36
#echo 201 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio201/direction
#echo 1 > /sys/class/gpio/gpio201/value
Сохраним его под оригинальным названием (чтоб не совпадал с уже существующими) в каталоге /usr/sbin/

Чтобы скрипт запускался при загрузке, необходимо прописать его в файле /etc/rc.local до строчки exit 0. Если у вас не существует данного файла, создайте его и вставьте в него следующее содержимое:
#!/bin/sh -e
#Здесь вставляем строку с указанием вашего скрипта.
/usr/sbin/mescripts
exit 0

 Сам скрипт управления (настроен на температуру срабатывания 45 градусов, скрит положить в usr/bin) :
#!/bin/bash
 temp=`cat /etc/armbianmonitor/datasources/soctemp`
if [[ $temp -gt 45000 ]]
    then
      echo 1 > /sys/class/gpio/gpio19/value
    else
      echo 0 > /sys/class/gpio/gpio19/value
  fi

Делаем скрипт исполняемым:
chmod +x temp_c.sh
Создаем задачу в планировщике на запуск скрипта один раз в минуту:
crontab -e
-*/1 * * * * /usr/bin/temp_c.sh
(эту строчку лучше вводить руками)
Схема подключения:

В схеме можно использовать любой N-канальный MOSFET рассчитанный на управление от логических уровней, таких полно на материнских платах, я использую 13N03L.