「組込システム開発」ユニットの s_zaima です。
前回は玄関照明の自動化を例にして、異なるサービス同士の連携について紹介しました。
今回はもう少し複雑な条件での環境構築として、エアコンの自動化について紹介します。
室温環境による自動コントロール
実現したい機能は、「就寝時に寝室の室温に応じてエアコンを自動コントロールする」となります。
部屋の温度は季節や時間帯にによって変動します。
以前は就寝時に「タイマーをセットしてエアコンを動作させて就寝する」ということを
実践していました。
ですが、この方法は室温に応じてエアコンをコントロールしているわけではないため、
起床時に寒い(暑い)といったことが起こり、朝まで快適に寝ることができない場合があります。
そこで、就寝時においても自動的にエアコンを操作する方法を考えていきます。
エアコン操作自動化にあたっての環境構築
説明を簡単にするために制御の条件を以下の状態とし、室温を18度未満にならないようにすることを目的として解説します。
・室温が18度未満になれば暖房をONにする。
・上記の動作は20時から7時までの間有効とする。
・7時になった時点でエアコンの動作は停止する。
スマートホームデバイスの中には、APIが公開されているものがあります。このAPIを用いると、
専用アプリや、IFTTT等のサービスとの連携では実現できないような複雑な動作も可能になります。
我が家ではswitchbot社のスマートホームデバイスを利用しているのですが、
このメーカーはスマートホームデバイスのAPIを公開しており、
プログラミング知識のある人であれば誰でも利用できるよう、ドキュメントも用意されています。
連携の手段としてはGoogle Apps Scriptを用います。
Google Apps Scriptは、Googleスプレッドシートの拡張機能になるのですが、
本機能を利用することで、スマートホームデバイスの複雑な制御がプログラミングという形で
比較的手軽にできるようになります。
また、プログラミングによりスプレッドシートに直接データを記録することができるため、
温度の推移の記録をスマートホームデバイスの制御と同時に実現できるようになります。
さて、実際に上記の内容をもとにエアコンの制御を行うと、以下のようなデータが取れました。
寝室の温度が18度未満になっていないことがわかると思います。
最後に
本記事ではエアコンの制御を自動化するにあたって、私が実際に一番最初に設定した条件を例に
解説しましたが、現在は以下の条件を追加して運用しています。
・室温が28度以上になれば冷房をONにする。(熱中症対策)
・不快指数を算出するために湿度計測を行う。(湿度管理)
・不快指数が高くなりやや暑い状態の場合、エアコンのモードを除湿にする。(湿度管理・夏限定)
・湿度が低い場合、加湿器をONにする。(湿度管理・冬限定)
・就寝中に温度・湿度が快適な状態になった場合、エアコン・加湿器を停止する。
制御条件が単純な場合は専用アプリやIFTTTを使えば簡単に設定できますが、
今回のような複雑な条件下で動かしたい場合は、プログラミングにて連携してしまったほうが、
扱いが楽な面もあります。
また、今回紹介した方法であればアプリやサービスの制限で実現できないような動作も
実現可能になるため、アイデア次第で色々な活用方法が出てくるかと思います。
コメント