Каждый пользователь компьютера сталкивался хотя бы раз в своей жизни с такой ситуацией: ты ушёл к себе на работу, почти доехал до неё и вдруг вспомнил,- что забыл взять со своего личного компьютера какую-то очень важную вещь.

Ехать обратно — опоздаешь на работу. А ведь ситуация может развиваться и гораздо более драматично: допустим, человек поехал куда-то далеко за рубеж, в отпуск, и там ему приходит важный звонок, по результатам которого ему необходимо передать своему визави,- определённые документы. А документы остались дома! А дом находится за границей!

Или вот ещё такая беда: ваш персональный компьютер является мощной графической станцией, на которой установлено множество тяжёлых программ для работы с графикой, программными продуктами. А вы перемещаетесь по городу, имея в руках всего лишь «тонкий» клиент, в виде ноутбука…

Из этого описания становится понятно, что «тонкий» клиент не обладает соответствующей производительностью, для запуска множества высокопрофессиональных программ и проектов. Да и если даже он у вас достаточно мощный, — это в принципе неудобно, каждый раз синхронизировать проекты с «тонким» клиентом. Как быть в описанных выше ситуациях — мы и поговорим в этой статье.

На самом деле, указанная проблема очень легко решается: установкой на ваш персональный компьютер системы удалённого включения/выключения и перезагрузки. Этот подход позволит всегда иметь под рукой всю мощь вашей домашней машины и все необходимые документы, и проекты, хранящиеся на ней.

До начала описания своей разработки, хочу сказать, что конечно, она не является единственно возможным способом для удалённого включения выключенного компьютера. Например, хорошо известна технология Wake-on-LAN. Суть этой технологии заключается в том, что она позволяет включить выключенный компьютер, отправкой специального пакета на его MAC-адрес.

Сетевой адаптер компьютера, поддерживающего Wake-on-LAN, находится в этот момент в режиме пониженного потребления и анализирует все пакеты на него. Если одним из поступающих пакетов окажется так называемый magic packet, сетевой адаптер выдаст сигнал на включение питания компьютера.
Согласно wiki: Magic packet — это специальная последовательность байтов, которую для нормального прохождения по локальным сетям можно вставить в пакеты транспортного уровня, не требующие установки соединения (например, протокол UDP или устаревший IPX). Обычно для Wake-on-LAN пакеты протоколов верхнего уровня рассылают широковещательно, так как в случае динамического присвоения адресов неизвестно, какой IP-адрес соответствует какому MAC-адресу. Однако, для корректного прохождения через маршрутизатор, запрещающий широковещательные пакеты, можно послать пакет по какому-то определённому адресу.
Из минусов данной технологии стоит отметить, что она:

  1. должна поддерживаться аппаратно (например, мой компьютер её не поддерживает, насколько мне известно);
  2. как пишут некоторые пользователи, наблюдаются проблемы с восстановлением работы, если пропадало напряжение в сети или компьютер вынимали из розетки;
  3. является небезопасной, хотя бы даже из-за этого.

Понимаю, что вы мне ответите, что «жить вообще вредно, но это не значит, что не надо жить».

В любом случае, я подумал, что создание девайса, о котором пойдёт дальше речь, будет интересной затеей, так как:

  1. это более безопасно, чем Wake-on-LAN;
  2. можно установить даже на устройства, не поддерживающие Wake-on-LAN;
  3. прошивка устройства снабжена средствами восстановления связи, после пропадания питания/перезагрузки;
  4. позволяет принудительно перезагрузить «зависший» компьютер — удалённо;
  5. в принципе интересно, так как позволяет реализовать новый девайс на esp32, в рамках растущего «интернета вещей».

Почему я выше выделил пункт о принудительной перезагрузке: в период активного «сидения на удалёнке» во время пандемии, мне неоднократно приходилось сталкиваться с тем, что мой рабочий компьютер зависал и работа останавливалась на целый день, потому что специалисты IT службы — тоже на удалёнке. И им приходилось ехать в офис, чтобы «клацнуть» reset моего компьютера! И это — международная компания с множеством офисов…

▍ Итак, приступим....


Некоторое время назад, решение указанной проблемы было достаточно затруднённым: необходимо было обладать достаточно высоким уровнем профессионализма и наличием глубоких знаний в области электроники, чтобы собрать требуемое для решения этой задачи устройство.

С появлением платформы Arduino, данная задача существенно облегчилась, однако, она продолжала оставаться достаточно неудобной в своей реализации, ввиду наличия клубка проводов, соединяющих требуемые компоненты, либо, ввиду необходимости покупки соответствующих wi-fi шилдов.

