セミオート・スマートホームをつくる その1 前置き

semi-smart-home-2

いつもラピロを使って遊んでいるのはそれはそれで楽しくて良いのですが、たまには(?)実用的なものでもつくりましょうかということで、自分のおウチをセミオート・スマートホームにしてみたと思います。

「セミオート・スマートホーム」というのは、今自分が勝手にそう名付けたのですが、フル・オートメーションなスマートホームではなく、微妙に人の力を借りるスマートホームのことです。

具体的にイメージしやすいように、ロボット掃除機のルンバの使い方をちょっと考えてみてください。

あれは決して、カンペキに全自動でお掃除してくれるワケではなく。大概の人は、ルンバにお掃除してもらうために、ルンバの邪魔になるものを床に極力置かないように、事前に人が簡単な整理整頓をしているハズです。

つまり、すべてを機械に任せることは難しくても、人がちょっと力を貸してあげれば、あとは機械が快適な暮らし空間(=スマート・ホーム)を提供してくれることもあるだろう、という考えです。

 

今回実現するのは、『ちょっと賢いエアコンONタイマー』です。ウチの夏場の平日の生活パターンは

  1. 朝、寝室で目覚める
  2. リビングに移動、暑いのでエアコンをON

というのがお決まりです。これを自動化して、自分がリビングに行く頃には適度に冷やしておいてほしい。

毎日入タイマー設定すればいいじゃん

という話なのですが、ウチのエアコンはそんな高度なタイマー機能はありませんし、『節電』を意識すると、単純な入タイマーだけだとちょっと問題があります。

 

ウチの家の図面はだいたいこんな感じです。

semi-smart-home-1

単純にリビングのONタイマーを使うときに何が問題かというと、

「リビングのドアとか窓が開いている状態でエアコンをつけると、なかなか部屋が冷えなくて、電気代を無駄にする可能性がある」

ということです。

真の(?)スマートホームなら、ここでドアかとか窓が開いているときには勝手に閉めた上でエアコンをONにしてくれるのかもしれませんが、残念ながらウチには自動ドアや自動窓はありませんし、また、ドアと窓を自動開閉させるほどのパワーを持った動力源もありません。

ということで、ドア・窓の開閉は人の手に任せます。夜寝る前に人がきっちりドアを閉めておけば、起床時刻の少し前に自動でエアコンをONにして部屋を冷やしておいてくれる。でも、どこかのドア・窓が開いていれば、節電を優先してエアコンをONにしない。こんな感じのシステムを作ってみたいと思います。余力があれば、温度が一定以上だったら、という条件を付け加えてもいいかもしれません。

 

ではでは、さっそく。今回使うものはこちら。

  • Raspberry Pi
  • Arduino Fio + XBee
  • XBeeドア開閉センサ×3個
  • IRKit

Raspberry Piは常時稼働のホームサーバとして動作させます。Arduino FioとI2Cで通信し、Arduino FioはZigBeeで離れた場所のXBeeドア開閉センサの状態を取得します。つまり、Raspberry PiはArduino Fioを経由して、遠隔地のドアの開閉状態を検知します。

ウチは今までの(ラピロ関係の)積み重ねで、こういうややこしい形での情報取得になってしまっているのですが、別にArduino Fioを経由せず、直接Raspberry PiにXBeeを繋げる方が素直だと思います。

IRKitはエアコンの制御に使います。Raspberry Piが定時になったらXBeeのドア開閉センサの状態を確認し、条件を満たしていたら(=すべてのドアが閉状態なら)IRKitのREST APIを叩いてエアコンをONにします。

完成形のイメージはこんな感じです。

semi-smart-home-2

自室(寝室)の方にirMagician(赤外線リモコンデバイス)が付け加えられていますが、これはオマケで、単純に夜中の3時ぐらいに自動で寝室のエアコンを(OFFタイマーつきで)ONにするために追加しています。せっかくなので、夜寝ている間も快適に眠れるようにしたいもので。

 

思ったより前置きが長くなってしまったので、実際の工作は次回からにしようと思います。