obniz Board 1Yで省電力な温度ロガーを作成

今回やること

obniz Board 1Y(ワンワイ)にはスリープ機能が追加されました。この機能を使うことで、電池のみで1年稼働するようなデバイスをつくれます。

今回は、計測した温度を定期的にスプレッドシートに書き込むプログラムを、スリープ機能を活用して作成していきます。

obnizのサーバーレスイベントとIFTTTを活用して、定期的にスプレッドシートに温度が記録されるようにします。 スプレッドシートに書き込めたら、obniz Boardはスリープを行います。

※動画内は、計測間隔を変更しています。

用意するもの

組み立て方

次の表のようにobnizと温度センサーを接続します。

obniz SHT31
0 +V
1 SDA
2 SCL
3 ADR
4 GND

[参考] obniz パーツライブラリ(SHT31)

 

プログラム

IFTTTとGoogle連携をする

IFTTTを使って、Googleのスプレットシートに記載するのですが、その前にIFTTTがどのようなものか簡単に紹介します。

IFTTTは「もし、○○(This)が起きたら○○(That)を実行する」ということができるサービスです。 具体例で説明すると、「ツイートされたらスプレットシートに内容をまとめる」や「家に近づいたら、エアコンをつける」などといったものを作れます。

IFTTTから早速作成していきます。

まずは、もし〇〇したらの部分を設定します。「This」をクリックします。

Choose a service(Step 1 of 6 )
検索欄に「Webhooks」と入力して、絞られたものをクリックします。

Choose trigger (Step 2 of 6 )
「Receive a web request」をクリックします。

Complete trigger fields (Step 2 of 6 )
EventNameの欄に「sleep_temp」と入力し、[Create trigger]をクリックします。

次に「That」をクリックして、記録先を設定します。

Choose action service (Step 3 of 6 )
検索欄に「GoogleSheets」と入力して、絞られたものをクリックします。

(ここで使用するGoogleアカウントを選択するダイアログが開く場合があります。使用するアカウントを選択し、IFTTTからのアクセスを許可してください。)

Choose action (Step 4 of 6)
「Add row to spreadsheet」をクリックします。

Complete action fields (Steo 5 of 6)
スプレットシートに記載する情報を設定します。

  • Spreadsheet name : スプレットシート名(ここではobniz_sleep_temp)
  • Formatted row : スプレットシートにどのようなデータを書き込むのか設定
  • Drive folder path : Google Driveのどのフォルダに保存するのか設定

Review and finish (Step 6 of 6)
[Finish]をクリックすれば作成は完了です。

あと一部設定を確認しておく項目があります。

[Webhooks]の設定ページを開き、右上にある「Documentation」をクリックします。

「Your key is」と書かれている後ろの太文字をコピーしておきましょう。後ほど、プログラムのところで使用します。

obniz Boardを登録しよう

obnizのコンソールに移動し、「デバイス」 → 「デバイスを追加」をクリックします。

ダイアログが開いたら「obniz公式デバイスを使う」をクリックします。 あとは画面の指示にしたがって登録してください。

プログラムを書こう

サーバレスイベントで使うため、プログラムをリポジトリにいれます。
obnizのコンソールに移動し、「リポジトリ」→ 「新規作成」を行います。

ダイアログが表示されるので、次のように設定します。

  • タイプ : WebApp
  • アクセスレベル : 非公開
  • ファイル名 : お好みで(今回はsleep_temp)

設定できたら、「作成」をクリックします。 そうすると、プログラムの入力画面がでるので、完成したプログラムに置き換えます。

以下の2箇所を修正します。

  • Your KeyをIFTTTで取得したKeyに変更
  • OBNIZ_ID_HEREをobniz Boardに表示されているIDに変更

プログラムができたら左上にマウスを合わせると「保存」がでてくるので「保存」をクリックします。

サーバーレスイベントを設定する

サーバーレスイベントとは、本当はそれぞれが必要になるサーバーを用意しなくても簡単にobnizを使える機能です。

obnizのコンソールから「サーバーレスイベント」 → 「新規作成」をクリックします。

設定項目が複数出てきますが、順に設定していきましょう。

  • 名前 : お好みで(今回はSleepTempEvent)
  • 実行するWebApp : 先ほど保存したプログラム名
  • きっかけ : obniz Hardware Event
    • obniz : 今回温度測定したいobnizのID
    • Event : online

設定できたら、「作成」をクリックしましょう! これで準備は完了です。

動かす

20分に1回スプレットシートに保存されているのが確認できます。

obnizの動作も20分に1回画面がついて、オンラインになってすぐ画面が切れてまたスリープしているのが確認できます。 (IFTTTは最大15分の遅延の可能性があるため、すぐに反応しないことがあるかもしれません。)

※動画内は、計測間隔を変更しています。

完成したプログラム

おわりに

このようにIFTTTとスリープ機能を使って省電力な温度計測デバイスを簡単に作れます。

obnizを使えば、遠隔地にあってもコンソール上でスリープ間隔を変えることできます。
また、別の種類のセンサーに交換をしてもプログラムを簡単に更新できるメリットもあります。

ぜひobniz Board 1Yを使って作品を作ってみてはいかがでしょうか!