Автоматическое включение охлаждения на OrangePI

1.
Идем в папку /usr/bin
Создаем файл temp
В файл пишем :
#!/bin/sh
cat /etc/armbianmonitor/datasources/soctemp

сохраняем и закрываем.
Делаем его исполняемым chmod +x temp

2.
Идем в папку /usr/bin
Создаем файл temp_cool.sh и пишем в него:
#!/bin/sh
LEVEL=35
PORT=24
MODE=`gpio readall | grep "GPIO.$PORT" | awk -F"|" {'print$5'} | awk {'print$1'}`
TEMP=`/usr/bin/temp`
COOLER=`gpio read $PORT`
if [ $MODE != "OUT" ]; then
gpio mode $PORT out
fi
if [ $TEMP -gt $LEVEL ] && [ $COOLER -eq 0 ]; then
gpio write $PORT 1
fi
if [ $TEMP -lt $LEVEL ] && [ $COOLER -eq 1 ]; then
gpio write $PORT 0
fi

Делаем этот файл исполняемым chmod +x temp_cool.sh

3.
Идем в папку /etc/
Открываем на редактирование файл crontab и дописываем после примера:
* * * * * root /usr/bin/temp_cool.sh
Обратите внимание на пробелы и TAB!!! Эту строчку лучше не копировать, а вписать руками!!!
У меня это выглядит вот так

Перезагружаем OrangePI
Теперь каждую минуту наш скриптик будет проверять текущую температуру процессора и при необходимости включать или выключать кулер охлаждения проца нашей «мандарины»

p.s. Все это делалось от рута
Пунк 1 не обязателен! Можно в пункте 2 вместо TEMP=`/usr/bin/temp`
написать TEMP=` cat /etc/armbianmonitor/datasources/soctemp `
Теоретически должно работать, но я не пробовал… Пунк 1 у меня для того, что бы в любой момент и в любом месте я набрал команду temp и увидел текущую температуру процессора. И + ко всему в дальнейшем хочу вывод температуры сделать в самом ОктоПринте.

Так же для корректной работы у Вас должна быть установлена библиотека для работы в портом ввода/вывода.
Еще Вам нужно учесть вольтаж питания Вашего кулера. С пина GPIO выходит ввсего 3,5 вольта.
Решение может быть таким: Б/П 12v. К которому подключен кулер через транзистор и dc-dc конвертер на 5 вольт для «мандарины» Или отдельно подвести 12 вольт к кулеру, но тогда массы Б/П и «апельсины» должны быть соеденены.

Будет полезно посмотреть эту статью

Описалово:
В файле temp_cool.sh есть 2 переменные.
LEVEL – темература, при которой срабатывает включение и
PORT – номер GPIO пина к которому подключено управление кулером.

Рейтинг: 15

Метки: , ,    2016-07-19      Раздел: Доработка самодельного 3D принтера, Принт-сервер, Своими руками  
Автор: Просмотров: 1 084   14 комментариев



14 комментариев на «Автоматическое включение охлаждения на OrangePI»

  1. Упс… нашел косяк у себя в коде…
    данный код действителен для использования именно GPIO слева. Если Вы решили использовать GPIO находящийся справа, то следует использовать строку MODE=`gpio readall | grep «GPIO.4″ | awk -F»|» {‘print$11’} | awk {‘print$1’}` вместо строки MODE=`gpio readall | grep «GPIO.$PORT» | awk -F»|» {‘print$5’} | awk {‘print$1’}`

    Рейтинг: 0
  2. Добрый день. Мне очень понравился Ваш сайт. В частности сборник статей по octoprint. Меня заинтересовала строчка “И + ко всему в дальнейшем хочу вывод температуры сделать в самом ОктоПринте.” Как это можно сделать не подскажете? Очень нужно.

    Рейтинг: 0
    1. За этот ресурс говорим спасибо Алексею и Юрию… это они поддерживают этот сайт :)
      мне тоже он нравится… нужную мне информацию… в свое время… нашел только тут…
      Что касается вывода температуры в октопринте, то этот момент я так и не решил на данный момент… связано это с тем, что продал принтер (обменял) вместе с Orange PI и настроенным октопринтом на ней… а другой принтер пока не собрал и соответсятвенно пока и октопринтом не занимался…

      Если кто сделает вывод CPU температуры в октопринт, то прошу выложить эту информацию на данном ресурсе…

      Рейтинг: 0
  3. Спасибо за отчет.
    Реализовал у себя на апельсинке с маленьким 5в вентилятором и ключиком на транзисторе. Работает.
    Порог поставил на 45 градусов.

    Рейтинг: 0
  4. Ну и отлично… уже не напрасно статья выложена :)

    Рейтинг: 0
  5. gpio mode $PORT out.
    Тут вроде как точка лишняя в конце? С ней ругается “mode: Invalid mode: out.. Should be in/out/pwm/clock/up/down/tri”

    Рейтинг: 0
  6. Конечно. Ее там быть не должно. Исправил

    Рейтинг: 1
    1. Спасибо, полезная статья. Хочу сейчас сделать управление освещением, включением принтера и авт автоматическое охлаждение OrangPi. Управлять всем через релюшку ардуиновскую на 4 канала. Ное сли освещение и включение через реле нормально, то как быть с веключением вентилятора? Нагрелся – включил, остыл – выключил. И боюсь такие щелчки будут раз в минуту)
      И монжо чуть поподробнее про “Или отдельно подвести 12 вольт к кулеру, но тогда массы Б/П и «апельсины» должны быть соеденены.”, вот это не понял :-[ К слову питать собираюсь от 8 вольт, что бы не громко визжал кулер, вполне хватает для охлаждения.

      Рейтинг: 0
  7. Ну и нормально все… минусы БП которым питать кулер будете и апельсинки соедените и все…

    Рейтинг: 0
  8. Я релюшку включал бы минимум через транзистор…

    Рейтинг: 0
    1. Ардуиновкий блок реле, там ведь уже стоят транзисторы. Сделал как в статье, теперь охлаждение включается после того, как апельсинка чуть прогрелась. а выключается после отключения апельсинки. до 35 не охлаждает :) Но я намеренно подаю 8 вольт на вентилятор, вместо 12, при этом держится температура около 38. Работает почти бесшумно, а на ночь кулер отключается вместе с апельсинкой

      Рейтинг: 0
  9. Я первый раз вижу ардуиновкий блок реле…
    35 градусов – это как пример…
    Поставьте 40-45… и при реальной нагрузке… когда проц нагреется – включится охлаждение… а так смысл просто так гонять кулер

    Рейтинг: 1
    1. Ардуиновское реле удобное очень :) Подключил сразу на включение\отключение принтера, освещения зоны печати, охлаждение апельсинки. Осталось еще 1 место незадействованое, что нибудь придумаю :D
      Логику охлаждения еще переделаю, не хочу, что бы реле постоянно щелкало, а вентилятор даже при 8 градусов до 38 охлаждает.
      Еще бы плагин для Октапринта, что бы температуру Апельсинки выводила. Для Малинки есть, под апельсинку переделать надо бы

      Рейтинг: 0
    2. У меня камера все время работает, а она грузит 4 ядро на 99%. Если отключать камеру, в программе управления принтером под андроид (printoid) ошибка вываливается. Написал разработчику, как поправит, так буду отключать вебку и пусть Orange в холостую остывает и отключает вентилятор)

      Рейтинг: 0

Добавить комментарий




     
Авторизация
*
*
Генерация пароля
Яндекс.Метрика