Основные способы
Для того чтобы правильно установить драйверы на периферийные устройства — например, звуковую или сетевую карту, необходимо точно знать производителя и модель материнской платы. Если пользователь покупал готовый системный блок в специализированном магазине оргтехники, в комплекте с гарантийными листами и чеками продавцы обязательно должны были отдать и соответствующие коробки.
Именно это первый метод определения модели. Нужно найти коробку от материнки и ввести в поисковике название производителя с уникальной комбинацией букв и цифр. Распознать их очень просто, потому марка будет, скорее всего, одной из первых в выдаче.
Производителей на сегодняшний день на рынке существует довольно немного. Если это не так называемый брендовый ПК, скорее всего, у среднестатистического пользователя будет плата от одного из таких производителей:
- Asus.
- MSI.
- AsRock.
- Gigabyte.
Как видно, узнать конкретную фирму, с производственных мощностей которой сошла плата, не так уж и сложно. Но это ещё не всё. На рынке процессоров существует два крупных «игрока» — Intel и AMD. Процессоры этих производителей используют разные разъёмы под установку, называемые сокетами (socket в переводе с английского — гнездо) и разные чипсеты, которые содержат необходимые наборы линий стандарта PCI-Express, позволяющие управлять периферией и встроенными мультимедиа-устройствами.
Именно от чипсета и, в меньшей степени, от сокета и будет зависеть наименование конкретной модели. Существует несколько точных методов, позволяющих узнать, какая материнка стоит на компьютере:
- Визуальный осмотр.
- Средствами операционной системы.
- Сторонними программами — CPU-Z, AIDA64 и Speccy.
- Посредством BIOS.
Использование сторонних утилит
Если ни один из способов определения средствами Windows не увенчался успехом, стоит обратить внимание на несколько программ разработчиков, не сотрудничающих с Microsoft и использующих обнаружение моделей устройств ПК по, так называемым, DeviceID, уникальным кодам тех или иных комплектующих. Они позволяют как узнать название материнской платы, так и увидеть все уникальные обозначения даже тех комплектующих, драйвера на которые ещё не установлены.
Самая популярная программа такого вида — AIDA64. Некоторые более умудрённые опытом пользователи, начавшие своё знакомство с миром ПК в ранних двухтысячных, могут помнить её под названием Everest. Под старым именем она уже не обновляется долгое время, а потому некоторые модели комплектующих, например, новейшие процессоры линейки Ryzen или модельного ряда Coffee Lake может определить совершенно неправильно.
Для того чтобы узнать модель платы в AIDA достаточно перейти во вкладку «Системная плата» и щёлкнуть дважды по иконке с таким же названием. Тогда в окне отобразится вся главная информация о системе, в том числе и подробные сведения о главной плате. Сюда входят:
- Информация о модели и фирме-изготовителе.
- Частота системной шины (FSB).
- Модель набора внутренней логики (чипсета).
- Тип, версия и дата последнего обновления BIOS.
- Доступные порты расширений.
Наименьшая по объёму, но настолько же функциональная утилита Speccy примечательна тем, что совсем не содержит тестирующих модулей или бенчмарков, а потому является оптимальным вариантом для самого быстрого получения исчерпывающей информации о комплектующих ПК. Вся основная информация выводится прямо в главном окне программы, а потому не нужно тратить время на поиск необходимой вкладки.
Так как поставляется она сразу с двумя исполняемыми файлами, не нужно тратить времени на выбор версии соответственно битности операционной системы. Если пользователю нужно получить более подробные данные о конкретном компоненте, в левой части окна программы располагаются удобные ссылки на это.
Единственным минусом может быть только неправильное определение объёмов доступной видеопамяти на некоторых новых картах от nVidia или путаница с архитектурой и техпроцессом старых процессоров от AMD и Intel.
Как получить доступ к расширенным параметрам загрузки с помощью команды shutdown
Расширенные параметры загрузки — это среда, которая включает в себя различные инструменты для устранения неполадок Windows 10. Хотя для доступа к этим инструментам можно использовать Настройки или USB-носитель, это можно сделать и с помощью команды shutdown.
Чтобы запустить компьютер в среде Расширенных параметрах загрузки, проделайте следующее:
- Откройте Пуск.
- Найдите Командную строку, щелкните правой кнопкой мыши верхний результат и выберите Запуск от имени администратора.
- Введите следующую команду и нажмите Enter:
shutdown /r /o - Введите следующую команду, чтобы выключить компьютер и загрузить его в режиме Расширенных параметров загрузки во время следующего запуска, и нажмите Enter:
shutdown /s /o
Также можно использовать параметр /p вместо параметра /s, чтобы закрыть все запущенные приложения и принудительно завершить работу без предупреждения.
После выполнения этих шагов компьютер запустится в Расширенных параметрах загрузки, и вы получите доступ к средствам восстановления и сможете устранить неполадки в работе.
Обзор удаленного выключения
Чтобы это сработало, необходимо выполнить несколько шагов в первую очередь, иначе вы будете постоянно получать Доступ запрещен (5) сообщение об ошибке, и это сведет вас с ума.
Шаг 1Во-первых, чтобы удаленно завершить работу компьютера в вашей сети, вам необходимо убедиться, что у вас есть административный доступ к целевому компьютеру. Если вы работаете в домашней сети, лучший способ сделать это — убедиться, что все компьютеры находятся в одной рабочей группе и у них всех есть хотя бы одна учетная запись администратора с одинаковыми именем пользователя и паролем.
Для этого вам не нужно использовать встроенную учетную запись администратора на любом компьютере, но учетная запись пользователя, которую вы используете на обоих компьютерах, должна входить в группу администраторов на локальном компьютере. Если вы идете в панель управления и нажмите на Учетные записи пользователей и это говорит администратор или Местный администратортогда ты в порядке. Опять же, имена учетных записей пользователей и пароль должны быть одинаковыми.
Если вы находитесь в корпоративной среде с доменом, вы, вероятно, захотите войти в систему, используя учетную запись администратора домена. Используя эти учетные данные, вы сможете отключить любой другой компьютер в сети, даже если они вошли в систему с использованием других учетных данных.
Шаг 2: Второй шаг — включить Общий доступ к файлам и принтерам и разрешить это через брандмауэр Windows. Для этого перейдите в Панель управления и нажмите Центр коммуникаций и передачи данных первый. Нажать на Изменить расширенные настройки общего доступа ссылку в левом меню и выберите переключатель для Включить обнаружение сети а также Включите общий доступ к файлам и принтерам,
Вернитесь в главное окно панели управления и нажмите на брандмауэр Windows. Нажать на Разрешить программу или функцию через брандмауэр Windows в левом меню.
Убедитесь, что вы проверяете только Дом / Работа (Частный) коробка а не публичная. Вам не нужно разрешать что-либо еще через брандмауэр. Вы можете прочитать на других сайтах, чтобы разрешить WMI, удаленное выключение, обнаружение сети и т. Д., Но я протестировал его без каких-либо из них, и он работает просто отлично.
Шаг 3Наконец, если вы пытаетесь настроить таргетинг на компьютер под управлением Windows Vista, Windows 7 или Windows 8 удаленно, вам необходимо изменить реестр. Если вы не сделаете это, это просто не сработает. Вы получите только сообщение «Доступ запрещен», несмотря ни на что.
Откройте редактор реестра, перейдите в Пуск и введите смерзаться, Теперь перейдите к следующей клавише:
HKEY_LOCAL_MACHINE — ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ — Microsoft — Windows — CurrentVersion — Политики — Система
Щелкните правой кнопкой мыши на система на левой стороне и выберите New — DWORD (32-битное) значение,
Новое значение появится в правом нижнем углу, и текст будет выделен. Измените имя на LocalAccountTokenFilterPolicy и нажмите Enter. Теперь дважды щелкните по нему и измените значение с 0 на 1,
Нажмите OK и закройте из реестра. Вам не нужно перезагружать компьютер, так как изменения должны вступить в силу немедленно. Этот раздел реестра необходим, поскольку в Windows Vista и более поздних версиях учетная запись администратора удаляется из учетных данных при удаленном подключении. Это позволит учетной записи оставаться с правами администратора.
Вы также будете читать на других сайтах, чтобы начать Удаленный реестр сервис, если это не работает, и отредактировать локальную политику безопасности, добавив Все группа в Принудительное отключение от удаленной системы настройка политики.
Очевидно, вам также необходимо знать все имена других компьютеров в сети. Вы можете сделать это, перейдя в Панель управления а затем нажмите на система,
Перезагрузка сервера через командную строку и планировщик задач |
Иногда сервера необходимо перезагружать, например, для установки обновлений. В рабочее время, зачастую, сделать это не возможно по причине того, что пользователи работают с сервером и прерывать их работу не вариант. Конечно, можно или задержаться на работе или прийти раньше для выполнения перезагрузки… Но гораздо проще и удобнее запланировать перезагрузку через диспетчер задач.
Для начала рассмотрим, как перезагрузить (или выключить) систему через командную строку. В этом нам поможет утилита shutdown.exe. Не будем рассматривать все возможные параметры использования, их можно посмотреть запустив программу из консоли с параметром /? или просто без параметра, рассмотрим набор параметров, который использую я.
shutdown.exe /r /f /t 90 /d p:2:16 /c "Перезапуск для установки обновлений"
в данном случае:
/r — перезагрузка сервера
/f — принудительное закрытие всех приложений.
/t 90 — время ожидания до начала перезагрузки 90 сек.
/d p:2:16 — указание причины перезагрузки, которая отобразиться в системном журнале. В данном случае, мы указали:
p — запланированная перезагрузка, 2:16 — «Операционная система: Установка пакета обновления (Запланировано)»
/c «Перезапуск для установки обновлений» — комментарий в свободной форме длинной не более 512 символов.
Итак, после выполнения данной строки на экране появится окно с указанным нами комментарием.
Пока идет указанное нами время ожидания, есть возможность прервать запуск перезагрузки в случае необходимости выполнив shutdown.exe /a в командной строке.
После окончания времени ожидания станция будет перезагружена. При этом в системный журнал попадет запись о перезагрузке, ее причинах и нашим комментарием.
Таким образом, если за серверами следят несколько Администраторов, у них не будет вопросов почему сервер перезагружался.
Для того чтобы запланировать перезагрузку, разумно использовать планировщик задач. Не буду здесь описывать как создавать в нем задачи, отмечу только, что параметры командной строки следует вынести в соответствующую строчку, как на скриншоте
Обратите внимание, что путь я преобразовал через системную переменную:
%SYSTEMROOT%System32shutdown.exe
Таким образом, не важно на какой диск установлена система, программа запустится.
Созданную задачу можно устанавливать на определенные дату/время с повторением или без по вашему желанию. Система будет перезагружена в назначенное время и в системном журнале останется соответствующая запись.
Разумеется, вы можете экспортировать созданную задачу в xml-файл и использовать как шаблон при создании подобной задачи на другом сервере вашей сети.
Следует также отметить, что таким же образом можно перезагрузить (или выключить) удаленный компьютер, если использовать параметр /m ИМЯ_КОМПЬЮТЕРА.
Утилита Shutdown имеет и оконный интерфейс, для этого утилиту следует запустить с ключом /i
Данный диалог позволяет выполнить перезагрузку на компьютерах сети (AD) без использования командной строки.
Статьи в тему:
Shutdown (technet)
Перезагрузка или завершение работы удаленного компьютера и документирование причины
(Visited 2 317 times, 1 visits today)
Разрешение удаленной перезагрузки в брандмауэре
Шаг 1. На удаленном ПК нажать клавиши Win R, напечатать «firewall.cpl» и нажать «OK».
На удаленном ПК нажимаем клавиши Win R, печатаем «firewall.cpl» и нажимаем «OK»
Шаг 2. В открывшемся окне щелкнуть по ссылке «Allow the app…» (Разрешить запуск…)
В открывшемся окне щелкаем по ссылке «Allow the app…»
Шаг 3. Щелкнуть «Change Settings» (Изменить параметры) справа вверху окна.
Щелкаем «Change Settings»
Шаг 4. Найти внизу списка строку «Windows Management…» (Инструментарий управления Windows (WMI)) и выделить ее галочкой слева. Если локальный и удаленный ПК работают в публичной сети, также поставить галочку в «Public» (Публичный) в этой строке справа. Нажать «OK».
Строку «Windows Management…» выделяем галочкой слева, ставим галочку в «Public» и нажимаем «OK»
Теперь брандмауэр будет разрешать удаленную перезагрузку ПК.
Способ 4: «сведения о системе»
Искомую информацию можете узнать также с помощью «родных» инструментов Виндовс 7. Прежде всего, выясним, как это предпринять с помощью раздела «Сведения о системе».
- Чтобы перейти в «Сведения о системе», щелкайте «Пуск». Далее выбирайте «Все программы».
- Затем перейдите в папку «Стандартные».
- Далее щелкайте по каталогу «Служебные».
- Открывается перечень утилит. Выбирайте в нем «Сведения о системе».
Также в искомое окно можно попасть и другим способом, но для этого нужно запомнить комбинацию клавиш и команду. Наберите Win R. В поле «Выполнить» введите:
msinfo32
Щелкайте Enter или «OK».
- Независимо от того, будете ли вы действовать через кнопку «Пуск» или при помощи инструмента «Выполнить», запустится окошко «Сведения о системе». В нем в одноименном разделе ищем параметр «Изготовитель». Именно то значение, которое будет соответствовать ему, и указывает на производителя данного компонента. Напротив параметра «Модель» указано наименование модели материнки.
Способ 5: «командная строка»
Выяснить наименование разработчика и модели интересующего нас компонента можете и путем ввода выражения в «Командную строку». Причем, вы это можете выполнить, применив несколько вариантов команд.
- Чтобы активировать «Командную строку», нажимайте «Пуск» и «Все программы».
- После этого выберите папку «Стандартные».
- В открывшемся перечне инструментов выберите название «Командная строка». Кликайте по нему правой кнопкой мышки (ПКМ). В меню выбирайте «Запуск от имени администратора».
- Активируется интерфейс «Командной строки». Чтобы получить сведения о системе, введите следующую команду:
Systeminfo
Щелкайте Enter.
- Начинается сбор сведений о системе.
- После окончания процедуры прямо в «Командной строке» отобразится отчет об основных параметрах компьютера. Нас будут интересовать строки «Изготовитель системы» и «Модель системы». Именно в них отобразится соответственно названия разработчика и модели материнской платы.
Существует и иной вариант отобразить нужные нам сведения через интерфейс «Командной строки». Он еще более актуальный в связи с тем, что на некоторых компьютерах предыдущие способы могут не работать. Конечно, таких устройств далеко не большинство, но, тем не менее, на части ПК только нижеописанный вариант позволит выяснить волнующий нас вопрос с помощью встроенных инструментов ОС.
- Для выяснения названия разработчика материнской платы, активируйте «Командную строку» и вбейте выражение:
wmic baseboard get Manufacturer
Нажимайте Enter.
- В «Командной строке» отобразится наименование разработчика.
- Для выяснения модели, введите выражение:
wmic baseboard get product
Снова нажимайте Enter.
- Наименование модели отобразится в окошке «Командной строки».
Но можно не вводить по отдельности эти команды, а вставить в «Командную строку» сразу одно выражение, которое позволит определить не только марку и модель устройства, но и его серийный номер.
- Эта команда будет выглядеть так:
wmic baseboard get manufacturer, product, serialnumber
Нажимайте Enter.
- В «Командной строке» под параметром «Manufacturer» отобразится наименование изготовителя, под параметром «Product» — модель компонента, а под параметром «SerialNumber» — его серийный номер.
Кроме того, из «Командной строки» можно вызвать знакомое нам окно «Сведения о системе» и посмотреть там нужную информацию.
- Введите в «Командной строке»:
msinfo32
Щелкайте Enter.
- Запускается окно «Сведения о системе». Где искать в этом окошке нужную информацию, было уже подробно рассказано выше.
Урок: Включение «Командной строки» в Windows 7
Удалённое управление питанием и перезагрузкой компьютера, при помощи внешнего девайса
Каждый пользователь компьютера сталкивался хотя бы раз в своей жизни с такой ситуацией: ты ушёл к себе на работу, почти доехал до неё и вдруг вспомнил,- что забыл взять со своего личного компьютера какую-то очень важную вещь.
Ехать обратно — опоздаешь на работу. А ведь ситуация может развиваться и гораздо более драматично: допустим, человек поехал куда-то далеко за рубеж, в отпуск, и там ему приходит важный звонок, по результатам которого ему необходимо передать своему визави,- определённые документы. А документы остались дома! А дом находится за границей!
Или вот ещё такая беда: ваш персональный компьютер является мощной графической станцией, на которой установлено множество тяжёлых программ для работы с графикой, программными продуктами. А вы перемещаетесь по городу, имея в руках всего лишь «тонкий» клиент, в виде ноутбука…
Из этого описания становится понятно, что «тонкий» клиент не обладает соответствующей производительностью, для запуска множества высокопрофессиональных программ и проектов. Да и если даже он у вас достаточно мощный, — это в принципе неудобно, каждый раз синхронизировать проекты с «тонким» клиентом. Как быть в описанных выше ситуациях — мы и поговорим в этой статье.
На самом деле, указанная проблема очень легко решается: установкой на ваш персональный компьютер системы удалённого включения/выключения и перезагрузки. Этот подход позволит всегда иметь под рукой всю мощь вашей домашней машины и все необходимые документы, и проекты, хранящиеся на ней.
До начала описания своей разработки, хочу сказать, что конечно, она не является единственно возможным способом для удалённого включения выключенного компьютера. Например, хорошо известна технология Wake-on-LAN. Суть этой технологии заключается в том, что она позволяет включить выключенный компьютер, отправкой специального пакета на его MAC-адрес.
Сетевой адаптер компьютера, поддерживающего Wake-on-LAN, находится в этот момент в режиме пониженного потребления и анализирует все пакеты на него. Если одним из поступающих пакетов окажется так называемый magic packet, сетевой адаптер выдаст сигнал на включение питания компьютера.
Согласно wiki: Magic packet — это специальная последовательность байтов, которую для нормального прохождения по локальным сетям можно вставить в пакеты транспортного уровня, не требующие установки соединения (например, протокол UDP или устаревший IPX). Обычно для Wake-on-LAN пакеты протоколов верхнего уровня рассылают широковещательно, так как в случае динамического присвоения адресов неизвестно, какой IP-адрес соответствует какому MAC-адресу. Однако, для корректного прохождения через маршрутизатор, запрещающий широковещательные пакеты, можно послать пакет по какому-то определённому адресу.
Из минусов данной технологии стоит отметить, что она:
- должна поддерживаться аппаратно (например, мой компьютер её не поддерживает, насколько мне известно);
- как пишут некоторые пользователи, наблюдаются проблемы с восстановлением работы, если пропадало напряжение в сети или компьютер вынимали из розетки;
- является небезопасной, хотя бы даже из-за этого.
Понимаю, что вы мне ответите, что «жить вообще вредно, но это не значит, что не надо жить».
В любом случае, я подумал, что создание девайса, о котором пойдёт дальше речь, будет интересной затеей, так как:
- это более безопасно, чем Wake-on-LAN;
- можно установить даже на устройства, не поддерживающие Wake-on-LAN;
- прошивка устройства снабжена средствами восстановления связи, после пропадания питания/перезагрузки;
- позволяет принудительно перезагрузить «зависший» компьютер — удалённо;
- в принципе интересно, так как позволяет реализовать новый девайс на esp32, в рамках растущего «интернета вещей».
Почему я выше выделил пункт о принудительной перезагрузке: в период активного «сидения на удалёнке» во время пандемии, мне неоднократно приходилось сталкиваться с тем, что мой рабочий компьютер зависал и работа останавливалась на целый день, потому что специалисты IT службы — тоже на удалёнке. И им приходилось ехать в офис, чтобы «клацнуть» reset моего компьютера! И это — международная компания с множеством офисов…
Некоторое время назад, решение указанной проблемы было достаточно затруднённым: необходимо было обладать достаточно высоким уровнем профессионализма и наличием глубоких знаний в области электроники, чтобы собрать требуемое для решения этой задачи устройство.
С появлением платформы Arduino, данная задача существенно облегчилась, однако, она продолжала оставаться достаточно неудобной в своей реализации, ввиду наличия клубка проводов, соединяющих требуемые компоненты, либо, ввиду необходимости покупки соответствующих wi-fi шилдов.
В текущее же время, этот вопрос ещё более облегчился, из-за появления платы espressif esp32. Для тех, кто не знает, это двухъядерный модуль, содержащий множество необходимых для любого самодельщика свойств. В рамках же данного проекта, нас будет интересовать наличие встроенного wi-fi модуля.
Использование этой платы позволит нам легко и просто построить требуемое устройство, не загромождая всё проводами и за достаточно малую цену. Рискну предположить, что суммарная стоимость компонентов нашего решения не превысит 350-400 руб.
Для того, чтобы создать устройство, нам понадобится всего лишь четыре резистора, два мосфет- транзистора и плата 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, и она отчиталась внизу, о выполнении задания:
То есть, для работы всей системы нужны:
Хорошая инфографика, о работе протокола mqtt приведена на картинке ниже:
Источник картинки: wikihandbk.com
И работает оно так (текст оттуда же):
Картинка напрямую не относится к нашему случаю, она показывает пример, как это всё может работать, если использовать для включения светодиод и кнопку.
Модифицируем её для нашего случая:
Прошивка проекта написана в 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), а скорее даже необходимостью иметь возможность доступа к своему пулу рабочих программ, которые установлены только на домашнем компьютере.
Успехов вам в сборке этого устройства!