← Blog 一覧へ

ESP32を使ったWOLの作り方

·6 min read
ESP32WOL

こんにちは、ほたかっち です。今回はESP32を使って外部からPCを起動できるWOLを作りたいと思います。

WOLとは

WOLとは Wake On LAN の略で、起動したいMACアドレスを指定しマジックパケットという特殊なパケットを送信することにより任意のコンピューターを起動させることができます。
しかし、ルーターをVPNでつなぐなどをしないと遠隔で起動できるのですが外部からの起動はできません。

そこで、今回はESP32というマイコンを使っていこうと思います。今回の目標はこちらです。

  • ESP32を使ってPCを起動できる。

ESP32とは

ESP32は,Wi-FiやBluetooth通信が可能なマイコンです。
他のユーザーもESP32を使ってWake On LANを実装している例が多くまずはこれを試してみました。

僕はESP32-S3を使用していますがESP32でも行けます。購入はこちら

実行環境と設定

PCにWake On LANパケットを送信するために,PCの設定を変更します。

  • PCの設定(実行環境)
    OS:Windows 11/10
    接続:有線LAN(イーサネット)に接続している必要がある

  • 必要な設定
    IPアドレスの固定
    ネットワークアダプタの設定
    BIOS/ UEFI の設定
    シャットダウン/ ハイブリッドシャットダウン
    マジックパケットでの起動を有効にする
    (設定方法はまた後日まとめます)

  • 必要な情報
    物理アドレス(MACアドレス)

Arduino IDEの設定

今回はArduino IDEを使ってプログラムを書き込んでいきたいと思います。現時点のバージョンは2.3.10を使っています。ESP32を使えるようにするには
「追加のボードマネージャのURL」と「ESP32プラットフォーム」のインストールが必要になります。

  1. 追加のボードマネージャのURL
    ファイルから「基本設定」を開きます。
    安定版リリースリンク:
    https://espressif.github.io/arduino-esp32/package_esp32_index.json
    のURLを「追加のボードマネージャのURL:」にペーストしOKをクリック
    追加ボードマネージャのURL

  2. ESP32プラットフォーム
    ボードマネージャから「ESP32」と入力して検索し,esp32 by Espressifをインストール
    esp32 by Espressif(バージョン 3.3.12)
    ESP32プラットフォーム

接続には,付属のケーブルを使用します。
USBケーブルには充電専用と通信用の2種類があるので,通信用ケーブルを使用してください。
初めてESP32を接続した場合,ドライバがインストールされていない可能性があります。
デバイスマネージャ
以下のリンクから,ドライバをダウンロードしてインストールします。
Silicon Labs CP210x USB to UART Bridge Driver
Windows OSであれば「CP210x Universal Windows Driver」をダウンロード。
設定が完了すると,「Silicon Labs CP210x USB to UART Bridge(COM5)」が表示されます。

  1. ボードとポートの選択
    Arduino IDE に戻り,上部のツールメニューを開きます。
    ボード > esp32 > ESP32 Dev Module を選択します。
    次に再びツールメニューを開き,ポート > COM5(PCによって異なる)を選択します。
    ボード ポート

Wake on LAN テストプログラムを作成

インストールするライブラリ:
WakeOnLan by a7md0(バージョン 1.1.7)
以下のコードを新規スケッチに貼り付けます。

#include <WiFi.h>
#include <WiFiUdp.h>
#include <WakeOnLan.h>

// Wi-Fi設定
WiFiUDP UDP;
WakeOnLan WOL(UDP);
const char* ssid = "SSID";  // ここにWi-FiのSSIDを入力
const char* password = "PASSWORD";  // ここにWi-Fiのパスワードを入力


// MACアドレス設定
const char* pcMacAddress = "AA:BB:CC:DD:EE:FF";  // ここに自宅PCのMACアドレスを入力

void setup() {
  Serial.begin(115200);

  // Wi-Fiに接続
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("WiFiに接続中...");
  }
  Serial.println("WiFiに接続完了");
  Serial.println(WiFi.localIP());

  // マジックパケット送信
  WOL.sendMagicPacket(pcMacAddress);  // MACアドレスを使用してマジックパケットを送信
  Serial.println("Wake on LANパケット送信");
}

void loop() {
  // 何も実行しません
}

プログラムの設定

上記のプログラムを使用する前に
Wi-FiのSSIDとPASSWORD,PCの物理アドレス(MACアドレス)を書き換える

テストプログラム書き込み・実行

準備ができたら,書き込みボタンをクリック。
書き込みが完了すると,プログラムが自動的に実行されます。

PCがすでに起動している場合は,電源はついたままなので,プログラムが実行されても何も起こりません。PCを一度シャットダウンしてから,Wake On LANを試します。

ESP32につないだUSBケーブルをUSB-ACアダプタにつなげてコンセントに差し込みました。

コンセントに差すとPCの電源が起動します。
これでESP32からPCを起動することができました。ここまでがESP32を使ってPCを起動するWake On LANを実際に試してみた結果です。

まとめ

パケットを送信してPCを起動することができました。ですがまだ外部から起動することができません。今度はGAS(Google Apps Script)を使って遠隔から起動してみようと思います。次はこちら

https://qiita.com/yhotta240/items/526c714efefdbdd19372

© 2026 Hotakacchi. All rights reserved.