В текущее же время, этот вопрос ещё более облегчился, из-за появления платы espressif esp32. Для тех, кто не знает, это двухъядерный модуль, содержащий множество необходимых для любого самодельщика свойств. В рамках же данного проекта, нас будет интересовать наличие встроенного wi-fi модуля.

Использование этой платы позволит нам легко и просто построить требуемое устройство, не загромождая всё проводами и за достаточно малую цену. Рискну предположить, что суммарная стоимость компонентов нашего решения не превысит 350-400 руб.

Для того, чтобы создать устройство, нам понадобится всего лишь четыре резистора, два мосфет- транзистора и плата esp32.

А если точнее:

  • 2 резистора на 10 кОм, мощностью на 1 ватт или меньше;
  • 2 резистора на 100 Ом, мощностью на 1 ватт или меньше;
  • 2 мосфет-транзистора с логическим уровнем IRLZ44NPBF;
  • 1 модуль микроконтроллера esp32

Суть нашего решения вкратце будет заключаться в том, что мы будем удалённо «нажимать» на кнопку вкл/выкл на корпусе системного блока компьютера, а также на кнопку перезагрузки, там же, на системном блоке. «Нажимать» я специально написал в кавычках, так как фактически, мы будем замыкать контакты указанных кнопок, не нажимая их физически.

По набору компонентов, искушённый читатель сразу понял, что мы будем делать: с помощью esp32 мы будем управлять ключами на основе мосфет-транзисторов.



При использовании мосфет-транзистора нужно иметь в виду один нюанс: транзистор должен открыться полностью, если этого не произойдёт, то он в работе будет сильно греться и будет фактически, работать в роли резистора.

В данном конкретном случае, это, конечно, не так важно, так как мы будем коммутировать достаточно малые токи кнопки включения/выключения и reset-a.

Кстати, весьма рекомендую к прочтению хорошую статью про подбор мосфетов.

Конечно, можно не напрягаться и взять релейные модули для ардуино:



Но это не наш путь и вот почему: а) щелчки реле; б) наклёп контактов; в) высокое энергопотребление релейным модулем.

Оно нам надо? Нет, оно нам не надо :-)

Так как мы хотим сделать «всё красиво» — мы будем использовать специальные мосфеты с логическим уровнем.

В рамках данного проекта, я выбрал мосфет-транзистор IRLZ44NPBF. У него порог срабатывания от 2 Вольт. То, что надо.

Как собрать ключ на мосфете — можно почитать тут.

По поводу конкретных силовых исполнительных устройств более-менее всё понятно. Однако нам ведь нужно ещё и каким-то образом «рулить» esp32 внешнего интернета!

То есть, задача в общем виде представляется следующей: некий интерфейс из внешнего интернета, зная IP адрес esp32, может отдавать ей команды.

Однако, подключение к устройству, находящемуся в сети за роутером, может стать неудобством, ввиду, как минимум, смены IP адреса у управляемого устройства, после каждой перезагрузки.

Да, вы скажете, что IP на самом деле не меняется, он может поменяться, только если кто-нибудь из домашних тоже подключится к сети, в тот момент, пока esp32 перезагружается, и ей придётся взять другой свободный IP.

Как бы там ни было, но все эти частности не важны, так как данный вопрос можно решить намного проще, чем выяснять какой текущий IP у платы и каким образом его сообщить во внешний интернет: для этого мы будем использовать протокол mqtt. Для тех, кто не сталкивался, вкратце можно сказать, что протокол предназначен для интернета вещей, «умного» дома и не только.

Использование протокола позволяет с лёгкостью обойти проблему прохода за роутер (тут следует сделать оговорку, что мы делаем допущение, что большая часть пользователей интернета, которая выходит в сеть, используя персональные компьютеры, имеют дома wi-fi точку доступа в виде роутера).

В нашем случае, использование протокола будет выглядеть следующим образом:

используя смартфон и интерфейс публичного mqtt-клиента, мы оставляем сообщение (цифру 0 или 1 или 2) в соответствующем топике (MoyComp/1 — переименуйте под себя), который постоянно мониторится платой esp32. Пользуясь терминологией протокола mqtt, можно сказать, что «esp32 подписана на соответствующий топик», в котором наш смартфон будет оставлять сообщение, о потребности совершения неких действий.

Значение отправляемых цифр:

0 — «выключить компьютер»;
1 — «включить компьютер»;
2 — «перезагрузить компьютер»;

После того, как сообщение получено платой, она выполняет определённые действия, и отчитывается в другом топике, на который, в свою очередь, подписан смартфон, с которого мы отправили задание. Таким образом, владелец смартфона узнает о том, что плата получила задание и выполнила его.

