Один из моих компов на 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 и менее секунд до перезапуска.
Используйте синий светодиод, его лучше видно - ток там маленький, а вспышки короткие.