部屋の電気が付いたらLINEメッセージを送ってくれる仕組み(の後編)

1月22日(木)は[IoTLT](https://iotlt.connpass.com/)のSIer版を主催されていらっしゃる[@CharaDenMitz](https://qiita.com/CharaDenMitz)さんが[初めてのNefryでチャラくてハデなLチカ](https://qiita.com/CharaDenMitz/items/328e68cfe5c84e49f98d)を投稿してくださいました。

Mitzさんロゴで光るLEDがとてもかっこいいです！！IFTTTの特定ワードをキックに点灯する仕組みも是非参考にさせていただきます！

今年からプログラミングを始めてたペーペーな私は、簡単なところから、先日購入した[GROVEスターターキット](https://www.switch-science.com/catalog/1812/)と一緒に始めたいと思います。

Nefryはお詳しい方にも、私のような初心者にも、馴染みやすくて非常に助かっています。

#〇今日のアジェンダ

1.IFTTTでLINEメッセージを飛ばす
2.タッチセンサーをつなげ、触ったら(近づけたら)LINEメッセージを飛ばす
**3.光センサーをつなげ、部屋の電気がついたらLINEメッセージを飛ばす**

1,2はそれぞれ[わみさん](https://qiita.com/wamisnet)の[Nefry BTとIFTTTでスイッチを押したらLINEを送る仕組みを作ってみよう](https://dotstud.io/blog/nefry-ifttt-push-line/)と、[nefry.studioさんの記事]((https://nefry.studio/program/Grove/Grove%E3%82%BF%E3%83%83%E3%83%81%E3%82%BB%E3%83%B3%E3%82%B5/))にそって進めました。[前編](https://qiita.com/tikchiku/items/b3158508b5d9da148112)に記入しています。

今回は3を扱います。

3は[tseigoさん](https://qiita.com/tseigo)のアドバイスをベースに作成しました、ありがとうございます！

それでは内容に入ります！！

#〇3.光センサーをつなげ、部屋の電気がついたらLINEメッセージを飛ばす

まず、IFTTでLINEへメッセージを送る設定が下準備が必要です。

そちらは[わみさんの記事](https://dotstud.io/blog/nefry-ifttt-push-line/)を参考に行ってください。

最終的にこんな感じで、電気が付くなど光が強くなった時にLINEでメッセージが送られてきます。

<img width="332" alt="4_電気着いたときのLINE.png" src="https://qiita-image-store.s3.amazonaws.com/0/201155/f3776371-56e4-5eea-7d35-a3312fdf11e2.png">



私は友達とシェアハウスに住んでいるので、誰かがリビングの電気を付けると自動でメッセージが飛んできます。夜会社にいる時メッセージが送られてくると、「あ、誰か帰ったんだな、、、いいなあ、、、」なんて気持ちになります。

深夜や早朝にメッセージが送られていると、誰か寝付けなかったのかな、、、なんて思います。気味が悪いですね、、、、汗。

コードは以下です。

```c
#include <Nefry.h>
#include <NefryIFTTT.h>
String Event, SecretKey;


int sensorValueNow;
int sensorValueBefore = 0;

void setup() {
  Nefry.setStoreTitle("SecretKey",0); //Nefry DataStoreのタイトルを指定
  Nefry.setStoreTitle("Event",1);     //Nefry DataStoreのタイトルを指定
  SecretKey = Nefry.getStoreStr(0);   //Nefry DataStoreからデータを取得
  Event = Nefry.getStoreStr(1);       //Nefry DataStoreからデータを取得
  
  Nefry.println("Grove Light sensor SETUP");
  
  Nefry.setLed(0,0,0);
  pinMode(A2,INPUT_PULLUP);//入力モード切り替え
}

void loop() {
  sensorValueNow = analogRead(A2);
  
  Nefry.print("sensorValueBefore=");
  Nefry.println(sensorValueBefore);
  Nefry.print("sensorValueNow=");
  Nefry.println(sensorValueNow);
  
  if(sensorValueBefore < 300){
    if(sensorValueNow > 700){
      bool sendData = IFTTT.send(Event, SecretKey,"Nefry_LightON","前:"+(String)sensorValueBefore,"今:"+(String)sensorValueNow);//IFTTTにデータを送信
       }
      }
  
  sensorValueBefore = sensorValueNow;
  Nefry.print("sensorValueBefore=");
  Nefry.println(sensorValueBefore);
  Nefry.println("");
  
  Nefry.ndelay(10000);
}

```
1.2のコードに[@n0bisukeさん](https://qiita.com/n0bisuke)の[Groveの光センサをNefryで使うメモ #nefry #dotstudio](https://qiita.com/n0bisuke/items/0abe67b0d293e24a5628)のコードを参考に作らせて頂きました。本当に、多くの方々の知恵を勝手に拝借してすみません、、、、。汗

「マイコンボードに書き込む」するとシリアルポートにこんな感じでます。

<img width="208" alt="4_電気着いたときにSerialPrint3.png" src="https://qiita-image-store.s3.amazonaws.com/0/201155/05743945-1870-b435-3c8b-9fae3cb4d860.png">


700以上で電気はついている、と判断しています。

映像が乱れていて随分見にくいですが、実際の動きはこんな感じになります。

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Nefry&amp;光センサー：IFTTでメッセージを送ってくれる <a href="https://t.co/BAyozNaM0o">pic.twitter.com/BAyozNaM0o</a></p>&mdash; takahirochiku (@Hiro_Chiku) <a href="https://twitter.com/Hiro_Chiku/status/944228916704587776?ref_src=twsrc%5Etfw">2017年12月22日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

#〇出来た後に学んだ事

閾値をどこにするかが難しいです。最初500にしていたのですが、それだと隣のキッチンの光を拾ったりします。結局700にしました。

本来はライトのすぐ数cmとか、すごく近くに置いて高い閾値を設定するものなんでしょうね、、、、

とは言え、身近な生活に介入してくる仕組みを作れると嬉しいですね。

明日は[tseigoさん](https://qiita.com/tseigo)で「NefryBTで音を鳴らす予定」ですね、楽しみです！！

ありがとうございました！