Как работать с клиентом: при запуске указанного выше mqtt-клиента — мы видим вот это окно. Ничего в нём не меняем, жмём кнопочку «Connect»:


Далее, появится следующее окно, где мы подписываемся на топик, в котором esp32 оставит сообщение о выполнении задания. Для этого жмём Add new topic subscription:


Вводим топик и жмём «Subscribe»:



Топик, на который мы подписались — появился справа, наверху:


Теперь, мы можем ввести топик, в который надо отправить сообщение и собственно, сообщение. И жмём «Publish». Сообщение уехало на esp32, и она отчиталась внизу, о выполнении задания:


То есть, для работы всей системы нужны:

  • компьютер с установленной в него сборкой на базе esp32;
  • точка доступа wifi (домашний роутер);
  • MQTT-брокер;
  • публичный MQTT-клиент (который мы запускаем на смартфоне).

Хорошая инфографика, о работе протокола mqtt приведена на картинке ниже:

image
Источник картинки: wikihandbk.com

И работает оно так (текст оттуда же):

  • ESP32 #1 подключена к светодиоду и считывает температуру с датчика DS18B20;
  • ESP32 #2 подключена к кнопке, и нажатие на неё будет включать/выключать светодиод, подключённый к ESP32 #1;
  • ESP32 #2 подключена к LCD-дисплею (передающему данные по I2C), на котором будут печататься данные о температуре, полученные от ESP32 #1
  • ESP32 #1 подписана на топик «esp32/led» и публикует данные о температуре в топик «esp32/temperature»;
  • При нажатии на кнопку, подключённую к ESP32 #2, эта плата будет публиковать соответствующее сообщение в топик «esp32/led», с помощью которого управляется светодиод, подключённый к ESP32 #1;

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

Модифицируем её для нашего случая:



Прошивка проекта написана в Arduino IDE и доступна на моём гитхабе.

Пробежимся по основным моментам.

В своей работе мы будем использовать публичный mqtt broker по адресу: broker.hivemq.com:

const char* mqtt_server = "broker.hivemq.com";

Вы можете использовать любой другой — это вопрос исключительно предпочтений. Я выбрал этот и он у меня заработал. А так как я обычно иду по пути наименьшего сопротивления (в рамках парадигмы «и так сойдёт!» ), то искать что-то иное не было смысла. Ибо любая минута поиска — воровала у меня время, которое я мог бы с пользой провести, лёжа на диване, с думами о вечном :-))).

Для начала мы в блоке изначальной инициализации переменных указываем порт для подключения к mqtt брокеру, при необходимости — имя пользователя и его пароль(или имя и пароль оставляем пустыми, если брокер публичный — как в нашем случае):

#define mqtt_port 1883
#define MQTT_USER "" 
#define MQTT_PASSWORD "" 

Далее мы указываем два топика, — один из которых для публикации статуса компьютера в данный момент (то есть компьютер включён/выключен, или перезагружается):

#define MQTT_SERIAL_PUBLISH_CH "/MoyComp/1/Status"

Именно туда esp32 выводит строгие и выверенные системные сообщения, о происходящем с компьютером:
 
client.publish(MQTT_SERIAL_PUBLISH_CH, "Ваш компьютер включён, господин!");
client.publish(MQTT_SERIAL_PUBLISH_CH, "Ваш компьютер выключен, господин!");
client.publish(MQTT_SERIAL_PUBLISH_CH, "Ваш компьютер перезагружается, господин!");

Другой, для получения сообщений из внешнего интернета(сюда мы постим со смартфона цифры 0, 1 или 2, в зависимости от которых выключается/включается/перезагружается компьютер):

#define MQTT_SERIAL_RECEIVER_CH_1 "MoyComp/1"

Для подключения мосфет-транзисторов, я использовал пины, под номерами 19 и 21. Вы можете использовать, в принципе, любые допустимые пины, хорошее описание которых содержится по следующему адресу.

Из ещё одного интересного момента можно рассмотреть следующие три переменные:

const uint32_t comp_ON_period = 500;
const uint32_t comp_OFF_period = 4000;
const uint32_t comp_Restart_period = 500;

В них мы задаем время в миллисекундах, в течение которого наше устройство будет держать нажатой соответствующую кнопку. Данные переменные вам нужно определить самостоятельно, опытным путём(если мои значения не будут работать)- для вашего конкретного компьютера, так как, вероятно, они могут отличаться в вашем конкретном случае. В прошивке значения переменных указаны для моего случая.

