リモートからPCとRaspberry Piを起動する方法 – IoTシステム運用を効率化!

みなさん、こんにちは。

IoTシステムを運用していると、「普段はデバイスの電源をオフにしておき、必要な時だけオンにしたい」というケースがよくありますよね。しかし、そのたびに現地まで足を運んで電源を操作するのは現実的ではありません。

そこで今回は、離れた場所からPCやRaspberry Piの電源を操作する方法を解説します。

 


 

PCをリモートから起動する | Wake-on-LAN (WoL) を活用する

 

PCを遠隔から起動するには、「Wake-on-LAN(WoL)」という機能を使います。これは、ネットワーク経由で「マジックパケット」と呼ばれる特殊な信号を送ることで、PCを起動させる技術です。

事前準備

WoLを使うためには、PC側でいくつか設定が必要です。

BIOS/UEFIの設定

まず、PCのBIOSまたはUEFI設定に入り、WoLを有効にします。

  • BIOS/UEFIへの入り方
    これはメーカーや機種によって異なります。PCのマニュアルを参照してください。
  • Wake-on-LANの有効化
    設定項目は「ACPI」や「APM」といった名前になっていることが多いですが、これもメーカーによって異なります。
    「Disable」になっていたら「Enable」に変更しましょう。
  • 節電モードの無効化
    「Deep Sleep」などの項目を探し、「Enable」になっていたら「Disable」に変更します。これは、PCが完全に電源オフになった際にネットワークアダプタへの電力供給が止まらないようにするためです。

OSごとの設定

OSによっても追加の設定が必要です。

Windowsの場合
  1. ネットワークアダプタのプロパティ設定
    • デバイスマネージャーから使用しているネットワークアダプタのプロパティを開きます。
    • 「詳細設定」タブで「Wake on Magic Packet」などの項目を「有効」にします。

       
  2. 高速スタートアップの無効化
    • 「コントロールパネル」>「システムとセキュリティ」>「電源オプション」>「電源ボタンの動作を選択する」へ進みます。
    • 「現在利用可能ではない設定を変更します」をクリックします。
    • 高速スタートアップを有効にする(推奨)」のチェックを外し、「変更の保存」をクリックします。
    • 高速スタートアップが有効になっていると、完全にシャットダウンされず、WoLが機能しない場合があります。

 

Debian / Ubuntuの場合
  1. ethtoolのインストール

    sudo apt install ethtool

    Red Hat系の場合はyumやdnfコマンドを使ってインストールしてください
     
  2. WoLの有効化
    一時的にWoLを有効にするには、以下のコマンドを実行します。

    sudo ethtool -s インターフェース名 wol g

    インターフェース名は、eth0enp0s3など、環境によって異なります。ip aコマンドなどで確認できます。
    この設定は再起動すると元に戻ってしまいます。
     
  3. WoL設定の永続化
    再起動後もWoLが有効になるように、以下のシェルスクリプトを作成します。
    そしてこのスクリプトに実行権限を与え、init.dに登録するか、systemdを使ってrootで自動実行させます。
#!/bin/bash

ethtool -s インターフェース名 wol g
exit

 


 

Wake-on-LANの実行

 

準備ができたら、実際にPCを起動してみましょう。

WindowsからWoLを実行する場合

PCを起動する側がWindowsの場合、WoLツールをダウンロードして使います。「wake on lan windows」などのキーワードで検索すれば、多くのフリーソフトが見つかりますので、使いやすいものを選んでください。

PC終了時の注意
WoLで起動させるPCは、完全にシャットダウンするのではなく、スリープ状態にすることをおすすめします。シャットダウンするとネットワークアダプタへの電源供給が止まり、WoLが機能しない場合があります。

Debian / UbuntuからWoLを実行する場合

  1. wakeonlanのインストール

    sudo apt install wakeonlan

    Red Hat系の場合はyumやdnfコマンドを使ってインストールしてください
     
  2. PCの起動
    以下のコマンドを実行します。

    wakeonlan 起動させたいPCのMACアドレス

    MACアドレスは00:11:22:33:44:55のような形式です。Windowsなら ipconfig /all で、Linuxなら ip a で確認できます。
    対象PCがすでに起動している場合は、起動済みか確認してから実行する以下のようなシェルスクリプトを作成すると便利です。
#!/bin/bash
/bin/ping 起動させたいPCのIPアドレス -c 1 >> /dev/null
if [ $? = 0 ]; then
 echo "PC is already turned on"
else
 wakeonlan 起動させたいPCのMACアドレス
 echo "Booting Up"
fi

PC終了時の注意
Linuxの場合、ethtoolでネットワークアダプタのWoLを永続化していれば、通常通りシャットダウンしても問題ありません。

 


 

Raspberry Piをリモートから起動する | スマートプラグを活用する

 

残念ながら、Raspberry PiはWake-on-LANに非対応です。そのため、別の方法としてスマートプラグを使用します。スマートプラグは遠隔から電源のオンオフを操作できる便利なデバイスです。

おすすめのスマートプラグ

手軽に入手でき、遠隔操作も可能なものとして「TP-Link」製のスマートプラグがおすすめです。

TP-Linkスマートプラグの遠隔操作

Pythonライブラリの「python-kasa」を使うと、TP-Link製スマートデバイスをコマンドラインやスクリプトから操作できます。

  1. python-kasaのインストール

    pip install python-kasa
     
  2. 使い方
    • 電源ON
      kasa --host スマートプラグのIPアドレス on
    • 電源OFF
      kasa --host スマートプラグのIPアドレス off
    • 電源OFF時の注意
      Raspberry Piの電源をOFFにする際は、事前にRaspberry Pi側でシャットダウン操作をしておくことを強くお勧めします。いきなり電源を切ってしまうと、OSが破損する可能性があります。

 


 

まとめ | リモート起動でIoTシステムをさらに快適に!

 

いかがでしたでしょうか? 今回ご紹介したWake-on-LAN(WoL)とスマートプラグを活用することで、遠隔地からでもPCやRaspberry Piの電源を自在に操作できるようになります。

特にIoTシステムにおいては、デバイスを必要な時だけ稼働させることで、消費電力の削減デバイスの長寿命化が期待できます。また、現地に赴くことなく電源をオンオフできるため、運用コストの削減管理の効率化にも大きく貢献するでしょう。

これらのリモート起動術は、一度設定してしまえば、あなたのIoTシステム運用を格段に快適にしてくれます。ぜひ、ご自身の環境に合わせてこれらの方法を試してみてください。

 

本日も最後までお読みいただきありがとうございました。

それでは、よいIoTライフを!

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール