Метки: OctoPrint, OrangePi, принтсервер  
2016-07-19  
  
Раздел: Доработка самодельного 3D принтера, Принт-сервер, Своими руками  
Автор: wolfs_SG Просмотров: 13 147  
28 комментариев
Автоматическое включение охлаждения на OrangePI
Добавлено в закладки: 1
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 пина к которому подключено управление кулером.
28 комментариев на «Автоматическое включение охлаждения на OrangePI»
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.
3D-ручка, нужна ли она печатнику?       Цельнометаллический алхимик (3KU 3D Printer)
Упс… нашел косяк у себя в коде…
данный код действителен для использования именно 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’}`
приветствую. у меня Orange Pi Plus2. запилил ваш скрипт, но не работает – вентиль не останавливается. прошу помощи
Распиновка GPIO моей платы тут: https://goo.gl/wJuHPK
вентиль висит на 4(5v) и 6(земля) пинах. В скрипте поставил PORT=4 (пробовал и 04). Мы же пин напряжения задаем, не землю? Команда temp в консоли работает, выводит текущую температуру, но вентиль на заданной Т. не останавливается. Куда дальше копать, что проверить ?
Может команда MODE=`gpio readall …… требует правок ?
Ответил в ЛС…
добавлено через пару дней
Проблемку DEXMORF победили. Скрипт работает правильно.
Обратите внимание!
1. Дабы это все работало требуется установленный вот этот пакет https://github.com/zhaolei/WiringOP
2. Требуется создать скрипт для проверки пина и перевода его в режим OUT. При загрузке пин находится в другом режиме. Для примера можете подсмотреть код вот тут https://3deshnik.ru/blogs/wolfs_sg/rannee-preduprezhdenie-vozgoraniya
Добрый день. Мне очень понравился Ваш сайт. В частности сборник статей по octoprint. Меня заинтересовала строчка “И + ко всему в дальнейшем хочу вывод температуры сделать в самом ОктоПринте.” Как это можно сделать не подскажете? Очень нужно.
За этот ресурс говорим спасибо Алексею и Юрию… это они поддерживают этот сайт
мне тоже он нравится… нужную мне информацию… в свое время… нашел только тут…
Что касается вывода температуры в октопринте, то этот момент я так и не решил на данный момент… связано это с тем, что продал принтер (обменял) вместе с Orange PI и настроенным октопринтом на ней… а другой принтер пока не собрал и соответсятвенно пока и октопринтом не занимался…
Если кто сделает вывод CPU температуры в октопринт, то прошу выложить эту информацию на данном ресурсе…
Спасибо за отчет.
Реализовал у себя на апельсинке с маленьким 5в вентилятором и ключиком на транзисторе. Работает.
Порог поставил на 45 градусов.
Ну и отлично… уже не напрасно статья выложена
gpio mode $PORT out.
Тут вроде как точка лишняя в конце? С ней ругается “mode: Invalid mode: out.. Should be in/out/pwm/clock/up/down/tri”
Конечно. Ее там быть не должно. Исправил
Спасибо, полезная статья. Хочу сейчас сделать управление освещением, включением принтера и авт автоматическое охлаждение OrangPi. Управлять всем через релюшку ардуиновскую на 4 канала. Ное сли освещение и включение через реле нормально, то как быть с веключением вентилятора? Нагрелся – включил, остыл – выключил. И боюсь такие щелчки будут раз в минуту) К слову питать собираюсь от 8 вольт, что бы не громко визжал кулер, вполне хватает для охлаждения.
И монжо чуть поподробнее про “Или отдельно подвести 12 вольт к кулеру, но тогда массы Б/П и «апельсины» должны быть соеденены.”, вот это не понял
Ну и нормально все… минусы БП которым питать кулер будете и апельсинки соедените и все…
Я релюшку включал бы минимум через транзистор…
Ардуиновкий блок реле, там ведь уже стоят транзисторы. Сделал как в статье, теперь охлаждение включается после того, как апельсинка чуть прогрелась. а выключается после отключения апельсинки. до 35 не охлаждает Но я намеренно подаю 8 вольт на вентилятор, вместо 12, при этом держится температура около 38. Работает почти бесшумно, а на ночь кулер отключается вместе с апельсинкой
Я первый раз вижу ардуиновкий блок реле…
35 градусов – это как пример…
Поставьте 40-45… и при реальной нагрузке… когда проц нагреется – включится охлаждение… а так смысл просто так гонять кулер
Ардуиновское реле удобное очень Подключил сразу на включение\отключение принтера, освещения зоны печати, охлаждение апельсинки. Осталось еще 1 место незадействованое, что нибудь придумаю
Логику охлаждения еще переделаю, не хочу, что бы реле постоянно щелкало, а вентилятор даже при 8 градусов до 38 охлаждает.
Еще бы плагин для Октапринта, что бы температуру Апельсинки выводила. Для Малинки есть, под апельсинку переделать надо бы
У меня камера все время работает, а она грузит 4 ядро на 99%. Если отключать камеру, в программе управления принтером под андроид (printoid) ошибка вываливается. Написал разработчику, как поправит, так буду отключать вебку и пусть Orange в холостую остывает и отключает вентилятор)
Не могли бы вы дать схему подключения 5 вольтового кулера? Далек я от электроники
УПС… раньше не видел… схему чего нужно? как я понял выше писали, что через обычный транзистор подключили кулер… “+” кулера на плюс питания БП апельсины, а минус подключается к коллектору транзистора. транзистор в свою очередь подключен базой к пину на гребенке через резистор пару десятков ом. и эмитером к минусу БП апельсины подключен. Между базой и эмитером транзистора не забудьте резистор пару зесятков кило ом для исключения произвольного открытия транзистора.
може тут подсмотреть https://3deshnik.ru/wp-content/uploads/2016/05/shema.jpg
Спасибо. По этой схеме и подключил.
Попробовал на Orange PC c установленной Openelec
не получается создать файлы (или скопировать) в указанные папки . Хелп
Проблема у Вас видимо в том, что пользователь на Openelec далеко не рутовый. Вот у него и нет доступа к папке /usr/bin на создание файлов. Если Вы знаете пароль от root пользователя, то залогиньтесь под ним. Но это я включил блок телепатии уже… и без скриншотов ошибки и логов ставлю диагноз! И даже без фото…
Принтеры у меня с карточек печатают. Апельсинка для других целей планируется.
Но для самостоятельной реализации “других целей” в частности OpenCV, необходимо понимание простых вещей, таких как :
– как работает система , принцип
– как самому написать программу, скрипт
– как сделать автовыполнение..
Пока простые вещи, но с чего то надо начинать. Потом она будет выдавать в gpio данные, а я уже буду их ловить другим своим устройством, на AMR мк с которыми давно дружу =)
Дык вот, вхожу рутом, других юзеров и не создано. В какие то другие папки пишет, правит. Пока прикручивал пульт ИК к апельсинке, разобрался с SSH. вот в указанные папки по вашей инструкции не получается. Причем куллер повесил, через полевик развязал, через WiringOP включал, выключал.
Какие фотки нужны ? Folder is read only ?
1. Я описывал именно для Armbian’а т.к. у него есть специальный монитор температуры проца. Про Установленный Вами Openelec – я не в курсе! Openelec – не копал.
2. Раз система говорит, что эта папка только для чтения, то наверно так и есть и нужно дальше копать систему на предмет ограничений.
По поводу скрипта. Если в Openelec есть такой же монитор температуры… что вам мешает создать скриптик в какой другой папке для теста?
Если монитор температуры отсутствует, то можно цифровой датчик прикрутить на гребенку апельсины DS18b20… стоит он копейки и где-то в исходниках WiringOP я для для этого датчика выдел готовый код чтения…
На самом деле я и думал поставить платку управления на Attiny с датчиком температуры на NTC резисторе, даже место в корпусе оставил, пока на вашу статью не наткнулся =)
Вариантов много каждый выбирает подходящий для себя
Попробуйте ввести конманду
cat /etc/armbianmonitor/datasources/soctemp
В ответ должны получить температуру. Если будет ошибка или что-то кроме температуры, то для Ваших целей это не подходит
как пример
печаль. нет такого файла и папокю
Нарыл комманду cputemp она работает но пишет температуру замерзания воды – 0С