You are here

Автоматический включатель компьютеров с возможностью управления через сеть на Ардуино


Автоматический включатель компьютеров с возможностью управления через сеть на Ардуино

У меня стоит 2 домашних сервера, собранных из всякого древнего хлама, но тем не менее довольно важных для меня, и серверы должны быть включены постоянно. Но у меня довольно нестабильное электричество, которое бывает отключают. К серверам подключен бесперебойник, что спасает от кратковременного отключения, но если свет отключают больше чем на 5-10 минут, то бесперебойник разряжается, и выключает компьютеры. После чего несмотря на то, что в BIOS включен параметр, включать компьютер всегда, включаются они далеко не всегда. Функции Wake on Lan в этих компах нет. В общем, задолбался я постоянно бегать включать эти мои недосерверы, стоят они в довольно труднодоступном месте и к кнопкам включения подобраться проблематично, короче вспомнил что у меня уже довольно давно валяется плата ардуино, а значит можно процедуру включения автоматизировать, и кроме того, захотелось чего-то, что бы можно было удаленно включать, выключать и мониторить состояние компьютеров. Сегодня покажу как я собирал устройство для автоматического включения компьютеров, с возможностью удаленного управления через сеть, а также что у меня из этого получилось. Вот уж действительно – лень – двигатель прогресса =)

Вот как я вижу работу будущего устройства:

Подключаем Arduino к компьютерам, за место штатной кнопки включения, собственно, чтобы включать и выключать компьютеры. К MOLEX выходам для того, чтобы понимать включен ли компьютер (если на разъеме есть напряжение – значит компьютер включен, если нет – выключен). У нас должна быть возможность управления компьютерами даже при выключенной или сгоревшей ардуинке, поэтому провода от разъемов включения на материнке вешаем на реле, и параллельно на 2 кнопки, для 1го и второго компьютера соответственно. Третья же кнопка будет управлять автоматическим включением компьютеров. Например, если не нужно будет автоматически включать компьютеры в принципе, или же только один из них, на время обслуживания, то должна быть возможность — это настроить. Красными светодиодами будем показывать состояние компьютеров – горит – включен, нет – выключен. Третьим красным показываем состояние автовключения в целом в система. Синими – для каждого из компьютеров.

При нажатии на третью кнопку будем выключать автовключение для обоих компьютеров. При нажатии на нее более трех секунд – выбираем для какого из компьютеров выключаем или включаем автовключение.

Автоматический включатель компьютеров с возможностью управления через сеть на Ардуино - предварительная схема

Так же у меня рядом с компами висит роутер MikroTik, чем можно воспользоваться для удаленного управления ардуинкой, т.к. он не только может подключаться к Serial Console через USB, но также умеет эту консоль пробрасывать в сеть, что позволяет к консоли подключиться любым Telnet клиентом с любого устройства. У меня, китайская плата Arduino Nano с чипом ATmega168, с ней микротик заработал вообще без каких-либо проблем, про остальные ничего не могу сказать, не проверял. Ну что ж, приступим к реализации задуманного.

Для самоделки понадобятся следующие компоненты:

Arduino, в моём случае Nano.

Модуль реле, на два реле.

5 резисторов на 330 Ом.

3 резистора на 10 кОм.

2 резистора на 100кОм.

3 красных светодиода.

2 синих светодиода.

3 кнопки. Кстати, я нашел кнопки, которые совмещены со светодиодами.

Макетная палата для моделирования (breadboard).

Макетная печатная плата, для сборки девайса.

Коннекторы (MOLEX и не знаю, как называются вторые, в общем для подключения к материнки с двумя отверстиями).

Распределительная коробка для корпуса

Провода, инструменты, припой и прочие подобные прелести.

Автоматический включатель компьютеров с возможностью управления через сеть на Ардуино - компоненты для самоделки

Вот так выглядит схема подключения:

Автоматический включатель компьютеров с возможностью управления через сеть на Ардуино - схема подключения

Как видим, со входов компьютера на 5В я поставил делители напряжения из двух резисторов, они в принципе не обязательные, т.к. ардуино прекрасно работает с напряжением 5В, но для верности – лишними не будут. С таким делителем можно подключать нагрузку в 50 Вольт, но всё же лучше не больше 30 Вольт. Так что, если перепутаете 5 вольт и 12 Вольт на MOLEX разъеме – ни чего страшного не произойдет.

Вот как это выглядит на макетной плате:

Автоматический включатель компьютеров с возможностью управления через сеть на Ардуино - сборка на метке

Скетч ]]>доступен на github]]>.

При работе с терминалом было реализовано простое меню, например при вводе help или ? – выведется справка, при вводе status – текущее состояние системы, off1 – выключить первый компьютер, on1 – включить первый компьютер и так далее.

