2011年7月20日水曜日

帰宅すると勝手に部屋のエアコンと照明が点くようにしてみた

部屋の照明のスイッチを赤外線リモコン化 しました!
USB赤外線リモコンをコマンドラインから操つれるようにしました!

しかし、この二つは準備段階ですっ!
私が小学生のころからの野望・・・部屋に帰ってくると勝手にエアコンが点いたり、PCや照明の電源が入るようになるための準備にすぎなかったのですっ!

ステータス情報の保持

照明のON/OFF、エアコンのON/OFF、PCのON/OFFなんかを複数台のマシン上で同期を取る方法として、最初はWebサーバーにCGI的なスクリプトを置いてステータスを投げればいいかな?と思ったんだけど、各種スクリプトやプログラムから状態を取得するのにWebにアクセスしないといけなくて色々面倒・・・ってことで、DropBoxを使うことにした。
DropBoxのステータスフォルダに状態を書いたテキストファイルを放りこんで同期はDropBoxに任せるという方式。
例えばlight_on.batを実行すると照明をつけてlight.txtにTrueって書き込んだファイルを作る。別のPCからその状態が取得できる。

自分が家に帰ってくるとエアコンがONになる仕組み

自分の居場所の検知に、iPhoneを使うことにした。iPhoneが家に帰ってきて家庭内の無線LANに繋がると、PC上からMACアドレスを取得できるようになり、それを検知することで自分が自宅に帰ったと認識!それをトリガーで照明とエアコンを点ける。

iPhoneの検知にはPowerShellのスクリプトを使ってみた。
    ping 192.168.1.100 -n 1
    if(arp -a | select-string xx-xx-xx-xx-xx-xx -quiet)
    { 
        sc detect_iphone.log True
        echo True
    }
    else
    {
        sc detect_iphone.log False
        echo False
    }

予めiPhoneへのIPアドレスは固定で割り振るようにしておいて、pingを投げる。このPingの応答をもって存在チェックしてもいいんだけど、念の為にMACアドレスをチェックして存在判定をしてる。

これで、いろんなモノを複数の場所のPCと連携して制御する基本ができたと思う!次はGoogle Latitudeと連携して自分の位置をトリガーにしたりしてみたいなぁ

0 件のコメント: