EAOスイッチとNefry BT GPIOを連携してIFTTTにメッセージを送るメモ

EAOスイッチとNefry BT GPIOを連携してIFTTTにメッセージを送るメモです。

今回の仕組み

デザインかっこいい EAO スイッチをRaspberry Pi Node-REDにつなげるメモにてGPIO連携の感覚をつかんだので、よりコンパクトにNefry BT GPIOピンから連携をしてみます。

image

Nefry BTは今回のようなEAOスイッチのように電気をきっかけにしたアクションを手軽にインターネットと接続ができ、しかも、IFTTTにメッセージを送ることができるので、さまざなWEBサービスと連携することが可能です。

今回は、EAOスイッチが押された反応をIFTTTを使ってSlackというチャットサービスに連携する仕組みを作ってみます。

Nefry GPIOとEAOスイッチの接続

まず、Nefry GPIOとEAOスイッチの接続をします。

image

先ほどの図のとおり、NCでスイッチを扱います。

image

その先は、+はD2ピンに差し込み、-はGNDピンに差し込んで準備満了です。

Nefryのソースコード

NefryのソースコードはdotstudioさんのNefry BTとIFTTTを連携するの記事を参考に作成します。

image

ファイル>スケッチ例>Nefry IFTTT>IFTTT simple Sampleから今回のソースサンプルを参考にして、スイッチピン D2で反応するようにします。

#include <Nefry.h>
#include <NefryIFTTT.h>

// スイッチピン D2
int SWITCH_PIN = D2;

// 入力の状態記録
int buttonState = LOW;

// カウント
int count = 0;

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からデータを取得
  
  Serial.begin(115200);
  
  pinMode(SWITCH_PIN,INPUT_PULLUP);
}
 
void loop() {

  int currentButtonState = digitalRead(SWITCH_PIN);
  
  if( currentButtonState != buttonState){
    buttonState = currentButtonState;
    
    if( currentButtonState == HIGH ){
      // ON
      if (!IFTTT.send(Event, SecretKey)) {//IFTTTにデータを送信
        Nefry.setLed(255, 0, 0);        //Errの時、赤色点灯
      }
      Nefry.ndelay(1000);
    }
  }
}

IFTTT

こちらもdotstudioさんのNefry BTとIFTTTを連携するの記事が分かりやすいですが簡単に説明します。

thisの設定

Nefry BTからのメッセージをIFTTTでどう受け取るかの設定です。

image

Nefry BTからのメッセージをWeb Hookチャンネルで受け取れるようにします。

image

Web HookチャンネルでReceive a web requestをクリック。

image

eao_switchというイベント名で受け取れるようにします。

thatの設定

image

メッセージを受け取ったあとのSlackチャットメッセージに送る設定をします。

image

Slackを検索します。事前に使用するSlackのアクティベートをしておきましょう。

image

Post Channelをクリック。

image

送信したいチャンネルに設定します。メッセージ文言は実験なのでデフォルトでOKです。

image

設定が出来上がりました。

NefryのData Storeの設定

こちらもdotstudioさんのNefry BTとIFTTTを連携するの「Nefry BTにSecret Keyを登録する」を参考にNefryのData Storeの設定をします。

image

今回のイベントは、eao_switchという名前なのでEventに入力。Secret KeyはIFTTT Webhookの設定から反映します。

動かしてみる

image

ということで設定が出来上がったので、Nefry BTを起動してボタンを押してみます。

image

無事、Slackにボタンが押されるたびにメッセージが送られました!

まとめ

EAOスイッチとNefry BT GPIOを連携してIFTTTにメッセージを送る仕組みをつくることができました。

このように、Nefry BTでEAOスイッチがIoT化した場合は、Raspberry Piと連携するときよりもシンプルな機能を、物理的にもコンパクトに仕込むできるところはメリットです。

まずシンプルにスイッチの挙動をインナーネット上へ知らせて、その後、クラウド上なりで複雑な連携をしていくといった形でRaspberry Pi / Node-REDとはまた違った形で機能が広げられそうですね。

それでは、よき Nefry BT & EAO スイッチ Life を!