IoT
NefryBT
NefryDay 19

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

12/17(月)はm2wasabiさんが、NefryBTのファームウェアを自分用に改造して動かそうを書いてくださいました。

記事にあるような自分オリジナルの画面で起動できたら嬉しいですね!

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

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

〇今日の内容

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

1はわみさんNefry BTとIFTTTでスイッチを押したらLINEを送る仕組みを作ってみようにそって、

2はnefry.studioさんの記事にそって、

3はそれらのコードを少し修正して作ろうと思います。

3はIoTの世界へ導いて下さったtseigoからのアドバイスで実現しました、ありがとうございます。

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

1.IFFTでLINEメッセージを飛ばす

※重ねて伝えますが、わみさんNefry BTとIFTTTでスイッチを押したらLINEを送る仕組みを作ってみように丁寧に書かれていますので、是非ご覧ください!

コチラの章はわみさん記事に沿って、少しだけキャプチャなどを加えて、より手順を細かくブレイクダウンしました。

さて、最終的にはこのような感じでLINEメッセージが送られてきます。

IMG_5687.PNG

Nefryのボタンを押すとメッセージが送られてきます。

IFTTTでレシピを作成する

IFTTTのSearchで「web」と検索します。

1.png

「Webhooks」をクリックして、ページを移動したら「Connect」をクリックします。

2_1.png

右上の「Setting」をクリックします。

2.png

URLのuse/以下をコピーします(もしくはスクショします)。
出来たら「My Applets」をクリックします。

3_シークレットキー.png

「New Applet」をクリックします。

4.1_レシピ作成this.png

「+this」をクリックします

4_レシピ作成this.png

「web」と入力してWebhooksを検索してクリックします。

5_webhooks.png

「Event Name」に任意の名前を付けます(Nefryにしました)。
出来たら「Create Trigger」をクリックします。

6Nefry.png

次は「+that」をクリックします。

7_レシピ作成that.png

「Line」と入力してLINEを検索してクリックします。

8_Line.png

「Connect」をクリックします。

8_Line2.png

LINEがポップアップで出てきますので、アカウントIDとパスワードを入力します。

8_Line3.png

「同意して連携する」をクリックします。

8_Line4.png

「Send Message」をクリックします。

8_Line5.png

「Recipient」で送信先を指定することもできますが、このままでも大丈夫です。
「Create Action」をクリックします。

8_Line6.png

「Finish」をクリックします。

8_Line7.png

NefryBTをPCに差し込みます。
Aruduino IDEを開きます。
「ファイル」から「環境設定」を開きます。

9_IDE書き込み2.png

「追加のボードマネージャのURL」に以下を入力します。
https://nefry.studio/package_nefrybt_index.json
「OK」をクリックします。

9_IDE書き込み3.png

「メニュー」の「ボード」からボードマネージャー」を開きます。

9_IDE書き込み4.png

「Nefry」と入力して下記をインストールします。
(下の画面はすでにインストールした後のものです)

9_IDE書き込み5.png

サンプルコードを貼り付けます。
Nefry BTとIFTTTでスイッチを押したらLINEを送る仕組みを作ってみようからコピーしてください。

「ツール」の「ボード」で下の方に表示される「Nefry BT」を選択します。

9_IDE書き込み6.png

シリアルポートを「115200」に設定します。
AruduinoIDEの右上にある虫眼鏡のようなマークをクリックしてシリアルモニタを表示します。
シリアルモニタも「115200」を選択します。
AruduinoIDEの右上にある矢印マーク「マイコンボードに書き込む」をクリックします。

シリアルモニタにログが出てきます。

9_IDE書き込み7.png

PCのネットワークとインターネットの設定からNefryBTをクリックします。

10_NefryBTに接続.png

下の画面が表示されます。
出てこない場合は直接URLに打ち込みましょう!
http://192.168.4.1
「Setup WiFi」をクリックします。

11_ネットセットアップ.png

wifiの「SSID」と「PASS」を入力して、「Save」をクリックします。

11_ネットセットアップ1_2.png

下記の画面に遷移します。

11_ネットセットアップ1_3.png

ここで実は大切なのが、NefryBTが再起動されるまでしっかり待つことです。
設定出来たかな、、、と思って焦って「Back to top」をクリックすると失敗します。

NefryBT_Wifi設定時の再起動の映像

ちょっとわかりにくいですが、「Save」をクリックすると一度NefryBTからネットワークが外れ、再起動されてNefryBTがもう一度出てきます。

時々少し時間がかかる時もあるので、ちゃんと待ちましょう、、、、、。
その上で「Back to top」をクリックすると、、、

12_ネットセットアップ4.png

成功すれば「IP Address」が192.168.以降の数字が変わります。

あと環境によってだと思うのですが、接続がうまく行かない時もあるので、そんな時は「Setup WiFi」からリトライしましょう。

設定できたら、次に「Data Store」をクリックします。
画面が変わったら、「SecretKey」にIFTTで取得したキーを、「Event」にEventNameを入れます。
「Save」をクリックします。

12_ネットセットアップ5.png

最後です、Nefryの「SW」ボタンを押しましょう!
間違って反対の「Reset」を押さないでくださいね!

IMG_5687.PNG

Nefryからメッセージが送られてきます。

もし送られてこない場合、IFTTTがOFFになっていないかも確認しましょう!

自分の場合なぜかOFFになっており、再度ONにし直しました。

13_IFTTTがOFFになっていた.png

2.タッチセンサーをつなげ、触ったら(近づけたら)LINEメッセージを飛ばす

1.が出来ていれば2は一瞬で終わります。

NefryのA2にGROVEのタッチセンサーをつなぎ、NefryをPCにつなぎます。

IMG_5740.JPG

下記コードをAruduino IDEにコピペして「マイコンボードに書き込む」をクリックします。

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

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("Nefry Setup!!");

  pinMode(A2,INPUT_PULLUP);//入力モード切り替え
}

void loop() {
  if(digitalRead(A2)==HIGH) {               //センサーが静電気を検知した時
    bool sendData = IFTTT.send(Event, SecretKey,"Nefry",(String)(micros()/1000000)+"秒");//IFTTTにデータを送信
                                      //Value1:Nefry,Value2:Nefryが起動してからの秒数,Value3:送信カウンタ
     Nefry.println("A2 HIGH");
    if (!sendData) {//IFTTTにデータを送信が成功したか失敗したかの判定
      Nefry.setLed(255, 0, 0);        //Errの時、赤色点灯
    }
    Nefry.ndelay(1000);               //送信後1秒間待つ
  }
}

(nefry.studioさんの記事を上の1.のコードにマージしました)

タッチセンサーに手を近づけるとLINEにメッセージが送られてきます。

IMG_5703.PNG

Value2,Value3は時間が無くて何も工夫しませんでした、、、、(汗)

ここまで予想以上に長くなりましたので、3.光センサーをつなげ、部屋の電気がついたらLINEメッセージを飛ばすは別日で書かせてください!

12/21(木)はBlueToneさんの「NefryでJenkinsのXFD作った話とか、電子工作コンテストで賞もらった話」ですね、楽しみです!!

以上です!