人感センサーライトを作ってみた（台所用）

この記事は[おうちハック Advent Calendar 2018](https://qiita.com/advent-calendar/2018/ouch-hack)の4日目の記事です。


自分と違うレイヤーの方がたくさんおられるQiitaでいろいろな人が実践されている技術的なチャレンジやアプローチを目にするたびに、なるほど、と思う機会も多く、“日々是勉強”だなぁ、と改めて感じています:smiley:

そんな“気付き”を皆様にも提供したいな、と思い、私も手元にあるPCなどでほぼできるような簡単おうちハックを実践してみました！:point_up:

   

ありきたりの話ではありますが、日常の生活で、“自動で照明が点灯してくれればいいのに”と思うこと、ありませんか？
たとえば玄関であったり、階段であったり、キッチンであったり、手が濡れてしまっている、手がふさがっているけど明かりが点いてほしいって場面ありますよね・・・。

私の場合は、ご飯を食べ終わった後台所へ皿を持っていくときに手がふさがっていることが多いので、自動で明かりが点いてくれればいいと思い、台所用人感センサーライトを作ってみました！

    

#使ったものとコスト
PC（Windows10）
Philips Hue （Bridge＋電球）
[Gravio](https://www.gravio.com/jp/gpromo/1901-casual-iot)
（GravioはWindows 10 PCにインストール設定するだけでセンサーデータの収集ができるソフトウェアです！）
　-Gravio Studio　Version.2.0.2000
　-Gravio Server Version.2.0.1997
PCは既設のWindows10 PCを使っています。
Philips Hue（以下、Hue）は家電量販店などでも購入可能です。
Gravioはセンサーを借りるために、月額500円のプランを契約して使っています！

#システム構成
センサーからの情報をPCの中にインストールしたGravioが処理し、データを受信したタイミングでHueを点灯させます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/247209/1b0d35ae-1cf3-2e72-4fae-d10291025af5.png)

#やったことと作るのにかかった時間（概算）
1. Hueの設置・設定：10分
2. トークンの取得：10分
3. Gravioの設定：10分
4. 動作確認、センサーの設置位置の調整：10分

合計40分くらいです。

#1.Hueの設置・設定
(1)電球を取り付ける。
(2)ブリッジを接続する。
(3)アプリから電気を点けたり消したりしてみる。
この３つができれば、ひとまず電気が付くようになります！
（Hueスターターセットの説明書を見ていただければと思います）

#2.	トークン（username）の取得
##a.	デバッグ画面へアクセスする
Hueのスマートフォンアプリケーションから、IPアドレスを取得
![image.png](https://qiita-image-store.s3.amazonaws.com/0/247209/d8b1cc60-ae58-bc58-9d18-c6e715e4e259.png)
デバッグ画面(http://[IPアドレス]/debug/clip.html)をブラウザで表示します。

##b.	トークン（username）を生成する
照明を制御するためには、APIを利用します。
そのためには事前にusernameを作成する必要があります。
URLの欄に
/api
Message Bodyの欄に
{"devicetype":"iphone_xxxx（適当な名前）"}
を入力してPOSTします。
![Hueデバッグ画面](https://qiita-image-store.s3.amazonaws.com/0/247209/b1955b54-0bbc-e664-ecc8-1f3b164e4885.png)
というメッセージが表示されるのでブリッジ中央のリンクボタンを押す。
![ブリッジ画像](https://qiita-image-store.s3.amazonaws.com/0/247209/ecaae631-014c-8d89-a0ee-ff55614092ec.png)
再度POSTすると、usernameを取得できます。
![username取得画面](https://qiita-image-store.s3.amazonaws.com/0/247209/05ae34bc-50a7-1df1-599a-3e3276351910.png)
#3.	Gravioの設定
##(1)センサーの設定
###センサーとペアリング
人感センサーとペアリングします。
センサーがチカチカっと光り、以下の画面となれば、ペアリング完了です。
![センサーペアリング](https://qiita-image-store.s3.amazonaws.com/0/247209/21890482-f343-e346-0c08-2bf7d53348b1.png)

ペアリングについては、[こちら](https://www.gravio.com/jp/sensor-setup-guide)をご参照ください。

###センサーの登録
（1） エリア・レイヤーを登録する
画面右上の”＋”ボタンをクリックし、エリアを作成します。
エリアを作成すると自動的にレイヤーが作成画面が表示されるので、SENSING DEVICE TYPEにAqara-Occupancyを選択します。

（2） レイヤーにデバイス（センサー）を登録する
一番右のデバイスウィンドウの”⊕”ボタンを選択し、デバイスを追加します。
デバイスのスライドボタンをONにすることで、データの収集が開始されます。

##(2)電球の点灯動作（アクション）の設定
電球の点灯動作を設定します。
２分間点灯後、消灯する動作を設定します。
コンポーネントの配置は、
PhilipsHue（点灯）→Sleep→PhilipsHue（消灯）です。

Hueコンポーネントのセッティング画面は下記のとおりです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/247209/560748da-f9ef-d1f7-2e31-bdaa04d5cb42.png)

照明の番号は、Hueのアプリケーションで確認できます。
ブリッジへの各証明が登録された順番で、上から数字が振られているようです。
Is Onのチェックを外すと、指定した照明が消灯しますので、消灯を設定するコンポーネントの設定では、チェックを外します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/247209/11084743-22f2-8e6c-0f5e-a828951cffec.png)

Sleepコンポーネントには、点灯させたい時間を入力します。
今回は2分ですので、120000[ms]に設定します。
この設定により、点灯動作、スリープ時間経過後消灯動作となるため、スリープ時間分点灯し続けます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/247209/3e4424d5-1a36-5532-374f-df2d0ac21bc6.png)

##(3)動作タイミング（トリガー）の設定
トリガー設定画面から下記の設定を行ないます。
人の在、不在を2分に一回検知し、上記のアクションで設定した照明を2分間点灯する、という設定にしています。

|項目|設定値|
|:---|:---|
|エリア|人感センサーエリア|
|レイヤー|人感センサーのレイヤー|
|アクション名|台所ライト制御|
|Interval|120|
|Classic/Threshold Triger|Classic Trigger（Default）|
|Motion Detected|=1|
![image.png](https://qiita-image-store.s3.amazonaws.com/0/247209/2a37711d-9409-88c2-65d7-012bf4553b01.png)


#動作
実際に動かしてみました！
[![Hue動作動画](http://img.youtube.com/vi/ww-C6MO6cPc/0.jpg)](http://www.youtube.com/watch?v=ww-C6MO6cPc)

反応しない位置でカメラを構えていたので、どうやって人感検知させよう・・・。となり、結果足を蹴り上げて反応させました！
時々しかキッチンには行きませんが、結構便利です:grin:

#あとがき
Gravioでは、データの流れに沿って設定をしていくので、とてもわかり易いと思います！
また、“人感のタイミングや照明の点灯時間などを自由に変えられる”可変性や可用性がとても高いです。

他にも、人感検知時に複数の動作を組み合わせることができ、ライト点灯＋音を出すといったことも可能です。組み合わせによっては、防犯システムとしても使えそうですね！

Hueにも人感センサーがありますが、センサー情報を汎用的に使える点ではGravioがいいかもしれません！

#参考
[Gravioとは？](https://www.gravio.com/jp-blog-article/2018-11-02-about-gravio)

[Gravioのインストール方法](https://qiita.com/mikawan/items/56aaecc05db56723523a)

[温度センサーのデータをエクセルで簡単に表示]
(https://qiita.com/mikawan/items/3d93543566680afda868)

[Slackとボタンスイッチセンサーで「呼び出しシステム」を作ってみた！](https://qiita.com/mikawan/items/ac196bbb5506a3251c55)

[温度データSlack投稿システムを「５分」で作ってみた！](https://qiita.com/mikawan/items/8184cdcc64642aa3729e)