Проверяем работу – наличие напряжение определяется, реле щелкают, светодиоды горят, режимы выбираются.

Автоматический включатель компьютеров с возможностью управления через сеть на Ардуино - на макетке работает

Через терминал управление так же работает.

Автоматический включатель компьютеров с возможностью управления через сеть на Ардуино - работа через терминал

Можно собирать наш макет. Начнем с того, что прикрепим светодиоды и кнопки к крышке распределительной коробки. Кнопки закручиваются гайкой, светодиоды я залил термоклеем.

Далее собираем всё согласно схеме на макетной печатной плате. Если вы вдруг перепутаете какие-то пины на ардуине – ни чего страшного, их можно будет поменять в скетче. Главное не перепутать digital и analog пины. Если вы обратили внимание, плата у меня на половину загажена/залужена – это связано с тем, что я всё собрал, но у меня ничего не заработало. Точнее определял напряжение только один пин, второй на прочь отказывался работать. Я долго думал на то, где я мог ошибиться, всё выпаивал и впаивал по 10 раз, пока не додумался заменить ардуинку. Да, я совершил ошибку и впаивал не ту плату, на которой тестировал, а другую, предварительно не проверив. Не делайте так =).

Припаиваем провода от крышки к плате.

Автоматический включатель компьютеров с возможностью управления через сеть на Ардуино - собираем

Делаем отверстия в корпусе для ввода проводов. Прилепляем провод, который пойдет к компьютеру, на горячий клей, что бы не болтался. Кстати, я для этих целей использовал обычную витую пару.

Автоматический включатель компьютеров с возможностью управления через сеть на Ардуино - собираем

Припаиваем оставшиеся провода, заливаем дополнительно все места, где провода могут болтаться и оторваться теми же горячими соплями. И прикручиваем крышку.

Автоматический включатель компьютеров с возможностью управления через сеть на Ардуино - собираем

Автоматический включатель компьютеров с возможностью управления через сеть на Ардуино - собираем

Автоматический включатель компьютеров с возможностью управления через сеть на Ардуино - собираем

Осталось только прикрепить разъемы на другом конце витой пары. Позже выковырял лишние штырьки из MOLEX разъемов, чтобы не коротнули об корпус компьютеров.

Автоматический включатель компьютеров с возможностью управления через сеть на Ардуино - делаем разъемы

Вот и всё. Подключаем и проверяем работу.

Автоматический включатель компьютеров с возможностью управления через сеть на Ардуино - всё работает

Автоматический включатель компьютеров с возможностью управления через сеть на Ардуино - всё работает

После подключения столкнулся одной неприятной особенностью – микротик вырубает напряжение на порте, если на нем нет активности, то есть в нашем случае, если не открыта консоль на USB порт. Поразмыслив, создал подключение pppoe через порт usb, который постоянно пытается подключиться тем самым, не давая устройству выключиться. Решение топорное, но тем не менее рабочее. Правда из-за этого, кажется, что терминал тупит, т.к. становится занят командами от микротика. Пользоваться, конечно, не так комфортно, как во время теста, но всё же возможно. Дискомфорт заключается в том, что команды обрабатываются не всегда. Иногда нужно быстро их вводить по несколько раз.  В будущем, если появится желание, сделаю какой-нибудь скрипт, который будет периодически открывать подключение к устройству, без отправки команд, чтобы не занимать терминал. Но пока, лично для меня, и так сойдет.

Автоматический включатель компьютеров с возможностью управления через сеть на Ардуино - настройки в MikroTik

Вот как-то так. Понимаю, что штука у меня получилась довольно специфическая, но тем не менее возможно кого-то эта самоделка натолкнет на какие-то идеи по использованию Arduino. Так же прошу строго не судить, это первое что я сделал на ардуинке, после моргания встроенным светодиодом.

Купить компоненты и инструменты можно по ссылкам (часть показанного покупалось в местных магазинах, на нашел аналоги на AliExpress):

ардуино - ]]>http://bit.ly/2WRaWST]]>
модуль реле - ]]>http://bit.ly/2HpA79H]]>
резисторы - ]]>http://bit.ly/2WRaWST]]>
светодиоды - ]]>http://bit.ly/2VJHWQu]]>
кноки - ]]>http://bit.ly/2EbYcyX]]>
макетная печатная плата - ]]>http://bit.ly/2Q8KTUK]]>
макетная плата - ]]>http://bit.ly/2Hz7gPg]]>
распределительная коробка - ]]>http://bit.ly/2VKgIt6]]>
флюс - ]]>http://bit.ly/2HrQrHg]]>
третья рука - ]]>http://bit.ly/2YxO3V1]]>
припой - ]]>http://bit.ly/2JMAFbn]]>

1 0

Share the article with your friends in social networks, maybe it will be useful to them.


If the article helped you, you can >>thank the author<<