Esp8266 e Wake on Lan — Ligando seu PC remotamente

Este tutorial ensina como usar uma placa ESP para ligar um computador remotamente através da tecnologia Wake-on-LAN (WOL). Após configurar a BIOS e obter o endereço MAC do computador, o código em Arduino é utilizado para enviar um pacote mágico que aciona o computador. O guia detalha cada passo, desde a configuração do ESP até a criação do servidor web para acionar o comando. O autor recomenda o uso do Visual Studio Code com a plataforma PlatformIO para facilitar o desenvolvimento. Ao final, o tutorial demonstra como acessar o servidor web para enviar o comando e ligar o computador remotamente.

Resumido por IA.

Se você é um dev empolgado como eu e quer achar utilidades para as plaquinhas “Esp” que você comprou, saiba que nesse artigo eu vou te ajudar a ligar o seu computador através da tecnologia Wake On Lan.

ATIVANDO A FUNCIONALIDADE NA BIOS

Sem enrolação e direto ao ponto.

Boa parte das placas de redes mais atuais já contam com essa tecnologia, porém a sua funcionalidade vem desabilitada de fábrica.

Vou deixar alguns prints aqui de como aparece na minha máquina. Pode variar um pouco de placa pra placa, mas tenta dar uma pesquisada para ver se você chega na mesma opção.

  1. Na tela inicial da BIOS, seleciono a opção Advanced Mode.

2) Seleciono novamente a aba Advanced e procuro pela opção APM Configuration.

3) Marque como Enabled na opção Power On By PCI-E.

4) Não se esqueça de salvar antes de sair das configurações.

DESCOBRINDO O MAC ADDRESS

Se você estiver usando o Windows, você pode ir no menu de configurações e selecionar a opção de Rede e Internet.

Clique em propriedades da rede que está ativa. A maioria das pessoas utiliza apenas uma placa de rede, mas se o seu caso for diferente, você precisa verificar qual irá funcionar.

E guarde esse o que estiver em “Endereço Físico”. No meu caso eu escondi por questões de segurança.

CODIFICANDO

Você não precisa fazer nenhum “jumpeamento”, conexão nem nada em questão de hardware. Apenas anexar o código abaixo e alimentar a energia do seu esp. Eu vou te explicando parte por parte para você entender.

No meu caso eu utilizo o Visual Studio Code com o Platform.io. Para preparar o seu ambiente, você pode dar uma estudada começando por aqui: https://platformio.org/install/ide?install=vscode .

Primeiramente instale essa biblioteca em seu projeto:

Em seguida utilize esse código abaixo e envie para o seu ESP! O código está bem explicado. Basicamente você precisa configurar as 3 constantes que contém o SSID (do seu Wifi), a senha e aquele MacAddress que conseguimos lá atrás.

				
					#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#include <WakeOnLan.h>
#include <ESP8266WebServer.h>

WiFiUDP UDP;
WakeOnLan WOL(UDP);

// ESPECIFICA A PORTA EM QUE O SERVIDOR FUNCIONARÁ.
ESP8266WebServer server(80);

// INFORME AS CONFIGURAÇÕES DO WIFI
const char *ssid = "xxxxx";
const char *password = "xxxxxxx";

// INFORME O MACADDRESS
const char *MACAddress = "xxxxxxxxxxx";

void wakeMyPC()
{
  // ACENDE O LED NATIVO DO NODEMCU
  digitalWrite(LED_BUILTIN, LOW);
  Serial.print("Enviando pacote Wake on Lan!");
  WOL.sendMagicPacket(MACAddress);
  delay(1000);
  // APAGA O LED NATIVO DO NODEMCU
  digitalWrite(LED_BUILTIN, HIGH);
  server.send(200, "text/plain", "Pacote mágico enviado. Wake on Lan!");
  Serial.print("Pacote mágico enviado. Wake on Lan!");
}

void setup()
{
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, HIGH);
  WOL.setRepeat(3, 100);
  Serial.begin(9600);

  // CONECTA NO WIFI
  Serial.print("Conectando em ");
  Serial.println(ssid);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi conectado.");
  Serial.println("Endereço IP: ");
  Serial.println(WiFi.localIP());

  // Inicia o servidor
  server.begin();
  Serial.println("Servidor iniciado.");

  WOL.calculateBroadcastAddress(WiFi.localIP(), WiFi.subnetMask());

  // Rotas
  server.on("/wakeMyPC", wakeMyPC);
}

void loop()
{
  server.handleClient();
}
				
			

Após tudo pronto e o código já no seu Esp, você vai analisar o terminal para descobrir em qual IP ele está rodando.

Sabendo disso, desconecte-o do PC, ligue-o em outra fonte de energia, e desligue seu PC.

No seu navegador (do celular por exemplo) você deverá acessar o endereço http://192.168.3.48/wakeMyPC .

Se o seu PC estiver desligado, nesse momento ele deverá ligar.

Também é possível enviar esses comandos via Telegram, mas fica pra outro artigo.

Você também pode ver esse projeto no meu GitHub.

Compartilhe:

Facebook
Twitter
LinkedIn
X
Telegram
WhatsApp
Email
Print
Threads
Reddit

Paulo Junior

Dev Raiz

Profissionalmente atuando desde 2002, mas com o primeiro acesso à internet em 95. Comecei com Cobol, passei por várias linguagens e atualmente me conforto no C#, Flutter, Angular e Python. Full stack raiz mesmo. Atuando em infra, banco, programação,arquitetura, design e o que for preciso pra fazer funcionar.

Deixe seu comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Sobre

A ideia é compartilhar uma parte da minha experiência na área de TI. É quase um dump do meu aprendizado. Fique a vontade para participar e contribuir.

Me segue aí!

Todos os direitos reservados. (Na medida do possível, né?)