PC電源遠隔制御


遠隔地(会社や自宅など)にあるPC電源の遠隔制御を紹介します。
最近のほとんどのPCにはWake ON LANという機能があるので、これを利用します。



@スマホや携帯から自宅宛にメールを送ります。
A自宅のRaspberryがメールを受信し、同じLAN上のPCにWake Up LANの信号(マジック・パケット)を送ります。
Bその結果をメールで返信します。
Cスマホや携帯でメールを受け取ります。

でコンピュータを起動するには、起動させたいコンピュータ側で次の準備をする必要があります。
・Windows OSでの設定(起動させたいコンピュータ側)
・BIOS/UEFIセットアップでの設定(起動させたいコンピュータ側)

設定内容はPC毎に変わりますので、こ ちらなどを参考にしてください。

次にRaspberry側にマジック・パケット送信ツールをセットアップします。

$ sudo apt-get install wakeonlan

次に起動させたいコンピュータのMACアドレス(物理アドレス)を調べます。
WindowsPCならコマンドプロンプトから「ipconfig /all」で調べることができます。

C:\Users>ipconfig /all
(中略)
イーサネット アダプター ローカル エリア接続:

   接続固有の DNS サフィックス . . . : PCI
   説明. . . . . . . . . . . . . . . : Intel(R) 82566DC-2 Gigabit Network Connection
   物理アドレス. . . . . . . . . . . : 00-19-D1-FA-XX-YY →  MACアドレス

起動させたいコンピュータの電源を切ってからRaspberry側で以下のコマンドを実行します。

$ wakeonlan 00:19:D1:FA:XX:YY

正常に電源が入ったら その4で 作成したスクリプ ト(biff.sh)を以下の様に変更します。

<追記>
Windowsを7から10にアップデートしたらWake On LAN(WOL)が動かなくなりました。
調べてみたらFAQみたいで、結構あちこちに解決方法がありました。
私はこ ちらを参考にさせていただきました。
</追記>

赤字部分が今回変更した部分です。

#!/bin/bash
/home/pi/biff/biff /home/pi/biff/config.ini
ret=$?
if [ $ret -eq 1 ]; then
  temp=`cat /sys/class/thermal/thermal_zone0/temp`
  temp1=`echo ${temp} | cut -b 1-2`
  temp2=`echo ${temp} | cut -b 3-5`
  echo "現在のCPU温度は${temp1}.${temp2}℃です" > /home/pi/mutt.txt
  mutt -s お知らせ 送信先のメールアドレス  < /home/pi/mutt.txt
fi
if [ $ret -eq 2 ]; then
  temp=`sudo /home/pi/BMP085-2/readBMP085` → この部分はお使いのセンサーに合せて変更してください。
  echo "${temp}" > /home/pi/mutt.txt
  mutt -s お知らせ
送信先のメールア ドレス  < /home/pi/mutt.txt
fi
if [ $ret -eq 3 ]; then
  fswebcam -d /dev/video0 -r 640x480 -D 5 /home/pi/test.jpg 2> /home/pi/fswebcam.log
  mutt -s お知らせ 送信先のメールアドレス -a /home/pi/test.jpg < /home/pi/fswebcam.log
fi
if [ $ret -eq 4 ]; then
 wakeonlan 00:19:D1:FA:XX:YY
  echo "00:19:D1:FA:XX:YYの電源を入れました" > /home/pi/mutt.txt
  mutt -s お知らせ 送信先のメールアドレス  < /home/pi/mutt.txt
fi

スマホなどから「Raspberry君」宛てに、「PC電源ON」 のタイトルのメールを送信してください。
暫くして、上記のスクリプト(biff.sh)を実行すると、00-19-D1-FA-XX-YYの物理アドレスのPCの電源が入ります。

多分おしまい..