はじめに
前回の記事から引き続きラズパイ回となります。
実は前々からやりたいことがありまして、それは外から家のパソコンを使うということ。今回は、そのためにローカルでパソコンの電源のオンとオフを行えるようにしましたので紹介します。
なお電源のオフはWindowsのリモートデスクトップで電源のオフが行えるため、今回は、前回用意したラズパイZeroを用いて、ネットワーク上からパソコンを起動させるという方法を説明していきます。
ローカルでパソコン遠隔起動
遠隔で起動させる方法
パソコンを遠隔で起動させる場合に最も有名なのが、WoL(Wake-on-LAN)があります。方法は、BIOSとOSで事前にLANのデバイスにWoLを設定しておき、対象のMACアドレスへマジックパケットを送信することで電源起動させるという方法です。ただしこの方法は無線LANを使用しているパソコンには利用できません。
無線LANが接続されているパソコンには、WoWLAN(Wake on Wireless LAN)という方法があります。ただし、この方法はパソコンをスリープ状態にしておく必要があるなど、制約があるようです。
今回は、ラズパイのGPIOを用いて、パソコンの電源をオンにしたいと思います。
ラズパイのGPIOで電源をつけるには
パソコンの電源ボタンを押すという操作を電気で行うことで電源を付けます。
パソコンの電源ボタンはマザーボードのシステムパネルヘッダーの電源端子に接続されているため、ここをショート(メーク)させれば電源をONにすることができます。
TUF GAMING H670-PRO WIFI D4 のデータシートから引用
メークする仕組みを作る
メークする電気回路を作る場合は、リレーという部品を用います。リレーにはいくつか種類があるのですが、稼働電力が小さい、稼働時の音がない、シンプルな回路構成ができる、フォトMOSFETのTLP241Aを用います。
TLP241Aについては、過去の私のブログで登場しているので、使い方はそこもご確認ください。TLP241Aは本当に使いやすくてオススメです!
ラズパイとパソコンと接続する
ラズパイは、GPIO17を接続します。端子については、WHだろうと他のラズパイと互換性をもっています。
あとは、勝手に外れないように、マスキングテープで補強します。
パソコン側は、PCケースの電源ボタンも使えるように電線を並列に接続します。
GPIOを操作するスクリプトを用意する
GPIOを操作するスクリプトは私が以前作った「GPIO.sh」を使うとよいです。
このGPIO.sh
があれば、次のように簡単にGPIOを操作できます。
# 出力ポートでHを出力(今回はメーク出力になる) ./GPIO.sh 17 output high # 1秒待つ sleep 1 # 出力ポートでLを出力 ./GPIO.sh 17 output low
この「GPIO.sh」を操作するための「PowerSwitch.sh」のようなものを作成して、次のように設定できるようにしておくと良いです。
以下は、実際に作った「on.sh
」です。
#!/bin/sh # 二重起動防止 pid=$$ filepath="${0}" if [ $pid != `pgrep -fo "/bin/sh ${filepath}"` ]; then return 1 fi # シェルスクリプトがある場所をカレントディレクトリにする cd `dirname $0` ./PowerSwitch.sh on sleep 1 ./PowerSwitch.sh off
完成!
実際にどのように起動するかを紹介します。
おわりに
これで家の中からではありますが、遠隔でパソコンを起動できるようになりました!
今後は、さらに家の外から室内のパソコンにアクセスするといった方法を準備していきたいと思います。
コメント