第4回
電子工作部

Webサービス同士を連携できる「IFTTT」と自作IoTデバイスを繋いで生活を便利にしてみた

わみ


実践編1:もしNefryがイベントを作ったら、スマートフォンに通知する

さて、IFTTTの登録とNefryの設定が終わったら、早速これらをつなげてみます。必要なものはこちら。

  • Nefry
  • IFTTT
  • IFTTTのスマートフォンアプリ

今回作るのは、「もしNefryがイベントを作ったらスマートフォンに通知する」というレシピです。

1. トリガーを選ぶ

2016-03-30_18h29_11-min.png

まずはIFTTTのサイトの上部にあるMy Recipesをクリックします。My Recipesページ中央にある水色のCreate a Recipeボタンから実際のレシピを作っていきます。

 
2016-03-30_18h29_27-min.png

なにをトリガーにするのか選びます。thisをクリック!

 
2016-03-30_18h29_38-min.png

チャンネルを選択します。検索することができるのでmakerと検索すると簡単に見つけられます。MのマークがMakerチャンネルです。

2. アクションを選択する

2016-03-30_18h30_03-min.png

次にアクションを選びます。thatをクリック!

 
2016-03-30_18h30_24-min.png

今回はスマートフォンに通知ができるIF Notificationというチャンネルを使います。IFと検索すると選択肢が減るのでそこからIF Notificationを選んでクリック!

 
2016-03-30_18h30_39-min.png

IF Notification チャンネルにはSend a notificationというアクションがありますので、こちらをクリックします。

 
2016-03-30_18h33_08-min.png

ここでどのような通知を送りたいか好きに入力することが可能です。入力が終わったらCreate Actionをクリックしてアクションの完成です!

 
2016-03-30_18h33_22-min.png

最後にこのような組み合わせをつくりますがよいですかと画面が表示されここでCreate Recipeをクリックすることでレシピの完成です! お疲れ様でした!

今回作成したレシピは下記をクリックすれば簡単に追加できます。

IFTTT Recipe: Maker Channel(Nefry)→
Push通知 connects maker to if-notifications

レシピの変更方法

2016-03-30_18h33_33-min.png

このページでは作ったレシピを後から変更できます。

Turn off このレシピを無効にします。
Publish このレシピを公開します。
Check now このレシピのトリガーを今すぐ実行します。
Log このレシピの動作の履歴がみれます。
Delete このレシピを削除します。

3. Nefryのプログラムを作る

ArduinoIDEに以下のプログラムを書いたファイルを作り、それをNefryに入れます。NefryについているSWを押すとIFTTTの方にトリガーがいくようになっています。SWの部分をほかのセンサーに変えることでIFTTTに連絡できるようになります!

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

bool IFTTT_send(String,String,String data="");

void setup() {
  Nefry.setConfHtml("SecretKey",0);
  Nefry.setConfHtml("Event",1);
  SecretKey = Nefry.getConfStr(0);
  Event = Nefry.getConfStr(1);
}

void loop() {
  if (Nefry.push_SW()) {//SWを押した時
    if (!IFTTT_send(Event, SecretKey)) {
      Nefry.setLed(255, 0, 0);//Errの時、赤色点灯
      Nefry.ndelay(5000);
    }
  }
}

bool IFTTT_send(String event, String Secretkey, String data) {
WiFiClient client;
  if (client.connect("https://t.co/KoG12Cxy7R", 80)) {
    Nefry.println("connection");
    client.println("POST /trigger/" + event + "/with/key/" + Secretkey + " HTTP/1.1");
    client.println("Host: https://t.co/KoG12Cxy7R");
    client.println("User-Agent: ESP8266/1.0");
    client.println("Connection: close");
    client.println("Content-Type: application/json");
    client.print("Content-Length: ");
    client.println(data.length());
    client.println();
    client.println(data);
    delay(10);
    Nefry.println("OK");
    return true;
  } else {
    Nefry.println("Err");
    return false;
  }
}

4. つないでみた

Screenshot_20160330-205512-min-min-min.png

