Удаленное включение компьютера ардуино
У меня стоит 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 разъеме – ни чего страшного не произойдет.
Вот как это выглядит на макетной плате:
При работе с терминалом было реализовано простое меню, например при вводе help или ? – выведется справка, при вводе status – текущее состояние системы, off1 – выключить первый компьютер, on1 – включить первый компьютер и так далее.
Проверяем работу – наличие напряжение определяется, реле щелкают, светодиоды горят, режимы выбираются.
Через терминал управление так же работает.
Можно собирать наш макет. Начнем с того, что прикрепим светодиоды и кнопки к крышке распределительной коробки. Кнопки закручиваются гайкой, светодиоды я залил термоклеем.
Далее собираем всё согласно схеме на макетной печатной плате. Если вы вдруг перепутаете какие-то пины на ардуине – ни чего страшного, их можно будет поменять в скетче. Главное не перепутать digital и analog пины. Если вы обратили внимание, плата у меня на половину загажена/залужена – это связано с тем, что я всё собрал, но у меня ничего не заработало. Точнее определял напряжение только один пин, второй на прочь отказывался работать. Я долго думал на то, где я мог ошибиться, всё выпаивал и впаивал по 10 раз, пока не додумался заменить ардуинку. Да, я совершил ошибку и впаивал не ту плату, на которой тестировал, а другую, предварительно не проверив. Не делайте так =).
Припаиваем провода от крышки к плате.
Делаем отверстия в корпусе для ввода проводов. Прилепляем провод, который пойдет к компьютеру, на горячий клей, что бы не болтался. Кстати, я для этих целей использовал обычную витую пару.
Припаиваем оставшиеся провода, заливаем дополнительно все места, где провода могут болтаться и оторваться теми же горячими соплями. И прикручиваем крышку.
Осталось только прикрепить разъемы на другом конце витой пары. Позже выковырял лишние штырьки из MOLEX разъемов, чтобы не коротнули об корпус компьютеров.
Вот и всё. Подключаем и проверяем работу.
После подключения столкнулся одной неприятной особенностью – микротик вырубает напряжение на порте, если на нем нет активности, то есть в нашем случае, если не открыта консоль на USB порт. Поразмыслив, создал подключение pppoe через порт usb, который постоянно пытается подключиться тем самым, не давая устройству выключиться. Решение топорное, но тем не менее рабочее. Правда из-за этого, кажется, что терминал тупит, т.к. становится занят командами от микротика. Пользоваться, конечно, не так комфортно, как во время теста, но всё же возможно. Дискомфорт заключается в том, что команды обрабатываются не всегда. Иногда нужно быстро их вводить по несколько раз. В будущем, если появится желание, сделаю какой-нибудь скрипт, который будет периодически открывать подключение к устройству, без отправки команд, чтобы не занимать терминал. Но пока, лично для меня, и так сойдет.
Вот как-то так. Понимаю, что штука у меня получилась довольно специфическая, но тем не менее возможно кого-то эта самоделка натолкнет на какие-то идеи по использованию Arduino. Так же прошу строго не судить, это первое что я сделал на ардуинке, после моргания встроенным светодиодом.
Купить компоненты и инструменты можно по ссылкам (часть показанного покупалось в местных магазинах, на нашел аналоги на AliExpress):
Задача: дистанционно включить домашний компьютер. Предполагаю использовать некую ардуино-подобную плату esp8266 с одним аналоговым входом и несколькими логическими входами/выходами 5 v. Как подружить с интернетом esp8266 - этот вопрос решен. То есть могу управлять 0/1 на пине, а вот что потом - непонятно. ПК - обычный ATX, intel 945.
Member
Юрий Ботов
Moderator
А потом реле замыкающее контакты кнопки включения компьютера.
view24
Member
До LAN не смогу добраться, ибо нет белого IP, а ПК подключен через роутер.
view24
Member
А потом реле замыкающее контакты кнопки включения компьютера.
rkravt
Member
Могу ошибаться, но у ATX, нажатие кнопки формирует сигнал PS_On.
Для включения источника питания, PS_On должен иметь лог. ноль, при выключении - лог единицу.
Сергей_Ф
Moderator
До LAN не смогу добраться, ибо нет белого IP, а ПК подключен через роутер.
а как до esp добираться будете?
Пусть esp шлет пакет Wake-on-LAN и всё.
Активный участник сообщества
Ранее, в том веке, включали принтером, кареткой по кнопке
В БИОС-е компов обычно есть опция - что делать после пропажи питания. Ставите SonOff и становитесь счастливым обладателем удаленного включения/выключения компа + по погоде (глюкам ESP).
Все компы понимают подключение по COM порту UPS.
tretyakov_sa
Moderator
а как до esp добираться будете?
Пусть esp шлет пакет Wake-on-LAN и всё.
Это будет работать только с соединением компьютера проводом к роутеру? Если компьютер подключается к роутеру через WIFI, что делать? Я так понимаю обсуждается именно этот случай.
view24
Member
а как до esp добираться будете?
Пусть esp шлет пакет Wake-on-LAN и всё.
Для этого нужен шилд esp - ethernet. Такого оборудования не имею.
view24
Member
Это будет работать только с соединением компьютера проводом к роутеру? Если компьютер подключается к роутеру через WIFI, что делать? Я так понимаю обсуждается именно этот случай.
view24
Member
Могу ошибаться, но у ATX, нажатие кнопки формирует сигнал PS_On.
Для включения источника питания, PS_On должен иметь лог. ноль, при выключении - лог единицу.
Сергей_Ф
Moderator
tretyakov_sa
Moderator
Для этого нужен шилд esp - ethernet. Такого оборудования не имею.
Шилд не нужен. Нужно только комп проводом к роутеру подключить.
Member
Могу ошибаться, но у ATX, нажатие кнопки формирует сигнал PS_On. Для включения источника питания, PS_On должен иметь лог. ноль, при выключении - лог единицу.
Более элегантный способ, без доп. проводов и влезания внутрь компа и с любым подключением компа к сети (хоть по WiFi):
У ESP8266 ведь вроде есть USB? Тогда реализуете на нём HID-устройство (клавиатуру) и в этом устройстве реализуете нажатие кнопки Power On. Остаётся только воткнуть полученный девайс в USB компа и в его БИОСе разрешить включение от клавы (т.е. - разрешить питание USB-портов в выкл. состоянии). И никаких дополнительных проводов!
CodeNameHawk
Moderator
sboganov
New member
view24
Member
Более элегантный способ, без доп. проводов и влезания внутрь компа и с любым подключением компа к сети (хоть по WiFi):
У ESP8266 ведь вроде есть USB? Тогда реализуете на нём HID-устройство (клавиатуру) и в этом устройстве реализуете нажатие кнопки Power On. Остаётся только воткнуть полученный девайс в USB компа и в его БИОСе разрешить включение от клавы (т.е. - разрешить питание USB-портов в выкл. состоянии). И никаких дополнительных проводов!
Подавляющее большинство современных сетевых плат имеют функцию Wake On Lan, которая позволяет реализовать пробуждение персонального компьютера через сеть.
Технические требования:
Если используется сетевая плата не встроенная в материнку, то необходимо будет подключить ее через специальный разъем WOL, к материнской плате.
Функция WOL включается в BOIS'е компьютера:
Небольшой проблемой может стать то, что на некоторых компьютерах при потери питания, WOL отключается. Однако на современных материнских платах, данная проблема может быть решена установкой параметра "пробуждаться после пропадания питания" в значение On в BOIS'е:.
Магический Пакет (Magic Packet)
Для того, чтобы пробудить компьютер через LAN, необходимо по сети послать определенную последовательность байтов, т.н. Magic packet. Пакет представляет собой 6 байт со значением FF: (FF:FF:FF:FF:FF:FF), а затем идет MAC-адрес сетевой карты ПК, повторяющийся 16 раз подряд.
Обратите внимание, что если используется маршрутизатор, то на нем необходимо настроить переброс широковещательных пакетов (обычно 9 или 7 порт) на ваш компьютер.
Arduino
Для посылки магического пакета используется метод sendWol(). В качестве параметра указывается MAC-адрес компьютера, который необходимо "пробудить":
static byte targetmac[] = ;
.
ether.sendWol (targetmac);
Полный пример работы с WOL можно найти в репозитарии GiHub.
Используя ПО анализатор сети (к примеру Wireshark) вы можете мониторить корректность отсылки пакетов от Arduino:
Здесь красным выделен широковещательный MAC-адрес, зеленым - IP и UDP протокол, голубым - MAC-адрес ПК, повторяющийся 16 раз.
Имеется идея на основе Arduino сделать схему для удаленного включения/перезагрузки ПК ( подключение к мат. плате ПК ).
Задача, на основе сигналов от управляющего* и сигнального** проводов, решить что "соединять" и собственно "соединить".
2 провода для всех ПК идентичны ( GND, управляющий ), только 1, сигнальный - уникальный.
Плата, "соединитель" должна стоять не посредственно в корпусе ПК ( врезана в основную цепь, параллельно основным кнопкам на передней панели ).
Вопросы:
1. На сколько опасно все это собирать на основе герконовых реле?
2. Если опасно то какой тип реле лучше использовать?
* Под управляющим проводом подразумевается контакт, исходя из напряжения ( его наличие или отсутствие ) на котором, решать включаем мы или же перезагружаем.
** Под сигнальным проводом подразумевается контакт, на котором если появляется напряжение то мы замыкаем нужную нам пару ( пара устанавливается управляющим проводом ).
Помощь в написании контрольных, курсовых и дипломных работ здесь
Сенсорное включение-выключение
Был у меня старый усилитель на транзисторах, я брал один из транзисторов собирал простейшую схему в.
Удаленное выключение компьютеров по локальной сети
Добрый вечер. Не так давно у меня возник вопрос и я задался целью об одновременном выключение.
Удаленное включение ПК
Добрый день, у меня возникла такая задача: При работе через ПК, я подключен к некому серверу и у.
Удаленное включение компьютера
1) Припаять телефон к материнской плате. У кого то получилось, хотя сам я с этим счастливчиком не.
Грубая версия схемы. Состоящая из 3х реле.
Задача, собственно, уменьшить количество элементов и уложиться в цену 100 - 150р за схему
И да, и исключить ложные "нажимания" кнопок.
В радиоэлектронике - я пока немного дуб.
На сколько опасно все это собирать на основе герконовых реле? А в чём тут должна быть опасность? Сильных магнитных полей внутри корпуса компьютера не должно быть, поэтому ложных срабатываний герконов не будет. И при этом они гальванически развязаны. Так что, это вполне нормальный выбор.Опасность, электромагнитные поля создаваемые катушкой для активации геркона.
Меня больше эти поля беспокоят. Они могут принести вред ПК ( в частности винчестерам )?
Меня больше эти поля беспокоят. Они могут принести вред ПК ( в частности винчестерам )? Вряд ли. Эти поля не такие большие. Винт в металлическом корпусе. Да и саму плату с герконами Вы же не на жёстком диске крепить будете.Когда-то видел передачу, где авторы пытались магнитами повредить информацию на жёстком диске. смогли это сделать только огромным промышленным электромагнитом, которым автомобили поднимают.
Хотя по моему, я идиот.
От куляра стоящего напротив винчестеров и то больше электромагнитных излучений, нежели чем от геркона который будет лежать на дне корпуса.
Humanoid, спасибо за ответ.
Добавлено через 3 минуты
Когда-то видел передачу, где авторы пытались магнитами повредить информацию на жёстком диске. смогли это сделать только огромным промышленным электромагнитом, которым автомобили поднимают.
Был у самого случай, лежал рядом с винчестером динамик. Думал данным хана - оказалось, нет, все на месте.
Но это уже другая тема.
Эта уже себя исчерпала.
сделать схему для удаленного включения/перезагрузки ПК ( подключение к мат. плате ПК )для гальванической развязки ардуины от ПК и управления достаточно поставить два оптрона: один на кнопку включения (он же будет и для выключения ПК), второй для перезагрузки . никаких трех реле не нужно.
TLP621 копейки стоит:
Можно и сдвоенный сразу.
Все равно нужно 3, ибо парк машин - не 1 штука, а 10. И поэтому ради экономии используется "управляющее" герконовое реле.
И выходит всего 11 проводов ( 10 сигнальных, 1 управляющий ), если убрать "управляющий" геркон, то проводов станет 20 ( 10 включение, 10 перезагрузка ). Зачем такое нужно?
Можно и сдвоенный сразу.
Вот тут и вопрос, в состоянии покоя оптрон все равно ведь через себя пропускает ток.
Не будет ли из-за этого ложных "перезагрузок"?
не вижу связи. Откуда взялся парк машин вдруг в теме? Вам все разом включать нужно? Используйте WOL.
Вот тут и вопрос, в состоянии покоя оптрон все равно ведь через себя пропускает ток.Ежели нужно управлять множеством машин, ставим в параллель по входу столько оптронов на кнопки (есть сдвоенные и счетвернные даже), сколько нужно управляющих сигналов.
Откуда взялся парк машин вдруг в теме? Вам все разом включать нужно? Используйте WOL.Основная задумка перезагрузка повисших машин.
Которые не отвечают на WoL, в принципе.
Добавлено через 1 час 50 минут
А все остальное, просто, полет мысли.
Знаю. Он для включения.
Точнее хотел сказать, железка задумана для ПК у которых WoL не работает и так же для тех ПК которые повисли.
Доброго времени суток!
На носу Зима, подготовка и тд. вообщем начинается сезон отключения электричества, перепадов напряжения, сгоревших серверов.
Похожая тема уже обсуждалась на форуме, но в ней не было подробного описания.
Задача: посредством Arduino или Raspberry через веб интерфейс удаленно включать или перезагружать серверы (3 шт.) желательно не все сразу, а по отдельности.
Имеется, прямые руки, желание, время и деньги.
Но есть проблема, я не разбираюсь во всех этих штуковинах, прошу вашей помощи, как от и до все это реализовать программно и аппаратно.
Вы можете узнать IP и MAC адрес запустив на компьютере команду:
также можно попробовать найти МАС адрес с другого компьютера в вашей локальной сети, запустив команду "ping" и затем вывести таблицу ARP (где будут отображены соответствия между IP и MAC):
ping.exe IP_address
arp.exe -a
Ниже приведена типовая конфигурация для маршрутизатора:
Name: WakeOnLan Broadcast
Enable: yes
IP Address: 192.168.0.255 <--- здесь ваш внутренний широковещательный адрес, не ваш IP вида 192.168.0.1!
Protocol: UDP
Private Port: 9
Public Port: 9
Schedule: Always[/FONT]
Добавлено через 4 минуты
Используя программу RSHUT Pro вы можете использовать технологию Wake on LAN для включения любого количества компьютеров удаленно по сети или через Интернет. Можно гибко настраивать правила для автоматического включения по заданному расписанию или производить включение вручную. Программа имеет удобную графическую оболочку, а так же поддерживает работу в режиме командной строки.
Всем привет! Давненько я не писал статейки. Сегодня я хочу затронуть животрепесчушуую, тьфу, тему. Как-то за 40 километров от города приспичило мне поработать на своем домашнем ПК. Делов-то, TeamViewer и вся любовь. Да, это хорошо, но Хто ПК то включит. Короче слава богу дома была родня и я позвонив попросил включить комп. А вот что делать если нет никого дома, а гандурас чешется достучаться до ПК? Правильно, сделать включение удаленно. Тут в принципе есть несколько решений. Самый простой, это управление включением ПК по средством Wake-On-LAN, но блин у меня материнка сто летней давности и тратить 3,5 тыра вечнодеревянных на новую как-то не хочется. Так что этот вариант отпадает.
Вариант намбер ту.
Да, да. Эта малышка может замутить из Ethernet виртуальный COM порт. Мега продвинутая FTDI или CP2102. Но и этот вариант не подходит. Для создания виртуального порта нужно на ПК устанавливать спецпрограмму, драйвер и только под форточную ось. Короче не пойдет)) У меня походный ноут работает на Ubuntu.
Вариант намбер сри.
Я думаю расписывать это чудо не надо. Но и тут есть жирный минус. Абонентская плата минимум 3 сотни вечнодеревянных. А если мне не нужно будет пол года подключаться? Не, лажа.
Думал я думал и надумал. Есть у меня вот такая штука.
Начнем наверное со схемы, дабы знать на каких ногах что будет висеть.
Дык, описание. Модуль при получении команды дергает базу транзистора, а тот. А тот что?
А как сама кнопка включения ПК работает-то?
Я пытался это выяснить гуля и яндекся, а находил лишь заумные ответы типа: "
Когда нажимают кнопку, то команду обрабатывает BIOS и разрешает БП подать напругу на материнку.
" В общем все в этом духе, а когда задавал прямой вопрос "
Как на физическом уровне работает кнопка включения ПК?
", мне говорили что я идиот, так как она просто замыкает контакты.
Твою мать, логично. И не поспоришь.
Короче я забил на весь ентернеть и полез в системник с тестером. Что я выяснил. Кнопка работает следующим образом. Она замыкает контакты))) А именно два пина на гребенке на материнке с подписью SW PWR. Причем один пин железно прибит к корпусу, а именно на нем всегда GND, а на втором висит 3,3в. Данное напряжение подтянуто через резистор. То есть когда нажимается кнопка, то пин с питанием прижимается к корпусу и комп понимает что нужно включаться. Вывод, дабы заставить включиться ПК, нужно перевести ножку с 1 в 0. Вот для этого и прикручен на схеме транзистор. Да, можно было бы и напрямую от модуля ногу прикрутить и держать ее в 1, а при поступлении команды переводить в 0. Но есть одно большое НО. Представим себе ситуацию, наша железяка подключена к ПК и пихает 3,3в на ножку включения. Вроде все хорошо. Но тут случилось напасть, дома брат, сестра, мама, папа ну или бабушка на худой конец решили включить с кнопки. Чуете чем запахло? Ага, горелым. Мы модулем пихаем 3,3в, а кнопкой прижимают к корпусу. Так вот чтоб развязать этот недуг я и поставил транзистор. Пока команда на включение ПК не пришла, база транзистора жестко прижата к корпусу. Тот закрыт, а коллектор висит в воздухе. Можно обнажиматься на кнопку сколько угодно, ничего не будет, так как транзистор закрыт. А вот когда придет команда и модуль вжарит по базе единицей и транзистор откроется, то тоже ничего страшного не будет, так как он прижмет ножку включения на материнке к корпусу. И даже при выполнении команды кто-то нажмет на кнопку, замыкания не будет. Оба давят на корпус))).
Тэкс, с теорией закончили, топаем делать плату.
Железо готово, пора писать программу. Для железяки нам понадобиться ПО из статью про wifi термодатчик. Топаем туда и вникаем в суть происходящего. А именно ставим все ПО, качаем прошивку для NodeMCU, заливаем в модуль и возвращаемся сюда.
Если все готово, то пишем код.
Далее заливаем в модуль и все готово. Да, да в коде сть две лишних команды на включение и выключение света. Эти команды я вставил для того чтобы можно было расширять функционал модуля. Например им можно будет чем-то управлять по сети. Далее в конце команд я закоментировал болванку для создания новых команд. Так как клиент будет принимать команды введенные вручную, то система становиться резиновой. Выполняемых команд можно напихать столько, сколько позволит память модуля.
Отлично, поехали кодить под ПК. С учетом того что я решил писать клиента под форточки и пингвина, то буду использовать не Visual Studio, а Qt Creator. Ее можно скачать с официального сайта бесплатно. Но для бесплатной версии есть ограничения. Проги не продавать, раздавая прикладывать исходники и она немного порезана по функционалу, но на нашу задачу это не повлияет. Выкладывать код С++ здесь я не буду, а лишь покажу вид программы. Все исходники, программы и описания будут в конце статьи для скачивания.
Если сервер не ответил, то появится ответ "Пустой ответ!"
Если до сервера достучались, но команда не верная, то появится ответ "Фигня!"
Если до сервера достучались и команда выполнена, то появится ответ "Сделано!"
А теперь ссылочки на исходники и схемы с корпусом.
Ну как-то так. Проект для lua я выкладывать не буду, просо скопируйте код из статьи и все. Программу под форточки я сделал с установщиком, так как мне лень расписывать какие файлы куда пихать. Так что просто качаем архив и устанавливаем на ПК. Для Ubuntu все сложнее. Я так и не смог разобраться как создать подобие инсталятора винды в линукс (
если кто расскажет как, буду признателен.
). Поэтому я в архиве приложил файл с инструкцией что куда скопировать для работы проги.
Вроде все))
Будут вопросы, пишите в коментах.
Читайте также: