【AkaDako × IFTTT WebHook】計測値をGoogle スプレッドシートにリアルタイム記録
AkaDako が使えるScratchの互換プラットフォーム Stretch3 には、拡張機能に「IFTTT WebHook」があります。IFTTTは、ネット上の様々なサービス同士を連結してすることが出来るサービスで、AkaDakoと組み合わせると、夢の環境(?)を手に入れる事が出来ます。ただ、設定手順が非常に多いです。
この記事では、「測定値をリアルタイムにGoogleスプレッドシートに記録」する環境構築を例に、IFTTTの設定手順とプログラムの組み方を説明します。頑張って1度設定すれば使いまわしが出来るようにしてみました。
用意する物
- AkaDako本体
- 計測に使いたいセンサー(ここでは環境センサーBME280を使います)
- Googleアカウント(学校や会社で配布されているGoogle Workspaceのアカウントは他のサービスとの連携をブロックしている事があります。一般のgmailアカウントの方が良いかもしれません。)
設定手順
「AkaDakoの接続→IFTTT環境設定→GoogleDriveにフォルダーを作成→プログラミング」の流れで作業を行います。
- AkaDakoの接続
- PCとAkaDakoをUSBケーブルで接続
- AkaDakoのI2Cに環境センサーを接続
- IFTTT環境設定
- https://ifttt.com/ にアクセス。
- ユーザ登録をします。
- 「Get started」をクリック。
- 「Continue with Google」をクリック。
- アカウントの選択画面が出るので、現在利用中のGoogleアカウントをクリック。
- Welcome to IFTTT!の画面になります。適当に何か選ばないと先に進めないので「Date & Time」をクリックし、「Continue」をクリックします。
- 有料のIFTTT Proを試すか聞いてきますが、まずは「Not now」をクリックします。
- 「Recommended Applets」が出てきますが、とりあえずは「Get started」をクリックします。
- 「Get started」をクリック。
- Appletを作成します。
- 「Create」をクリックします。
- 「If This」の「Add」をクリックします。
- Choose a serviceの画面になったら「Web」で検索すると「Webhooks」が表示されるので、クリックします。
- Choose a trigger の画面になったら「Receive a we request」をクリック。
- Connect serviceの画面になったら「Connect」をクリック。
- Complete trigger fields の画面になったら、Evnet Nameに「log」と入力して「Create trigger」をクリックします。このEvent Nameは、Scratchから利用する時の識別子となります。
- Create your ownの画面になったら「Then That」の「Add」をクリックします。
- Choose a serviceの画面になったら「Sheet」で検索すると「Gooogle Sheets」が表示されるので、クリックします。
- Choose an actionの画面になったら「Add row to spreadsheet」をクリックします。
- Connect serviceの画面になったら「Connect」をクリック。
- アカウントの選択画面が出るので、現在利用中のGoogleアカウントをクリック。
- IFTTTからGoogle Driveへのアクセス権について確認画面が出るので「許可」をクリック。
- Complete action fields の画面になったら、以下のように設定します。登場するValueXは、Scratchから呼び出す時に使うパラメータになります。ここではSpreadsheet nameにValue1を使うのがポイントです。これによりScratch側でスプレッドシートのファイル名が指定出来るようになります。設定が完了したら「Create action」をクリック。
- Create your ownの画面になったら「Continue」をクリック。
- Review and finishの画面になったら「Finish」をクリック。これで完成です。
- 「Create」をクリックします。
- Keyの取得
- 作ったAppletのWebHookのアイコンをクリックします。
- WebHooks integrations の画面になったら「Documentation」をクリックします。
- Your key is : の右側の文字列をコピーしておきます。あとでScratch側から呼び出すときに使います。
- 作ったAppletのWebHookのアイコンをクリックします。
- https://ifttt.com/ にアクセス。
- Google Driveに保存用フォルダーを作成
- Google Driveにアクスし、Complete action fields の画面でDrive folder path として指定したフォルダー名「IFTTT」をマイフォルダの直下に作成します。
- Streach3でプログラミング
- https://stretch3.github.io/ にアクセス
- 左下角の「拡張機能」ボタンをクリックし、「AkaDako」を追加します。
- 左下角の「拡張機能」ボタンをクリックし、「IFTTT Webhook」を追加します。
- プログラムを作成します。
Google DriveのIFTTTというフォルダーの下に「ondo」という名前のGoogle Spreadsheetを作成し、スタートからの経過時間(秒)と温度を5秒毎に記録するプログラムです。IFTTT keyは先程IFTTTの画面でコピーしておいた文字列を入力します。 - 緑の旗をクリックします。この時、「シリアルポートへの接続を要求しています」というダアログが表示されたら、「AkaDako」を選択し「接続」をクリックしてください。
あとは、Google Driveを見るとIFTTTフォルダの下に「ondo」という名前のGoogleスプレッドシートが作られて、データが自動的に記録されて行きます。
なお、今回の設定方法は、value1でファイル名を変える事が出来るため、Keyさえメモをしておけば、何度でも使いまわしをする事が出来ます。
この他に出来る事
IFTTTは、様々なインターネット上のサービスと連携する事が出来ます。
- ある温度を超えたらLINEに通知
- 気圧が一定以下になったらメールを送信
- 暗くなったらクリスマスイルミネーションのコンセントをON
- etc