ブログ
レポート

【MA:Techblog/IoT編】つながれ!画面の中と外!マイコンとIFTTTを使ったハンズオン

2015.08.25

IFTTTとマイコンをつないでみよう!

今回のマイコンは、「GR-SAKURA」を使用します。

GR-SAKURAとIFTTTを連携して、「マイコンについているボタンを押したらメールが来る」仕組みを作ってみます。

GR−SAKURAについての参考リンク:がじぇっとるねさすとは?

そもそもIFTTTとは

概要をWikipediaより抜粋

IFTTT(イフト)とは「レシピ」と呼ばれる個人作成もしくは公に共有しているプロフィールを使って数あるWebサービス(Facebook、Evernote、Weather、Dropboxなど)同士で連携することができるWebサービスである。

開発したのはリンデン・チベッツで2010年にスタートした。

IFTTTとは「IF THIS THEN THAT」「 もし@@ならXXする。」というものです。

もっと詳しい内容を知りたい場合は元記事をご参照ください。

まずはIFTTTアカウントを作成

https://ifttt.com/にアクセスしてサインアップ。

認証メールでアカウント認証を行ったら登録完了です。

レシピの作成 – IF THIS THAN部分

レシピはIFTTTの ログインした状態でメニュー(右上の自分のIDの部分からサブメニューを表示)からCreateを選択し、

https://ifttt.com/myrecipes/personal/newへアクセス。

thisのリンクをクリックします。

これは、IFTTTの「IF THIS THAN(もし@@なら)」の部分の作成に該当します。

 

スクリーンショット 2015-08-25 0.13.50

 

Search Channelに「Maker」を入力して、アイコンをクリックし、選択します。

Maker Channelとは、マイコンと連携を行うためのChannelになります。

 

スクリーンショット 2015-08-25 0.19.18

 

続いて、TRIGGERを選択します。

TRIGGERとはその名の通り”引き金”のことです。

 

ここではレシピの動く引き金となる事柄の設定を意味します。

選択肢は今のところ1つしかありませんが、「Receive a web request(ウェブリクエストを受けたら)」を選択し、次の画面に進みます。

 

スクリーンショット 2015-08-25 0.20.38

 

TRIGGERに名前をつけます。

なんという名前の引き金が引かれたかによって、次の操作への紐付けを行うためです。

ここでは「test」を入力します。

 

 

 

 

スクリーンショット 2015-08-25 0.24.35

 

ここまでの操作で、IFTTTの「IF THIS THAN(もし@@なら)」の部分の作成したことになります。

今回は「もしマイコンでtestという名前のイベントでウェブリクエストが行われたなら」ということになります。

レシピの作成 – THAT部分

つぎはIFTTTの「THAT(どうする)」の部分を設定します。

thatのリンクをクリックして次に進みます。

 

スクリーンショット 2015-08-25 0.24.59

 

今回は単純にメールを送信してみます。

テキストボックスに「email」と入力して、emailアイコンをクリックします

(GmailやEmail Email Digestではないのでご注意)

 

スクリーンショット 2015-08-25 0.55.25

 

つぎに、何をさせるかを選びます。

選択肢は1つしかありませんが、「Send me an email(私にメールを送る)」を選択します。

 

スクリーンショット 2015-08-25 1.59.47

 

※送信先メールアドレスは、アカウント作成時に入力したメールアドレスが使用されます。

送信されるメールの内容を設定します。

タイトルと本文を設定できますので、任意の形に変更可能です。

内容を決めたら「Create Action」ボタンをクリックします。

 

スクリーンショット 2015-08-25 2.00.46

 

「Create Recipe」ボタンをクリックしたら、レシピの作成は完了です。

レシピタイトルで、「IF THIS THAN THAT」の内容を確認することが出来ます。

 

スクリーンショット 2015-08-25 4.26.12

 

作成したレシピの内容はあとから編集することも可能です。

 

スクリーンショット 2015-08-25 4.42.50

MakerChannelのシークレットキー取得

MakerChannelと連携を行うためのシークレットキーを取得します。

IFTTTにログインした状態で https://ifttt.com/maker へアクセスすると、シークレットキーが確認できます(下図の画面右下)

スクリーンショット 2015-08-25 4.45.04

GR-SAKURAの設定

GR-SAKURAのリファレンスはこちらから。 今回の手順に倣った資料、はじめてのSAKURAはこちらから

プログラム作成

