照度センサーとスマート電球で部屋の照明を調光してみる
コネクシオのテックブログをご覧いただきありがとうございます。
テックブログでは、ちょっと役立つ技術情報やコネクシオの製品を使ってできることを紹介しています。
在宅勤務が続いている方は、以前よりも自宅の照明を点ける時間が長くなっているのではないでしょうか。そこで、部屋の明るさに応じて照明がちょうど良い明るさを保ってくれたらいいな…と感じたことから、当社のIoTゲートウェイ「CONEXIOBlackBear」で自動的に照明を調光する仕組みを考えてみました!
目次[非表示]
▼CONEXIOBlackBearについてはこちら
スマート電球について
今回使用したのはPhilips社のスマート電球「Philips Hue」です。
専用の「Hueブリッジ」をインターネットに接続し、「Hueブリッジ」からZigBeeネットワークで接続した電球を自由に操作できます。スマート電球自体の設置も既存の電球と取り換えるだけなので、手軽で簡単に電源のオン・オフや調光ができました。電球の光量は256段階で指定できます。
CONEXIOBlackBearで明るさを制御するには
Philips Hueは、REST(Representational State Transfer)という技術を用いて制御します。
この技術はWebサービスで良く使われるもので、サービスを提供するURLにHTTPを使ってアクセスすれば、そのサービスを利用できるというものです。
例えばCONEXIOBlackBearの場合、以下のようなコマンドを実行することで、スマート電球を調光できます。
(詳細は省略しますが、電気の状態”on”と光量”bri”を指定する命令を送信することで電球を調光しています)
照度センサーについて
調光に必要な照度データは、当社で使用実績があるオムロン社の環境センサー「2JCIE-BU01」で計測しました。
このセンサーがBLE通信で出力するアドバタイズの中に、下記のような照度などの環境データが記載されています。このセンサーは下図のようなUSBドングルタイプで、小型で電源を供給するだけで起動でき、設定不要ですぐにデータを計測できます。
【2JCIE-BU01が出力する環境データ】
温度、湿度、照度、気圧、騒音、3軸加速度、eTVOC(※)、不快指数、 熱中症警戒度、振動情報
※equivalent Total Volatile Organic Compound:室内環境下における総揮発性有機化合物濃度
BLE通信については、Qiitaに投稿した記事でご紹介していますので、参考にしていただければと思います。
▼参考記事:「BLEセンサーを初心者がつなげてみた!」
やってみよう
それでは、ご紹介した電球、センサー、CONEXIOBlackBearを使い設定を行っていきます。
CONEXIOBlackBearで照度を取得する
今回の実験では、自宅の部屋の照度データを測定しました。
直射日光が当たらない場所に環境センサを配置し、AC電源から電力供給を行いました。この状況で照度データの測定値を比較したところ、暗いと感じたのが平均30ルクスであり、十分明るいと感じたのが平均60ルクスでした。
照度データの取得には、先ほどご紹介したQiita記事を参考に、bluepyを使用しました。
自動で調光する
以下のような電球を自動制御するプログラムを作成して、1分周期で動かしてみました。
制御の内容としては
「30ルクス以下の時は光量に255を指定して電球を一番明るく点灯」
「30ルクス超60ルクス以下の時は光量に128を指定して中位の光量で点灯」
「60ルクス超なら消灯」
させるというものです。いざプログラムを書いてみると30ステップ以下で簡単に実現でき、無事部屋の照度に応じて調光することができました!
プログラムの内容は以下の通りです。
おわりに
これほど少ない作業で簡単に自動調光ができるとは思っていませんでした。
今回は照度に応じて電球を操作しましたが、同じセンサーでも
「熱中症警戒度に応じて水分補給を促すメールを送る」
「温度に応じて扇風機をつける」
など様々な応用方法が考えられそうです。
皆様もスマート化(自動化)にぜひ挑戦してみてください!
▼環境データを簡単に可視化するIoTソリューション「EDConnectワイヤレス」についてはこちら