WoLパケットを送る for Universal ESPduino

Universal ESPduino から WoLパケットを送る装置の作り方です。
ボタンを押すと設定したPCがWoLパケットによって起動します。

WoLとは


WoL とは Wake up on LAN の略で、通常PCを起動させるにはPCの前まで行って電源ボタンを押す必要がありますが、 LANで接続されたPCはリモートで起動させる事ができる仕組みを持っています。
WoLパケットと呼ばれるPC毎に決まった特別なデータをLAN上に流してやると、それを受信したLANアダプタがPCの電源を叩く仕組みです。

これを動作させるためには、立ち上がるPCのハードウェアとOSにWoLを許可しておく必要がありますので、手順などは以下のページを参考に設定してください。
http://www.atmarkit.co.jp/ait/articles/0602/25/news014.html

Universal ESPduino


そして、今回WoLのパケットを送信するのが、 Universal ESPduino です。

http://ghz2000.com/wordpress/?p=804

Universal ESPduinoを組み立てたら、16番ポートをプルアップし、ボタンを接続するだけの簡単な作業です。

今回は、とっても大きなタクトスイッチを起動ボタンとして使います。
とっても大きなタクトスイッチは部品の足も大きいので、スルーホールを1.5mmのドリルで広げました。

タクトスイッチはプルアップした信号線をGNDに落として使うほうが信号の安定性が良いです。
信号線は10kΩでプルアップします。

背面は下の画像のようになっています。タクトスイッチの足は上側2つと下側2つが共通になっていて、ボタンを押すと上側と下側が導通するようになっています。
ここでは、上側に16番ピンと、10kΩの抵抗を接続し、10kΩの抵抗の反対側を3.3Vに接続してあります。また、下側はGNDに接続されています。

ハードウェアは以上で完成です。

Arduino スケッチ (プログラム)


次はプログラムです。このボタンを押した時と、WEBページにアクセスされた時にWoLパケットを送信するサンプルプログラムを作成しました。

ソースコードはこちら
https://github.com/ghz2000/ESPduinoWoL

プログラムをダウンロードしたら、以下の3つを入力する必要があります。

  1. Wi-Fi のSSIDとパスワード
  2. ネットワークアドレス
  3. 起動させたいPCのMACアドレス

1.Wi-FiのSSIDとパスワードは、AdvancedOTA.h の中の ap_ssid, ap_pass, sta_ssid, sta_pass, にAPモードSSID,パスワード、 STAモードSSID、 パスワードを入力します。
※APモードは使用しなくても問題ありません。

2.ネットワークアドレスは、WoL.ino の中の ipBroadcast(192.168.230.255) を適切なネットワークアドレスに変更します。 192.168.11.x/24 なネットワークの場合、 192.168.11.255 となります。

3.起動させたいPCのMACアドレスは、同じく WoL.inoの中の#define MACADDR “000d5ec70e04” を起動したいPCのMACアドレスに変更してください。 WindowsPCのMACアドレスは cmd.exe から ipconfig /all で見ることが出来ます。

完成


以上でハードウェアとソフトウェアの準備は完了です。
PCをスタートボタンから終了、またはスリープさせて、Universal ESPduinoのボタンを押してみてください。 しばらくしてPCが立ち上がるはずです。

また、WEBブラウザから 以下のページへアクセスすることでも WoLパケットを送信させることが出来ます。 ただし、これは同一ネットワークに接続されたブラウザのみ有効です。
http://esp8266.local/wol

IFTTTやAWS IoT Hub などに接続すると、外出先からでもPCをリモートで起動させることができるようになると思います。

Ghz2000 でも遠隔地から簡単なコントロールが出来るようなWEBサービスを提供しようとPHPの勉強から始めています。 私はWEB系には疎いため、協力いただける方を大募集です。

コメントを残す