マイコンで動かすためのプログラムをウェブコンパイラで作成します。

こちらのページから今回は「ゲストログイン」を選択。

スクリーンショット 2015-08-25 5.26.32

 

次の画面で利用規約に同意し、ウェブコンパイラ画面へ遷移します。

ゲストログインでは、ブラウザを終了すると作成した内容が削除されますのでご注意ください。

テンプレートを選択

IFTTTと連携するためのテンプレートが用意されていますので、選択します。

プロジェクト名に半角英数で任意の名前を入力し、プロジェクト作成ボタンをクリックします。

スクリーンショット 2015-08-25 5.27.56

プログラムを開く・書き換えする

画面左側のgr_sketch.cppをクリックします。

すると中央にファイルの中身であるソースコードが表示されます。

また、ソースコード内容について補足ですが、GR-SAKURAのプログラムはarduinoライブラリ準拠となっています。

スクリーンショット 2015-08-25 5.29.30

 

34行目の内容を書き換えします。

変数に代入する内容をさきほどIFTTTで取得したMaker Channelのシークレットキーに置き換えます。

スクリーンショット 2015-08-25 5.31.51

ビルドの実行

書き換えたらビルドを実行します。 画面右のほうにある「ビルド実行」をクリックします。

スクリーンショット 2015-08-25 5.34.33

 

初回のビルドは暫く時間がかかります。

ビルドが完了したらダイアログが表示されます。

「Make process completed」と一番最後の行に表示されていたらビルド成功です。

実行ファイルをダウンロード

  画面左の下のほうにあるSketch.binを右クリックするとサブメニューが表示されます。

ダウンロードを選択して手元にコピーします。

 スクリーンショット 2015-08-25 5.36.26

 

次は、マイコンをPCにつなげて動作確認を行います。

GR-SAKURAの接続

最初にリセット

GR-SAKURAをPCに接続して、Lチカすることを確認したら、赤いボタンを押してリセットを行います。

※画像引用元:はじめてのSAKURA

スクリーンショット 2015-08-25 5.57.40

binファイルのコピー

リセットするとGR−SAKURAが、USBメモリのように認識されますので、

先ほどウェブコンパイラからダウンロードしたsketch.binをGR-SAKURAにコピーします。

 

※画像引用元:はじめてのSAKURA

スクリーンショット 2015-08-25 5.58.43

GR-SAKURAをイーサネットに接続する

今回は会場の回線に有線接続しました。

青いボタンを押して、トリガーを引いてみる

いよいよ、先ほどのIFTTTのレシピが動作します。

青いボタンを押すと、IFTTTからメールが届きます。

 

 

少しだけソースコードを読んでみよう

先ほどのウェブコンパイラに戻り、gr_sketch.cppの内容を見てみましょう。

ソースコードの73行目に、if (digitalRead(PIN_SW) == LOW) という文が書いてあります。

degitalReadとは?

指定したピンの値を読み取る関数です。

GR-SAKURAのプログラミングはarduinoプログラミングと同様に記述出来ます。

http://www.musashinodenpa.com/arduino/ref/index.php?f=0&pos=2048

ピンとは?

では、「指定したピン」とは何でしょうか。

PIN_SWが、degitalReadの引数となっています。

これが「指定されているピン」であり、プログラム的には定数の要素となります。

では、そのピンとは何かというところについてはマイコンのリファレンス図を参照して調べます。

 

画像参照元:SAKURAスケッチリファレンス

GR-SAKURA_PinMap_v200

 

図から、PIN_SWが青いボタンであることがわかります。

つまり、先ほどのプログラムについては「もし青いボタンが押されたら」という条件分岐を指しています。

他の部分はどのような内容が記述されているのか、IFTTTとはどうやって連携したのか、

テンプレートのコードをarduinoのリファレンスと照らしあわせて読み進めみると、

マイコンプログラミングの勉強になると思います。

http://www.musashinodenpa.com/arduino/ref/index.php

編集後記

物理的なボタンと、インターネットサービスが連携して動くのは、体験としてとても楽しいです。

自分で自在につくれたら、きっともっと楽しくなると思います。

いままで、ウェブやアプリの開発をしていた方も、それと掛けあわせて何かを作ってみるということに挑戦してみるのも良いのではないでしょうか!

また違うセンサーを組み合わせたIoTテックブログは続編も予定しておりますので、公開をお楽しみに!

関連する記事