7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

NefryAdvent Calendar 2017

Day 23

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

Last updated at Posted at 2017-12-22

1月22日(木)はIoTLTのSIer版を主催されていらっしゃる@CharaDenMitzさんが初めてのNefryでチャラくてハデなLチカを投稿してくださいました。

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

今年からプログラミングを始めてたペーペーな私は、簡単なところから、先日購入したGROVEスターターキットと一緒に始めたいと思います。

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

#〇今日のアジェンダ

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

1,2はそれぞれわみさんNefry BTとIFTTTでスイッチを押したらLINEを送る仕組みを作ってみようと、nefry.studioさんの記事にそって進めました。前編に記入しています。

今回は3を扱います。

3はtseigoさんのアドバイスをベースに作成しました、ありがとうございます!

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

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

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

そちらはわみさんの記事を参考に行ってください。

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

4_電気着いたときのLINE.png

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

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

コードは以下です。

#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さんGroveの光センサをNefryで使うメモ #nefry #dotstudioのコードを参考に作らせて頂きました。本当に、多くの方々の知恵を勝手に拝借してすみません、、、、。汗

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

4_電気着いたときにSerialPrint3.png

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

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

#〇出来た後に学んだ事

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

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

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

明日はtseigoさんで「NefryBTで音を鳴らす予定」ですね、楽しみです!!

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

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?