Nefry BTとIFTTTでスイッチを押したらLINEを送る仕組みを作ってみよう
こんにちは。外部ライターのわみ(@wamisnet)です。Unirobot株式会社でロボットのソフトウェアエンジニアをやりながら、dotstudioでは私が作成しているIoTデバイス「Nefry」シリーズの販売やチュートリアル記事の執筆をしています。
Nefryは、ユーザの皆様からのフィードバックを頂き成長しています。新たなWi-Fi・BLEモジュール「ESP-WROOM-32」の発売もあり、このたび新機能と改良を加えた次世代の「Nefry BT」を発表する事になりました。
今回は新しい「Nefry BT」を使って、Amazon Dash Buttonのようにスイッチを押した時にLINEに通知が行く仕組みを作ってみます。
Nefry BTとは
Nefryシリーズは、「簡単にインターネットにつながること」をテーマにしたFRISKサイズのIoTデバイスです。Nefry BTからはWi-Fiに加えてBLE(Bluetooth Low Energy)に対応し、I/O機能も増えて開発の幅がさらに広がりました!
ハードウェアをできるだけ意識しなくて済むよう設計され、はんだづけや複雑な接続なしで動かすことができるため、初めてハードウェアを触る方にオススメのデバイスです。
作ってみる
今回試す流れは以下です。
- IFTTTにレシピを作成する
- 開発環境(Arduino IDE)を整える
- プログラムを書き込む
- Nefry BTとIFTTTを紐付ける
- スイッチを押してLINEにメッセージを送ってみる
用意するもの
- Nefry BT
- IFTTTのアカウント
- LINEのアカウント
筆者の環境
- Nefry BT library Version 0.6.1
- Windows 10
- Arduino IDE 1.8.2
注意
Nefry BTは開発中のため、実際のコードや画面と異なる可能性があります。
IFTTTにレシピを作成する
IFTTTは様々なWebサービス同士を簡単に連携できるサービスです。連携したものは「レシピ」と呼ばれ、自分で新しいレシピを作成することもできます。今回はNefry BTとLINEを連携するレシピを作ってみます。
アカウントを持っていない場合は下記の記事を参考にアカウントを取得してください。
アカウントを取得したら、Nefry BTとLINEを連携させるレシピを登録していきましょう。
IFTTTのレシピは「〇〇が起きたら△△する」というようにトリガーとアクションに分けられます。今回のトリガーは「Nefry BTのスイッチをクリックしたら」、アクションは「LINEに通知する」となります。
トリガーとNefry BTを紐付けるキーの取得
今回はトリガーとして自作のWebサービスを利用できる「Webhooks」を使います。
まずはWebhooksをあとでNefry BTと紐付けるために、Secret Keyというキーを取得します。IFTTT公式サイト上部の「Search」から、Webhooksを検索しクリックしましょう。(”web”で候補に出てきます。)
設定ページに移動しました。このとき初めての方はこのような認証画面が表示されます。ページ中央の「Connect」をクリックしてWebhooksを有効にしましょう。
Settingをクリックし、移動します。
アカウントごとに割り当てられるSecret KeyがURLのuse/以下に記載されているのでコピーしておきます。今回の例ではSecret Keyは GnzpClq0nDwt4WEdTyTmt
の部分です。(このSecret Keyはサンプルです。既に無効になっていますので自身で取得してください。)
トリガーの作成
続いてトリガーとなるWebhooksの詳細を作成します。 IFTTTのレシピ作成ページから、「+this」のリンクをクリックします。
「Choose a service」から再度Webhooksを検索しましょう。
WebhooksはEventという単位でトリガーとなります。今回はEvent Nameを”Nefry”とし、「Create trigger」をクリックし作成します。Event NameはあとでNefry BTにも同じ名前で入力します。
アクションの作成
最後に、トリガーが生じた時に起こすアクションを登録します。 「+that」のリンクをクリックして、検索欄からLINEを検索しましょう。ここでTwitterやGmailなどを選択すると、それぞれのサービスと連携させることが出来ます。
Recipientと書かれた欄にメッセージを送るLINEの送信先を選択します。
Messageと書かれた欄には送信するメッセージを入力します。MessageのValueにはプログラムから値を渡すことができるので、温度センサや明るさセンサなどの値をメッセージに組み込むことが可能です。写真のURLがあれば写真を送信することもできます。
入力が完了したら、Create actionをクリックして保存します。
最後にFinishを押し、IFTTTのレシピの作成は完了です。
開発環境(Arduino IDE)を整える
続いてNefy BTにプログラムを書く環境を整えます。プログラムの書き込みにはArduino IDEと呼ばれるエディタを使用します。公式サイトからダウンロードし、以下の手順でNefry BT用の設定を追加してください。
Arduino IDEの「環境設定」のページから、「追加のボードマネージャのURL」に以下のリンクを入力して検索します。
https://nefry.studio/package_nefrybt_index.json
メニューバーの[ツール]から、[ボード] -> [ボードマネージャー]を選択します。選択肢に「Nefry by Nefry Community」が表示されているので、インストールします。
これでプログラムを書き込む準備が整いました。
プログラムを書き込む
以下はNefry BTに搭載されている「スイッチ」を押したときにIFTTTのEventを呼ぶプログラムです。
Arduino IDEを開き、以下のコードを貼り付けます。(//以降の部分はコメントです。)
#include <Nefry.h>
#include <NefryIFTTT.h>
String Event, SecretKey;
int counter =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.enableSW(); //SW有効化
}
void loop() {
if (Nefry.readSW()) { //SWを押した時
counter++; //送信回数加算
bool sendData = IFTTT.send(Event, SecretKey,"Nefry",(String)(micros()/1000000)+"秒",(String)counter);//IFTTTにデータを送信
//Value1:Nefry,Value2:Nefryが起動してからの秒数,Value3:送信カウンタ
if (!sendData) {//IFTTTにデータを送信が成功したか失敗したかの判定
Nefry.setLed(255, 0, 0); //Errの時、赤色点灯
}
Nefry.ndelay(1000); //送信後1秒間待つ
}
}
貼り付けできたら[ツール] -> [ボード]から「Nefry BT」を選択します。Nefry BTとPCを繋ぎ、[ツール] -> [シリアルポート]でNefry BTのシリアルポートを選択しましょう。 ボードとシリアルポートを選んだらArduino IDEの左上にある「→」を押しプログラムを書き込みます。
「ボードへの書き込みが完了しました。」と表示されたら、Nefry BTへのプログラムの書き込みは完了です。
最後にNefry BTにIFTTTとの連携情報を入力します。あと少しですので頑張っていきましょう!
Nefry BTとIFTTTを紐付ける
Nefry BTから”Nefry-OOOO”というWi-Fiの信号が発信されているので接続します。
接続できたらChromeやIEなどのWebブラウザでNefry BTのサイトにアクセスしましょう。http://192.168.4.1
にアクセスするとNefry BTの設定サイトが表示されます。このページからNefry BTに関する様々な設定ができます。
まずは「Setup WiFi」をクリックし、Wi-Fiの設定をしましょう。 接続するWi-Fiを入力して「Save」をクリックすると、Nefry BTに設定を保存&再起動します。Wi-Fiが切断したら再接続してください。
設定が完了したら、トップページに戻り「Data Store」のページに移動します。 SecretKeyにはWebhooksで確認した値を、EventにはLINEと連携した際に入力したEvent Name(今回は”Nefry”)を入力します。Saveをクリックし値を保存するとNefry BTが再起動します。
いよいよNefry BTについているスイッチを押してLINEにメッセージを送ってみましょう!
スイッチを押してLINEにメッセージを送ってみる
Nefry BTのスイッチを押すとLEDの色が変わり送信を始めます。送信が完了するとLEDが水色になり、LINEに通知されました!IFTTTのサーバ状態により応答が悪い場合もありますが、その時はIFTTTのページにてリロードをすると反応してくれます。
初回は登録が多く時間がかかりますが、今後はサクっと作れるでしょう。
さいごに
半田付けや複雑な設定なしで、ハードウェアをきっかけにしてLINEへメッセージを投稿する連携をサクッと試すことができました。今回紹介したNefry BTとIFTTTの連携を応用すればTwitterやGmailなどにもメッセージを送信できます。
リアルタイム通信が得意な「Milkcocoa」やクラウドサービスMicrosoft AzureのIoT向け機能である「Azure IoT Hub」などを使うとより幅広い開発ができるでしょう。
今後の更新で簡単に接続できるライブラリやサンプルコードを追加していく予定です。生まれたばかりでまだまだヒヨッコですが、進化していくNefry BTを応援していただけたらと思います。