EAOスイッチとNefry BT GPIOを連携してIFTTTにメッセージを送るメモです。
今回の仕組み
デザインかっこいい EAO スイッチをRaspberry Pi Node-REDにつなげるメモにてGPIO連携の感覚をつかんだので、よりコンパクトにNefry BT GPIOピンから連携をしてみます。
Nefry BTは今回のようなEAOスイッチのように電気をきっかけにしたアクションを手軽にインターネットと接続ができ、しかも、IFTTTにメッセージを送ることができるので、さまざなWEBサービスと連携することが可能です。
今回は、EAOスイッチが押された反応をIFTTTを使ってSlackというチャットサービスに連携する仕組みを作ってみます。
Nefry GPIOとEAOスイッチの接続
まず、Nefry GPIOとEAOスイッチの接続をします。
先ほどの図のとおり、NCでスイッチを扱います。
その先は、+はD2ピンに差し込み、-はGNDピンに差し込んで準備満了です。
Nefryのソースコード
NefryのソースコードはdotstudioさんのNefry BTとIFTTTを連携するの記事を参考に作成します。
ファイル>スケッチ例>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でどう受け取るかの設定です。
Nefry BTからのメッセージをWeb Hookチャンネルで受け取れるようにします。
Web HookチャンネルでReceive a web requestをクリック。
eao_switchというイベント名で受け取れるようにします。
thatの設定
メッセージを受け取ったあとのSlackチャットメッセージに送る設定をします。
Slackを検索します。事前に使用するSlackのアクティベートをしておきましょう。
Post Channelをクリック。
送信したいチャンネルに設定します。メッセージ文言は実験なのでデフォルトでOKです。
設定が出来上がりました。
NefryのData Storeの設定
こちらもdotstudioさんのNefry BTとIFTTTを連携するの「Nefry BTにSecret Keyを登録する」を参考にNefryのData Storeの設定をします。
今回のイベントは、eao_switchという名前なのでEventに入力。Secret KeyはIFTTT Webhookの設定から反映します。
動かしてみる
ということで設定が出来上がったので、Nefry BTを起動してボタンを押してみます。
無事、Slackにボタンが押されるたびにメッセージが送られました!
まとめ
EAOスイッチとNefry BT GPIOを連携してIFTTTにメッセージを送る仕組みをつくることができました。
このように、Nefry BTでEAOスイッチがIoT化した場合は、Raspberry Piと連携するときよりもシンプルな機能を、物理的にもコンパクトに仕込むできるところはメリットです。
まずシンプルにスイッチの挙動をインナーネット上へ知らせて、その後、クラウド上なりで複雑な連携をしていくといった形でRaspberry Pi / Node-REDとはまた違った形で機能が広げられそうですね。
それでは、よき Nefry BT & EAO スイッチ Life を!