Пробуждение ПК по сети на Arduino

Пробуждение ПК по сети на Arduino

Подавляющее большинство современных сетевых плат имеют функцию 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[] = {0x00,0x1A,0x4B,0x38,0x0F,0x5C};

ether.sendWol (targetmac);

Полный пример работы с WOL можно найти в репозитарии GiHub.

Используя ПО анализатор сети (к примеру Wireshark) вы можете мониторить корректность отсылки пакетов от Arduino:

Здесь красным выделен широковещательный MAC-адрес, зеленым – IP и UDP протокол, голубым – MAC-адрес ПК, повторяющийся 16 раз.

Оригинал статьи на английском языке (перевод Колтыков А.В. для сайта cxem.net)


Категория: Arduino
Метки:

Написать коментарий

*
= 5 + 7

Добавить изображение

Последние статьи