とある実験のーと

趣味ブログ

ESP32でオンラインデータロガーを作る ②IFTTTの設定

前回の内容

azospiran.hatenablog.jp

azospiran.hatenablog.jp

温度データを獲得することができた。次にやりたいことはこのデータの保存である。 保存方法としては、

  1. SDメモリなどの外部記録媒体に保存する。

  2. クラウドにデータを保存する。

の二通りが考えられる。このご時世、SDカードなどのローカルにデータを保存していても取り出しなどが面倒であり活用の幅も制限される。そこで、Google spread sheetを活用したデータ保存方式をとった。Google spread sheetを利用する利点として、 記録時刻が正確、データ消失の心配がない、容量がほぼ無限、処理の自動化やトリガーの設定がとても簡単である事がある。 一先ず、以下の要件を満足することを目標とした。

  • データはできる限りリアルタイムでグラフとして閲覧できるようにする。
  • 以後のセンサー類の増加にも対応できる冗長性を持たせる。
  • ロギングが失敗してる場合などに通知する機能を持たせる。

このシステムの概略図

f:id:azospiran:20190804042057p:plain 取りあえずこんな感じ。シンプルにESP32はデータの収集に特化させ、少し複雑なデータ処理などはGoogle spreadsheetとscriptによって対応するようにした。通信の安定性の問題をある程度解決できると思う。IFTTTの設定をいじって対応してる人も居たが、冗長性がないとおもったので、google scriptで対応した。

IFTTTの設定

このブログはできるだけ省力運用オリジナルの方をリスペクトしているのでリンクで対応するようにている。改変したところや詰まったところを中心に特記する。

randomnerdtutorials.com

やること

  • IFTTTのアカウントを作成 (持っていない場合, 無料)
  • Webhooksの設定
  • イベントの動作確認

webhooksの設定

IFTTTのアカウントを作成が終わって、IFTTTの設定であるが基本的にはリンクを参照されたい。
This: webhooksを検索して選択。"event name"はトリガーを動作させるために必要なので適切な名前をつける。
That: google sheetを検索して選択。その後"add row to spreadsheet"を選択する。
次の設定画面だが、 sheet名はThisでつけた"event name"と同じにする。"Formatted row"は触らない。また、"Drive folder path"の内容は消して空白でOK.
これで一応設定完了。 初めてGoogle spreadsheetを利用する場合、アクセス権の確認が自動であるはず。 f:id:azospiran:20190804045830p:plain

イベントの動作確認

ホーム画面に戻り、"My services"からwebhooksの項目を開く。先ほど作ったeventが記載された画面がでてくる。ここで"Docmentation"を開くとイベントを実行するための情報が記載されている。 f:id:azospiran:20190804052618p:plain "Key"はユーザ毎に違う、且つこれが知られてしまうと外部からPUSHされてしまうため秘匿にしておく。
Make a POST or GET web request to:先ほど作ったイベントの名前を記入する。
With an optional JSON body of:ここで適当に値をだ代入する。
"Test it"で実行。自分のGoogleアカウントのGoogle driveに新しくスプレッドシートが作成され、値が書き込まれていたら成功。作成されなかった場合、設定の間違いか、Google spreadsheetへのアクセス権が上手く設定できていない可能性がるので確認する。 f:id:azospiran:20190804052603p:plain

※ Goole spreadsheetへのアクセス権の再設定

以前からGoogle spreadsheetへアクセスしていたので、今回のイベント作成時にアクセス権の確認がなかった。一方で、テストで上手く動作しないトラブルがあった。
どうも、新しいイベントを作成した際にアクセス権を更新する必要がある場合があるみたい。 f:id:azospiran:20190804055008p:plain "My services"のGoogle sheetの項目を開くと、以上の画面が出てくる。ここで"View activity log"を確認することでイベントがどういうエラーで止まったのか確認できる。アクセス権の問題みたいだったら、Account info横にある"EDIT"でIFTTTからGoogle driveへのアクセス権を再設定できる。