2014年10月13日

WOL(Wake On LAN)非対応のNUCにリモートから電源を入れる

去年購入したNUC(DC3217BY)ですが、投げ売りされていただだけあって有線LANを持たず、WOL(Wake On LAN)を使ってリモートから電源を入れることができませんでした。

なので今までは省スペースPCという事もあり電源入れっぱで運用していたのですが、さすがにそれだと電気代が気になってくるので、こちらの記事を参考にしてRaspberry Pi経由で電源を入れる機能に挑戦してみました。

ピンヘッダをショート?

PCに電源ボタン以外で電源を入れる場合、マザーボードから出ているピンヘッダをショート(短絡)させるらしいのですが、”ショートって壊れるイメージ”ってくらいド素人なので、まずはこちらの資料をみつつジャンパーコードを使って手動で試して(よく映画とかで盗んだ車のエンジンを入れるイメージw)みたところ、確かに電源が入りました。

パーツを調達


ピンヘッダから電源が入ることを確認できたので、早速アキバで必要なパーツを調達する事に。購入した(使った)パーツは以下の通り。
前にRaspberry Piに温度/気圧センサーをつけた時は、単純にジャンパーワイヤーで所定の箇所につなぐだけでよかったのですが、今回ははんだづけが必要な様子。

しかも「降圧」「抵抗分圧」など専門用語が飛び交ってて何がなんやら。。ググってみたところ、前者はRaspberry PiのGPIOから3.3Vの信号がくるのに対し、LK-RB1は2Vの入力感度になるため抵抗を使って電圧を落とす?必要があり、後者は抵抗を使ったその方法になるようです。

確かにこちらの計算式に従って計算してみると、確かに出力は2.2Vになり参考記事の値と一致しました。

ブレッドボードを使っての仮組みとテスト

パーツが揃った(LK-RB1は先にはんだづけして組み上げ)段階で、まずはブレッドボードとクリップ付コードを使って本当に動作するか仮組みしてしてみたところ動作せず。。

てかそもそもどこが悪いのかさっぱり分からないので、追加でテスターを調達して改めて仮組みしてみたところ、「パチッ」というリレーの音とともにPCとつなぐ部分端子からテスターの反応を確認する事ができました!

NUCに配線して本組み

動作確認が取れたところで、NUCのマザーボードにあるピンヘッダからリレースイッチまでのコードを配線。NUC側はケンジントンロックの穴にわずかな隙間があったので、そこにコード線を無理やり通して対応しました。最後にRaspberry Pi側から以下のプログラムを実行して電源が入るかをテストしたところ。。無事電源が入ることを確認!
#!/bin/bash
GPIO_ID=17
B_TIME=0.5
echo ${GPIO_ID} > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio${GPIO_ID}/direction
echo 0 > /sys/class/gpio/gpio${GPIO_ID}/value
echo 1 > /sys/class/gpio/gpio${GPIO_ID}/value
sleep ${B_TIME}
echo 0 > /sys/class/gpio/gpio${GPIO_ID}/value
一つ一つの作業自体は大変でしたが、電子工作?初心者には手軽でかつ実用的な範囲に収まってよかったです。でもテスター購入とかあって”電気代節約”という本来の目的とは程遠い結果になってしまったので、これを使って次のネタを考えねばと思っています(苦笑)