Автор Тема: Демон контроля температуры и управления FAN  (Прочитано 1472 раз)

Оффлайн StaLeWaR

Добрый день товарищи!  :)

Понадобилось мне установить моего апельсина в корпус. Без принудительного охлаждения температура стала расти. Значитца нужно сделать принудительное охлаждение, звук постоянно гудящего кулера не радовал.
Поэтому был написан демон контроля температуры процессора и управления кулером.
 
Для использования я выбрал 12В FAN с 3PIN. Чтобы безопасно им управлять с нашего Pi PC  необходимо собрать схему на трех транзисторах.
На транзисторе Q3 будет теряться 0.6В т.е. 5% от 12В . Поэтому максимальных паспортных оборотов нам не достичь.
Я получал максимально 2400 оборотов при паспортных максимальных 2500.
Конденсатор С1 подбираем опытным путем, т.к. от него будет зависеть минимальный порог сработки тахометра. В качестве тахометра используют сейчас датчик Хола.
Для себя я поставил 100uF, т.к. при 50uF при скважности менее 50% контроль за оборотами терялся.


Со стороны софта необходимо:
- Ядро с поддержкой GPIO Support(sysfs interface)
- WiringOP от WereCatf https://github.com/WereCatf/WiringOP.git
git clone https://github.com/WereCatf/WiringOP.git -b h3
cd WiringOP
chmod +x ./build
sudo ./build

Установка:
- распаковываем архив
- устанавливаем значение define необходимые вам.
   Пины, минимальная и максимальная температура, количество импульсов датчика Хола на один оборот кулера, время реакции демона, минимальная скважность.
- компилируем
g++ OPi-fan.c  -o OPi-fan  -lpthread -lwiringPi
- копируем из вашей директори в /usr/local/bin
cp ./OPi-fan /usr/local/bin

После этого им можно пользоваться, используя различные ключи запуска.
Демон считывает температуру ЦП и исходя из установленных значений минимальной и максимальной температуры высчитывает скважность PWM.
PWM софтверный.  Так же демон умеет высчитывать RPM кулера. Данные о температуре, скважности и количестве оборотов можно получить из консоли.
Попытался более менее описать во встроенной справке доступной по ключу -h.
 
В архиве есть стартовый скрипт для init.d, соответственно можно сделать запуск и управление демоном как службы.
Для этого нужно:
- скопировать из папки init.d находящийся в архиве файл OPi-fan.init в каталог /etc/init.d  с именем OPi-fan
cp ./init.d/OPi-fan.init /etc/init.d/OPi-fan
- выполнить добавление скрипта в автозагрузку
update-rc.d OPi-fan defaults
Теперь демон будет стартовать и останавливаться автоматически вместе с системой.



Ногами прошу не пинать т.к. программист из меня еще тот  ;D


Оффлайн StaLeWaR

Re: Демон контроля температуры и управления FAN
« Ответ #1 : Март 25, 2016, 12:10:14 pm »
UPD

Немножко дописал конфигу для отображения в RPi-Monitor  состояния куллера.
Инструкция по установке и конфиги для H3  - http://www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=811&fromuid=29411
Мой подправленый  конфиг во вложении.