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つを入力する必要があります。
- Wi-Fi のSSIDとパスワード
- ネットワークアドレス
- 起動させたい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系には疎いため、協力いただける方を大募集です。