Ещё одним любопытным моментом, который некоторые могут не знать, является то, что встроенный в esp32 светодиод привязан к пину, под номером 2. Я решил, что «инженерия инженерией, но и красотень тоже должна быть». Поэтому наша esp-шка будет мигать встроенным светодиодом:

const int LED = 2;

Теперь, что касается питания нашей сборки на esp32: единственный более-менее комфортный способ это осуществить,- запитать нашу сборку от дежурного питания компьютера. Так как наша сборка потребляет совсем немного, её подключение к дежурному питанию не должно вызвать проблемы с невозможностью включения компьютера из-за просадки напряжения.

А далее, когда компьютер включён — можно подключиться к нему, с помощью предварительно настроенных программ удалённого администрирования, удалённого рабочего стола и т.д. и т.п.

Ну, вот на этом кажется и всё. Ещё раз только остановлюсь на том факте, что вся эта идея со сборкой системы для удалённого управления компьютером была продиктована не только, и не столько потребностью в доступе к файлам (потому что, как альтернативу, можно купить в таком случае NAS), а скорее даже необходимостью иметь возможность доступа к своему пулу рабочих программ, которые установлены только на домашнем компьютере.

Успехов вам в сборке этого устройства!

Комментарии (76)


  1. igrushkin
    20.09.2021 16:33
    +2

    самое интересное не написали: как это все подключить в параллель с физической кнопкой питания?

    там много вариантов: от схемы "проходного выключателя" до заведения кнопки на корпусе компа на пины esp32


    1. VT100
      20.09.2021 20:12

      "Прозвонить", какие два вывода обеих кнопок соединены с корпусом ПК. На два других — подключить стоки транзисторов. Совет пригоден для случая с питанием устройства от БП ПК.


      1. yarkov
        24.09.2021 08:50
        +1

        А вот и инженеров подвезли


  1. anonymous
    00.00.0000 00:00


  1. AcidVenom
    20.09.2021 16:39
    +4

    Статья «Когда нет денег на NetPing». Обожаю подобное чтиво.


    1. JerleShannara
      20.09.2021 18:59
      +1

      И даже его более дешевые аналоги от других разработчиков.


      1. dlinyj
        20.09.2021 19:07
        +1

        Огласите весь список, пожалуйста :)


        1. JerleShannara
          20.09.2021 19:10
          +1

          SNR ERD стоят уже более четырех лет (всякие, от простейших до жЫрных на STM32) на контроле за оборудованием, проблем нет.


          1. dlinyj
            20.09.2021 19:12
            +1

            Шикарная платка.


  1. ole325
    20.09.2021 16:41

    Очень интересно технически, но практически все это отстало лет так на 20. Какие важные проекты на диске дома? Проблемы синхронизации?

    Ну и технически, wake on power on + управление автоматом на розетке, либо еще проще - умная розетка.


    1. DAN_SEA Автор
      20.09.2021 18:38

      У меня нет даже wake on power on на компе ;-). А прошивать матплату самостоятельно не хочу - могу "окирпичить". Мне проще esp-шку за 250 рублей повесить :-)


      1. dlinyj
        20.09.2021 19:07
        +1

        У меня нет даже wake on power on на компе ;-).

        Честно говоря, в это мне не верится. Нужно посмотреть в BIOS. Другое дело, что ваше решение даёт большую гибкость, и вообще весьма интересно в целом.


        1. DAN_SEA Автор
          20.09.2021 19:45

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


          1. erkade
            24.09.2021 08:40

            Копеечный конденсатор 1000мкф 10в на кнопку включения решает проблему отсутствия Wake-on-LAN и Wake on power без программирования и доступа в интернет. Единственное его надо подключить согласно полярности. Решение проверно и отлично работает на компьютерных роутерах много лет, даже если у них разрядилась батарейка CMOS и настройки BIOS сбросились на умолчания, где все настройки Wake-on-LAN и Wake on power обычно выключены.

            Это работает потому что разряженный конденсатор представляет собой по сути короткое замыкание, что создаст низкий логический уровень на кнопке включения и компьютер включится, если он был до этого физически отключен от питания, например был отключен свет.


            1. DAN_SEA Автор
              24.09.2021 08:46

              Это всё хорошо. Но ваше решение - только для "поддержания постоянно включенным" некого сервера. Или личного компьютера. Плюс же моего решения - компьютер постоянно выключен и включается только "по запросу". Так же, можно удаленно перезагрузить, в случае зависания.


              1. rexen
                21.10.2021 18:24

                Достаточно будет запитать комп через "умную розетку". Выключение - командой операционке, а включение или перезагрузка - отрубанием/подрубанием ПК к 220В.


            1. VT100
              24.09.2021 21:10

              FTGJ: И защитный диод на питание.


  1. serafims
    20.09.2021 17:10
    +1

    Тоже такую штуку планировал, для компа, который не умеет ни по таймеру, ни по сети включаться, какой-то глюк с ACPI и xpenology.
    Если лень паять - берите Sonoff TH10 двухканальный, двумя релюшками щелкать. Можно и на вход подать состояние светодиода включения.
    Че-то полевик маловат. Но зато его удобно крепить заклепкой к корпусу ПК, да.


    1. DAN_SEA Автор
      20.09.2021 18:43

      Да, полезная штука. Насчет полевика - его размер ни о чём не говорит :-). У него напряжение сток-исток=60 вольт и 50А тока. Более чем. Даже многократно более нужного.


  1. meljohin
    20.09.2021 18:05
    +2

    Транзисторы можно попробовать заменить на оптрон. У меня подобная схема с оптроном успешно работала на ноутбуке. esp8266 + оптрон.


  1. AlexGluck
    20.09.2021 18:27

    Оверинжиниринг, альтернатива:
    USB watchdog 200 рублей (можно с кнопкой за 300 взять)

    https://ae04.alicdn.com/kf/HTB1.nguiamWBuNjy1Xaq6xCbXXa5/Watchdog.jpg


    1. dlinyj
      20.09.2021 18:34
      +1

      И как его применить удалённо?


      1. AlexGluck
        20.09.2021 18:43

        Один раз включил как и устройство из статьи и оно будет перезагружать компьютер в случае зависания. Ну а если необходимо включать компьютер с холодным стартом, то вайфай розетка (800 рублей) позволит выполнить это как выше предлагали.

        Выключение: Выключение из ОС, если недоступно выключение питания.

        Включение: подача питания

        Перезагрузка: с начала процедура выключения, потом процедура включения.


        1. DAN_SEA Автор
          20.09.2021 18:50

          Я так и подумал кстати, сразу, как увидел слово "watchdog". Только фишка в том, что тут гибкие алгоритмы настройки всего (через код) - это раз. Два: wifi розетка(800 руб)+этот watchdog(сейчас глянул на али- 322 рубля, с доставкой). Итого: 1122 рубля. Ок -мы богатые, нам это пускай неважно:-). Ладно. А удовольствие самому что то собрать и сделать именно то, что надо?

          Так недолго и до греха упасть - инструментов no-code :-)))


          1. AlexGluck
            20.09.2021 18:53
            +1

            Я вообще то предлагал только одно устройство взять, но знаю что watchdog не умеет в cooldboot поэтому добавил в альтернативу розетку)
            800 против еспшки это хороший вариант.

            А если удовольствие, то это уже другое)


  1. dormin
    20.09.2021 20:06
    +1

    Покупаем wifi реле на Озоне sonoff basic r2 за 600 руб. Прошиваем кастомной прошивкой с 4PDA, где большой раздел Sonoff - Прошивки и прочий DIY. Настраиваете. Выбираете MQTT брокера. На все есть подробные инструкции и поддержка форума.


    1. dlinyj
      20.09.2021 23:56
      +2

      Это реле, по схемотехнике практически тоже, что предлагает автор :).


  1. ursaa
    20.09.2021 20:44

    изобретен IPMI?


  1. AlexanderS
    20.09.2021 21:22
    +3

    В своей работе мы будем использовать публичный mqtt broker по адресу: broker.hivemq.com

    Нууу… и это пишет человек, ранее упоминающий про небезопасность WOL… я думал вы свой брокер запилите)

    Я лет 10 назад подобную проблему решил установкой сетевой карточки с поддержкой WOL с прокидыванием через маршрутизатор на порт 9 какого-нибудь внешнего порта. А чтобы проблем не было с забыванием роутером порта с нужным MAC правится таблица ARP маршрутизатора. Это вроде было в самой первой статье, на которой я на хабр заехал ;) Потом у меня еще была небольшая итерация оверинжиниринга аж с FPGA (с ПЛИС меня явно муха покусала — ну уж, использовал что было под рукой) для компа, который не умел через PCI включаться. Кстати, это работает до сих пор.


  1. Asikk
    20.09.2021 21:48
    +21

    Лет 15 назад два tower сервера стояли друг напротив друга. На крышку CDROM-ов были приклеены карандаши напротив кнопки RESET противостоящего сервера. Если один из серверов зависал, заходил на другой и делал eject. CDROM этого сервера выезжал и карандашем ребутил другой сервер


  1. GoodWins
    20.09.2021 22:51

    Из пушки по воробьям? Для этого поделия ESP8266 заглаза хватит.


    1. sim31r
      22.09.2021 15:10

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


      1. GoodWins
        23.09.2021 03:11
        +1

        Лет 5 уже несколько устройств дома работают: освещением управляют, вентиляцией в ванной и туалете, время с погодой показывают. Проблем не замечал.


  1. elfukado
    21.09.2021 05:39
    +3

    Самое интересное не написали: что у вас за компьютер без wake on lan, wake on power on, который регулярно зависает?


    1. fougasse
      21.09.2021 09:07
      +1

      Да еще и в офисе.

      Т.е. ребята не могут удалённо «дёрнуть» розетку через какой-то Raritan, но разрешают «колхоз» к кнопке питания, которым управляют через публичный MQTT?


    1. DAN_SEA Автор
      21.09.2021 09:57

      Самое интересное не написали: что у вас за компьютер без wake on lan, wake on power on, который регулярно зависает?

      Старенький комп у меня - 2011 года. Когда покупал, наворотил сильно :-). До сих пор хватает на все задачи с лихвой. Указанные опции - отсутствуют. Как я писал выше, пытался найти хотя бы wake on power on - хотя бы под другими названиями. Не нашел. А перепрошивать матплату современной прошивкой - не рискую.


    1. sport12345
      06.10.2021 12:05

      Посмотрел на нескольких домашних компьютерах - такой опции в bios у меня тоже нет, хотя компьютеры 3-х летней давности


      1. kreexus
        06.10.2021 12:25

        Я Вам больше скажу, я свой NAS собирал в начале этого года и мать у меня стоит хоть и не очень известного бренда, но старт выпуска её был в октябре 2020 года. Материнка mini-ITX формфактора c 4 SATA-разъёмами на борту + m.2 слотами под SSD и Wi-Fi и всем она хорошо но... WOL там в принципе не завозили даже в полноразмерных ATX-версиях платы...

        Не могу сказать, чем продиктовано такое решение производителя, так как с одной стороны WOL - штука достаточно старая и всем давно уже понятная. С другой стороны, а много ли тех, кто этим реально пользуется - вот чтобы прям пользуется? Даже среди моих многочисленных знакомых и коллег, кто знаком с WOL, рельно юзающих это у себя хотя бы дома человека 2 всего вспомнил...


        1. sport12345
          06.10.2021 12:41

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


          1. BDI
            06.10.2021 14:16

            HP Microserver Gen 8(не знаю насколько сейчас полноценное iLO, и есть ли оно, в Gen10+, но и найти Gen8 пока реально) подойдёт? iLO клиент под андроид точно есть(был), прокидывайте порт, и включайте/выключайте со смартфона :).


            1. AcidVenom
              06.10.2021 14:49

              прокидывайте порт

              Больше вредных советов!


              1. BDI
                06.10.2021 15:29
                +1

                Да, пожалуй с пробросом я погорячился(не знаю как там у iLO с уязвимостями). Ну, тогда впн клиент на смартфон, «впн-сервер» на роутер, остальное аналогично.

                Собственно хотел сказать что тому кому изначально такой функционал нужен, IPMI/BMC доступно(хотя не очень распространено, и заметно дороже). Может даже есть отдельные контроллеры, добавляющие в любую(±) матплату данный функционал существуют, хотя с наскоку не нагуглил(правда искал что-то на чипах Aspeed, но они обычно интегрируются производителями матплат).

                А задача «потыкать кнопку павер со смартфона»(наверное ещё и через чужое облако) — не уверен нужно ли оно большинству покупателей. А кому нужно — или построят свой велосипед задёшево, и под свои конкретные хзотелки(как автор статьи), или купят готовое решение с расширенным функционалом. Если бы был спрос, думаю упрощённые решения уже были бы. А так — увы, или «велосипед», или швейцарский нож(разной навороченности).


        1. elfukado
          06.10.2021 13:08

          Не знаю на чём вы собирали, но когда я начал работать админом-эникейщиком были ещё в ходу pentium 4 и там уже практически везде была wake on ac back (power on).

          Я эту опцию сам редко включаю, но биосов за это время повидал достаточно и практически на всех офисных материнках она была.

          WOL действительно часто отсутствует.

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

          Да, даже у технически продвинутых людей очень редко встречаю белый ip и проброс портов на роутере. Дальше оставленного включенным компа с teamviewer мало кто заходит.


      1. elfukado
        06.10.2021 12:39

        такой опции в bios

        Какой? Я про две написал.


        1. sport12345
          06.10.2021 12:53

          Не поддерживают "Wake-on-LAN"


          1. elfukado
            06.10.2021 12:55

            Да, такое часто встречается, к сожалению. А вот вторая, wake on ac back, отсутствует редко.


            1. sport12345
              06.10.2021 12:59

              Опции "Включение компьютера при подаче питания" также нет


              1. elfukado
                06.10.2021 13:12

                Значит я такой везучий на материнки с управлением включением :-) На ноутбуках ещё ладно, но на десктопах реально редко такое встречал.


            1. kreexus
              07.10.2021 09:50

              Не, wake-on-ac - есть, к счастью. Но это совсем не то же самое, что WOL


              1. elfukado
                07.10.2021 10:01

                Не то же, но в комплекте с "умной" (как же задолбали называть этим всё подряд) розеткой уже без всяких велосипедов можно включать.


                1. kreexus
                  07.10.2021 10:15

                  Умная розетка - не панацея. Она справится с задачей удаленного включения. А если нужно удалённое отключение? Предвосхищая Ваши ответы, скажу - да, можно подключиться к ПК удалённо, через ssh тот-же, или по веб-морде. Но это всё компромиссы и если честно, когда тебе надо хлопнуть в ладоши, чтобы включить, а чтобы выключить - станцевать ламбаду - это не юзабельно. Раз ты так выключишь, ну два, три, пять... Когда-то настанет тот предел, когда ты скажешь - хватит это терпеть, хочу включать и выключать в одном месте, одной кнопкой. Умная розетка мягкого выключения не даст. И тогда мягко можно выключить как раз через пины FRONT_PANEL. Но, в моём кейсе с моим устройством, там ещё будут интеллектуальные режимы (как у той же умной розетки) и даже чуть больше, потому что по сигналам работы с жестким диском (с HDD_LED) я умею определять периоды интенсивной работы и периоды простоя. При простое мне ничего не мешает мягко засыпать мой NAS и включать снова при необходимости.

                  Но справедливости ради - да, умная розетка - это первое, про что я подумал, перед тем как начал делать своё поделие.


                  1. elfukado
                    07.10.2021 10:40

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

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

                    Ну и если надо выполнить команду по ssh нажатием кнопки - я использую hot button на android.


                  1. AcidVenom
                    07.10.2021 11:24

                    мне ничего не мешает мягко засыпать мой NAS

                    Чтобы что?


  1. Gorthauer87
    21.09.2021 10:26

    К меня там при загрузке ещё есть этап ввода пароля от диска и не представляю как это можно реализовать без потери в безопасности.


    1. screwer
      21.09.2021 13:42

      Эмулируем USB клавиатуру в ESP...


      1. fougasse
        21.09.2021 15:54
        +2

        Через публичный MQTT, ага :)


        1. JerleShannara
          21.09.2021 15:57

          Ставим этот комп на управление запуска ядерной ракеты и получаем премию дарвина досрочно.


        1. screwer
          21.09.2021 17:55

          Я mqtt вообще не предлагал. Есть куча других способов.


      1. Gorthauer87
        21.09.2021 22:57

        Тогда надо на esp ещё шифрование навесить и нигде в нем не накосячить. Сложная самоделка выходит.


        1. screwer
          21.09.2021 23:59

          А ещё повесить на ESP контроль продува, датчики температур, и подключить его через эмуляцию двух КОМ портаов на композитном УСБ устройстве. А для ввода ещё добавить мышку, помимо клавиатуры. Через первый комп порт служба с ОС будет брать управление охлаждением на себя, используя всю доступную информацию в системе. Второй - интерактивный, для человека. Если ОС управление на себя не взяла - используется более простая схема управления, на нескольких физических датчиках Получится идеальное устройство.


          1. Gorthauer87
            22.09.2021 00:04

            Тогда сразу предлагаю собирать шагающего человекоподобного робота.


            1. screwer
              22.09.2021 01:50

              Не вижу ничего особо сложного в моем описании. Сделаю себе в ближайшем будущем.


          1. KvantVS
            23.09.2021 13:41

            Зачем? Материнские платы же умеют управлять скоростью вращения кулеров?


            1. screwer
              23.09.2021 14:26

              Процессорным(и). Корпусными - не всегда, часто там трехпиновые разъемы, только с тахометром. Моя двухпроцессорная - такая.

              Далее, в корпусе стоят мощные двухамперные серверные кулеры. Сомневаюсь что мать сдюжит их питать.

              Ну и последнее - на основании каких данных регулируем продув ? Какой логикой ? И как быть, если ОС не загрузилась/зависла ?


  1. Gryphon88
    21.09.2021 11:39

    Мой велосипед был на М3 с разведенным ethernet (не люблю беспроводные соединения, когда нужна хоть какая-то надежность, ну и в случае удаленного дебага "у нас wifi не работает!" так проще), хотя там бы и М0+ хватило. Про mqtt тогда не знал, пришлось извращаться, чтобы за NAT вылезти. А потом в 2014м мой EeePC всё-таки умер и надобность в хосте для переносного "тонкого клиента" естественным образом отпала.

    @Gorthauer87 пароль на диск запрашивается на отдельной железке, физически не связанной с сетью, или до того, как сеть поднимается?


  1. Eugeniy2014
    21.09.2021 17:34

    Для таких целей ESP32-избыточно.Хватит и esp8266 версии 01 ,8 ми выводной плюс модуль реле.


    1. telobezumnoe
      21.09.2021 20:18

      мне кажется там даже реле не нужно, включение происходит путем подтягивания к земле нужного пина, но это не точно, во всяком случае БП АТХ так спокойно запускается от еспешки.


  1. DARKB100D
    22.09.2021 13:22
    +1

    Делал такую штуку на ESP8266, но управление реализовал через Telegram бота: https://github.com/DARKB100D/ESPTelegramPCSwitch


  1. sim31r
    22.09.2021 15:06

    используя смартфон и интерфейс публичного mqtt-клиента

    А нет программы на телефон или более красивого интерфейса для MQTT, чтобы можно было пользователям отдать? Типа нажмите кнопку тут для включения, тут для отключения и температуру какую-нибудь вывести? Понятно можно самому написать, но возможно, есть что-то готовое.

    Как вариант Telegram канал, для работы через телефон удобнее.


    1. telobezumnoe
      24.09.2021 03:44

      использую mqtt dash, как то давно на есп делал бота, который мне отправлял сообщения, сейчас не знаю, работает ли эта библиотека


  1. innomaker
    22.09.2021 20:51

    PIkvm есть ещё, если у вас в буте пароль запрашивается например. Мне их реализация очень понравилась.


  1. kreexus
    22.09.2021 23:18

    Интересный проект. Я сейчас аналогичный проект делаю для решения точно такой же задачи. У меня есть самосборный NAS с материнкой miniITX, но без WOL. И проблему удалённого пуска или останова NAS-сервера решаю как-раз через такой девайс, который по своей сути включается в разрых шлейфа FRONT_PANEL + питается с ATX-разъёма материнской платы (через специально сделанный шлейф, путём перетыкания 2х проводов из шлейфа синхронизации 2х блоков питания) от +5VSB. NAS-сервер планируется убрать в техническое помещение, где ему будет пребывать комфортно, но его будет не комфортно кк минимум каждый раз туда бегать включать. Железка уже рабочая, успел написать прошивку для тестирования железной сборки. Боевую прошивку дописать не успел пока ещё - в процессе. Железка представляет собой собственноручную плату-сокет с минимальным набором РЭК и контроллера Wemos. Да, выбор такой себе, поэтому обязательно переделаю под NodeMCU. Управляться будет по Wi-Fi через web-интерфейс + отдельное мобильное приложение. А так же через tg-бота. Проект в дальнейшем планирую опубликовать как OpenSource.

    Сфер применения для железки придумал минимум несколько. Помимо моего NAS, она может вполне стартовать любые сервера, в частности даже риги для майнеров. Кроме этого, есть мысли добавить несколько интеллектуальных режимов, чтобы чуть-чуть расширить функционал железки, нежели просто включить\выключить\перезагрузить.


  1. sport12345
    06.10.2021 11:31

    Если бы кто-нибудь производил корпуса с опцией управления включения и выключения питания через смартфон, то думаю был бы неплохой бизнес. Я бы купил такой корпус


  1. Eugeniy2014
    14.10.2021 13:53

    Mqtt вещь хорошая,но можно ведь и просто бота в телеге сделать и тем же железом пользоваться в виде esp32 и оптопары


    1. DAN_SEA Автор
      14.10.2021 14:36

      Можно! Было бы интересно про это почитать ;о)


  1. rexen
    21.10.2021 21:27

    а) щелчки реле; б) наклёп контактов; в) высокое энергопотребление релейным модулем

    а) На фоне гудежа кулера?

    б) Какой наклёп? В авто годами, а то и десятилетиями реле щёлкают поворотниками - в не очень комфортном климате - и особо не жалуются.

    в) Опять же, на фоне потребления компа? В конце концов, есть бистабильные реле.