Автоматическое включение охлаждения на 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 принтера, Принт-сервер, Своими руками  
Автор: Просмотров: 769   5 комментариев



5 комментариев на «Автоматическое включение охлаждения на 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

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




     
Авторизация
*
*
Регистрация
*
*
*
Перейти на страницу
Яндекс.Метрика