建築系におけるArduino利用計画としての「Archiduino Project」。
今まではデータを取ることばかりに主眼を置いていたが、もう少し「制御(コントロール)」の方面に取り組んでいこうと考えた。これは先日の日本建築学会の研究協議会「スマートな情報通信技術で実現する建築性能モニタリングの未来像」で、クリーングリーンリサーチ社の福井エドワード氏が「これからは可視化から制御へ」と述べていたことに、今更ながら、気づかされたからである。
というわけで早速ではあるが、Pachubeにアップされたデータに基づいたエアコン制御という課題に取り組んでみることにした。エアコンであればリモコンの赤外線発信をArduinoで実装すれば、容易にONとOFFを制御することができると考えたからである。場合によっては、赤外線発信を組み合わせることで複数の家電、たとえばエアコンと扇風機を同時に制御することもできるだろう。
最初に取り組んだのは、リモコンの赤外線の発光周期を取得するところである。秋月で売っている赤外線受信モジュールを購入し、単純にArduinoに接続する。ごくシンプルなスケッチを使い、赤外線の発光周期を取得する。
実はここがなかなかうまくいかず、一瞬挫折しそうになった。ネットで検索するといろいろと複雑なスケッチも見つかるのだけれど、実際に私の環境で有効だったのはきわめてシンプルなものだった。
つぎはこの信号を発する側の回路とスケッチの作成である。回路の方は何も考えることなく、デジタルピンの然るべき箇所に赤外線LEDを挿しただけのものである。今回はPachubeにアップしてあるデータを取得して、そのデータに基づく制御を実装することが目的であるから、ArduinoにEthernet shieldを載せてインターネットに接続できるようにし、Pachubeからデータを取ってくる部分のスケッチを実装することとした。
単純にローカルだけでセンサネットを完結しようとするなら、センサノードのXBeeから送られてくるデータを常に見張っていれば済むのであるが、ネット上のサーバを参照する方がシステムとしては汎用性があると思われた。
Pachubeへのデータ送信は、これまでにHTTPのGETメソッドを使ったものを過去に実装したことがあったが、いわれてみれば受信については今まで取り組んでいなかった。ネットで検索しても参考になるスケッチはなかなか見当たらなかったので(どこかでみた気もするが)、ここは素直にHTTP経由でhttp://www.pachube.com/api/feeds/XXXX.csvを取得する方法を試してみた。この方が今後発展性があるような気がする。参考にしたサイトとしてはこちら。
参考サイトのスケッチでは、一回アクセスしてデータを拾ってくると終了してしまうプログラムだったので、これを定期的にデータを取ってくるように書き換えるなどした。また、例によってDHCPなどの機能を追加してプラグアンドプレイを実現できるようにもした。基本的には、他人様のコードを参照しながら、過去に作ったスケッチのコードを組み込んで、練り上げるようなプロセスである。そこに私自身のオリジナリティは存在しないかもしれない。
以上のプロセスを経て、今回は33℃を超えたときにエアコン(冷房)のスイッチを入れ、30℃を下回ったときにスイッチを切るという、実に単調な制御を実装することができた。もう夏も終わりに近づいてきたので、室温が33度を超えるような場面がこなくなりそうではあるが、完成した日の翌日がなんとか暑い日であったので、このエアコンの自動制御システムが無事稼働する運びとなった。冒頭のグラフは室温の推移である。
確かに33度を超えたところでエアコンのスイッチが入り、30まで下がったところでスイッチが切れ、再度上昇に転じていることがわかる。特に日中の暑い時間はそれを短期間に何度も繰り返している。パッと見た感じでわかるように、非常に効率の悪い運転をしている。せっかくなので、温度の変化に対応して、自動的に設定温度を変更する方式に変更することにした。これについては、消費電力のモニタリングも同時並行で進めつつあるので、続報したいと思う。