ニュース

【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」をクリックします。
    • 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」をクリック。これで完成です。
    • Keyの取得
      • 作ったAppletのWebHookのアイコンをクリックします。
      • WebHooks integrations の画面になったら「Documentation」をクリックします。
      • Your key is : の右側の文字列をコピーしておきます。あとでScratch側から呼び出すときに使います。
  • Google Driveに保存用フォルダーを作成
    • Google Driveにアクスし、Complete action fields の画面でDrive folder path として指定したフォルダー名「IFTTT」をマイフォルダの直下に作成します。
  • Streach3でプログラミング
    1. https://stretch3.github.io/ にアクセス
    2. 左下角の「拡張機能」ボタンをクリックし、「AkaDako」を追加します。
    3. 左下角の「拡張機能」ボタンをクリックし、「IFTTT Webhook」を追加します。
    4. プログラムを作成します。

      Google DriveのIFTTTというフォルダーの下に「ondo」という名前のGoogle Spreadsheetを作成し、スタートからの経過時間(秒)と温度を5秒毎に記録するプログラムです。IFTTT keyは先程IFTTTの画面でコピーしておいた文字列を入力します。
    5. 緑の旗をクリックします。この時、「シリアルポートへの接続を要求しています」というダアログが表示されたら、「AkaDako」を選択し「接続」をクリックしてください。

あとは、Google Driveを見るとIFTTTフォルダの下に「ondo」という名前のGoogleスプレッドシートが作られて、データが自動的に記録されて行きます。

なお、今回の設定方法は、value1でファイル名を変える事が出来るため、Keyさえメモをしておけば、何度でも使いまわしをする事が出来ます。

この他に出来る事

IFTTTは、様々なインターネット上のサービスと連携する事が出来ます。

  • ある温度を超えたらLINEに通知
  • 気圧が一定以下になったらメールを送信
  • 暗くなったらクリスマスイルミネーションのコンセントをON
  • etc