【アプリ版】 obniz Board 1Yで省電力な温度ロガーを作成

今回やること

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

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

obnizのアプリのクラウド実行機能とIFTTTを活用して、定期的にスプレッドシートに温度が記録されるようにします。 スプレッドシートに書き込めたら、obniz Boardはスリープを行います。

この記事では、obnizのアプリ(App)として作成する方法をご紹介します。
obnizのアプリは、作成したアプリを公開し、他のユーザーに配布することができます。アプリについて詳しくは ドキュメント をご覧ください。

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

用意するもの

組み立て方

次の表のように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 (Step 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 Docs をご覧ください)。

アプリを自分で作らずにまず実行してみたい方は、すでに作成済の以下のアプリをインストールして動かしてみましょう。
省電力温度ロガー
インストール方法は、アプリのインストール – obniz Docs や次節の アプリをデバイスにインストールする をご覧ください。

 

obnizのコンソールに移動し、「アプリ開発」→「新規作成」を押します。

 

  「obniz Board/1Yを使うテンプレート」からEmptyを選び、出てきたウィンドウにアプリ名を入力します。そして、「アプリを作成」を押しましょう。

 

「アプリを作成」を押して出てきた画面を少しスクロールして、アプリ設定を編集します。

今回はobniz Board 1Yのスリープ機能を使って、デバイスがオンラインになるたびにクラウドでプログラムを実行したいので、「デバイスがオンライン時に実行」にチェックを入れます。
また、アプリをインストールして実行する際に、個別にIFTTTのAPI Secret Keyを設定できるように、「インストール時設定」を以下のように設定します。

 

スクロールして少し上に戻り、「プログラムを編集」からプログラム編集画面に入ります。プログラム編集画面に入ったら、下の 完成したプログラム の節にある省電力ロガーのリンク先のプログラムを貼り付けて保存しましょう。保存できたらアプリは完成です。

 

アプリをデバイスにインストールする

作成したアプリをデバイスにインストールします。コンソールのアプリ開発の画面に移動し、「インストール」を押します。

 

すると、インストールするデバイスを選択する画面に移動するので、プログラムを動かしたいobniz Board 1Yを選択します。また、IFTTTとGoogle連携をする の節で控えておいたキーを入力します。

このとき入力したキーが、以下のようにプログラム冒頭部分で、 Obniz.App.configs().IFTTTSecretKey として取り出されています。

const config = Obniz.App.configs();
const IFTTT_SECRET_KEY = config.IFTTTSecretKey;

最後に「インストール」を押せば完了です。このアプリはデバイスがオンラインになったら自動的にクラウド実行されるため、電源を繋げば自動的に実行されます。

デバイスをオンラインにしたあと、コンソール内の「デバイス」の画面でアプリステータスが以下のように緑になっていれば成功です。

 

完成したプログラム

作成済みのアプリ 省電力温度ロガー のプログラムをご覧ください。

動かす

20分に1回スプレットシートに保存されているのが確認できます。 obnizの動作も20分に1回画面がついて、オンラインになってすぐ画面が切れてまたスリープしているのが確認できます。

(IFTTTは最大15分の遅延の可能性があるため、すぐに反応しないことがあるかもしれません。)

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

おわりに

このようにIFTTTとスリープ機能を使って省電力な温度計測デバイスを簡単に作れます。 obnizを使えば、遠隔地にあってもコンソール上でスリープ間隔を変えることできます。 また、別の種類のセンサーに交換をしてもプログラムを簡単に更新できるメリットもあります。 ぜひobniz Board 1Yを使って作品を作ってみてはいかがでしょうか!