Androidの携帯に通知を送ることができました! これを応用すれば、次のようなことができます。

  • ドアに磁気センサーとNefryをつけて、誰かが来たことをスマホに通知する
  • 引き出しに磁気センサーとNefryをつければ、引き出しを開け閉めしたことがスマホに通知され、簡易な防犯システムに
  • 温度センサーとNefryを組み合わせて部屋に置けば、「熱中症になりやすいので気をつけてください」という通知を飛ばせたり、熱や寒さに弱い動物を飼っていれば、基準となる気温を設定し、その温度になったときに通知したりすることが可能

Nefryとセンサーを組み合わせるだけで簡単にこういったアイテムが作れちゃいます!

実践編2. もしNefryがイベントを作ったら、Twitterに投稿する

用意するのはこちら!

  • Nefry
  • IFTTT
  • Twitter

今回作るのは、「もしNefryがイベントを作ったらTwitterに投稿する」というレシピです。

1. トリガーとチャンネルを選ぶ

2016-03-30_18h36_37-min.png

今回はTwitterチャンネルを使います。ChannlesでTwitterと検索し、「Twitter」を選んでおきましょう。Twitter チャンネルに接続していない場合Connectをクリック!

 
2016-03-30_18h55_04-min.png

Twitterのアプリケーション認証画面が出ますのでTwitterにログインしたのち、連携アプリを認証をクリックします。

 
2016-03-30_18h55_55-min.png

Twitter チャンネルにはアクションが複数あるですが、今回はシンプルにTwitterに投稿するPost a tweetをクリックして次に進みます。

 
2016-03-30_19h05_15-min.png

Twitterに投稿する内容を編集することが可能です。入力が終わったらCreate Actionをクリックしてアクションの完成です!

 
2016-03-30_19h05_24-min.png

最後にこのような組み合わせをつくりますがよいですかと画面が表示されここでCreate Recipeをクリックすることでレシピの完成です!

 
IFTTT Recipe: Maker Channel →Twitter connects maker to twitter

こちらから簡単にIFTTTにレシピを追加することができます。

2. Nefryのプログラムを作る

ArduinoIDEに書くプログラムはこちらです。Nefryのプログラムはスマートフォンで通知するものと同じようになっています。NefryについているSWを押すとIFTTTの方にトリガーがいくようになっています。SWの部分をほかのセンサーに変えることでIFTTTに連絡できるようになります!

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

bool IFTTT_send(String,String,String data="");

void setup() {
  SecretKey = Nefry.memory_read(1);
  Event = Nefry.memory_read(2);
}

void loop() {
  if (Nefry.push_SW()) {//SWを押した時
    if (!IFTTT_send(Event, SecretKey)) {
      Nefry.Nefry_LED(255, 0, 0);//Errの時、赤色点灯
      delay(5000);
    }
  }
}

bool IFTTT_send(String event, String Secretkey, String data) {
  WiFiClient client;
  if (client.connect("maker.ifttt.com", 80)) {
    Nefry.println("connection");
    client.println("POST /trigger/" + event + "/with/key/" + Secretkey + " HTTP/1.1");
    client.println("Host: maker.ifttt.com");
    client.println("User-Agent: ESP8266/1.0");
    client.println("Connection: close");
    client.println("Content-Type: application/json");
    client.print("Content-Length: ");
    client.println(data.length());
    client.println();
    client.println(data);
    delay(10);
    Nefry.println("OK");
    return true;
  } else {
    Nefry.println("Err");
    return false;
  }
}

3. つないでみた


動画をご覧になるとわかるのですが、私の環境では5秒程度遅れがあります。個人的にいろいろと作って遊ぶ分には十分に遊ぶことはできると思います。

これを応用すれば、例えば植物に水分センサーとNefryを取り付けて、土に水分がなく枯れそうな状態かそうでないかを見ることができます。その状態をTwitterを経由して送信してログを保存することで、植物を枯らさないように調整することもできのではないでしょうか。

まとめ

IFTTTを使い、スマートフォンへの通知とTwitterへの投稿をしました。今回はスイッチを使いましたが、スイッチの代わりに開閉センサーを付ければ人の入退室を見れますし、ポストにつければ手紙が届いたらすぐにわかるようになるでしょう! IFTTTとNefryを使えば、今まで簡単にできなかったことができるようになるかもしれないですね。

今回の記事の組み合わせ以外にも、簡単に試行錯誤できるIFTTTにはいろんな組み合わせがあると思います。いろいろ遊んでみてください!

1 2
わみ
この記事を書いた人

おすすめ記事

Recommended by