Домой

Перезагружалка для компьютера

Один из моих компов на Atom D525 не хочет перезагружаться - виснет в процессе /sbin/reboot, а установлен далеко - надо до него ехать. Чтобы обеспечить его бесперебойную работу 24/7, пришлось сделать вот твакой resetter, или, как сказали бы любители пуризма в языке, перезагружалку.

Устройство подключается параллельно кнопке Power компьтера и светодиоду HDD, и берёт питание прямо оттуда. Если светодиод не мигает более 2 минут, устройство замыкает кнопку Power на 6 секунд, вызывая выключение компьютера, затем ждёт 10 секунд и повторно нажимает на кнопку в течение 1 с, включая компьютер.
Чтобы перезагрузка не происходила при нормальной работе, на компьютере (там Linux) в cron записана (crontab -e) задача
* * * * * echo 1 > /home/user/delme && sleep 10 && rm /home/user/delme
Устройство собрано на микроконтроллере ATiny10 (что валялось под рукой дешёвого), потребляет меньше миллиампера, поэтому ему хватает паразитных токов. Электричество для питания накапливается через диоды Шоттки, его хватает для питания в ходе перезагрузки. Светодиод HDD будет слабо светиться, это не страшно.
Программа написана без всяких изысков и запустится практически на любом AVR. Её легко оптимизировать по потреблению питания, загоняя контроллер хотя бы в режим IDLE, или используя таймер и режим SLEEP.

Схема устройства приведена ниже.

Схема перезагружателя зависшего компьютера

А так оно выглядит внутри компа (кликабельно):

Проект для Atmel Studio 7, исходник и HEX-файл для прошивки - здесь.
Диагностический светодиод мигает двойными вспышками первые 2 секунды после обнаруженной активности светодиода HDD, одинарными - каждую секунду, тройными - за 10 и менее секунд до перезапуска. Используйте синий светодиод, его лучше видно - ток там маленький, а вспышки короткие.


Для писем