はじめに
以前、obniz(オブナイズ)で定期的にセンサ値を取得してGoogle スプレッドシートに保存するデータロガーシステムを、以下の3つの方法で作成しました。
これらの方法のメリットやAPI制限について比較してみます。
IoT機器にobnizを利用するメリット
ArduinoやRaspberry Piと比較したobnizの特徴
obniz(オブナイズ)は日本のCambrianRobotics社が開発したマイコンボードで、Wi-Fiに接続してインターネット経由で操作します。
従来Arduinoのようなマイコンボードは、Wi-Fiに繋ぐだけでモジュールを追加したりプログラムの分量が増えたりと一苦労でしたが、obnizはWi-Fiに繋ぐことを前提とし、スマートフォンのように、電源を入れて画面の指示に従うと簡単にWi-Fiに接続することができます。
またRaspberry PiのようなLinuxボードは突然の電源断によりファイルシステムが壊れたり起動しなくなることがありますが、obnizではそのような心配も少ないです。
obnizボード上で、通常の使用によりメモリが書き換えられるのは、Wi-Fiのアクセスポイント設定を変更するときだけでしょうか。
エッジデバイスに望まれる機能
IoTシステムの典型例として、遠隔データロガーを作ることを考えます。要件として、
- 家庭やオフィス、屋外、様々な場所の温度を遠隔監視したい
- 定期的にログを取り、またリアルタイムに値を取得できるようにしたい
- 今後センサやアクチュエータを追加する可能性がある拡張性
- セキュリティ
- 非常時の安定性
という要件があります。このとき、エッジデバイスに望まれる機能として、
- 大量のセンサをばらまいて一元管理できる
- 常にインターネットに繋がっていて、リクエストを送るとリアルタイムに値を測定して返してくれる
- 遠隔でプログラムを更新することができる
- 端末-クラウド間の暗号化
- 突然の電源断で壊れにくい、手動操作不要ですぐ復旧する
などが考えられます。
obnizでは
- ライセンスごと(ボードごと)にIDが元から付されており、クラウド経由で複数のデバイスをまとめて操作することも可能
- 電源が入るとすぐにWi-Fiに接続されクラウド経由で操作可能になる
- APIで操作するのでプログラム書き込み不要
- 端末-クラウド間の暗号化可能(Proライセンスのみ)
- 通常使用時書き換えられるメモリがない
ため、これらの望まれる機能を備えているといえます!
(ただ現時点ではWi-Fiアクセスポイントが近くにある必要がありますね…)
そこでobnizを利用して、IoTデータロガーのシステムを構築してみました。
IFTTTとIntegromatの比較
IFTTTやIntegromatといったフロー自動化サービスを利用すれば、obniz以外にプログラムは不要でした。
今回2種のサービスを介してそれぞれIoTセンサーロガーを作成した上で気づいたメリットやデメリットをまとめました。
IFTTTのメリット
- 日本での作例も多い
- 動作回数(無料で使える動作回数はIntegromatより多い?)
実際にIFTTT経由でobnizとGoogle スプレッドシートを接続する方法で動かしてみているところ、30分間隔であれば制限超過せずに72時間以上動作し続けました。20分間隔では数時間おきに以下のように制限超過してしまいます。
Integromatのメリット
-
即時に動作する(IFTTTはなぜか数時間後にまとめて反映されることが多かった)
ただ、フリープランでは動作回数が1ヶ月あたり1000回までとなっており、1回の記録動作につきWebhooks
とGoogle Sheets
のAdd a Row
という2つの要素を用いているため、記録できるのは1ヶ月に500回までです。一定間隔で記録するならおよそ90分に1回までですね…
動作回数の制限が許容範囲であれば、Integromatを使ったほうが良いでしょう。
Google Apps Script でAPIを作成する場合
Google Apps Script でAPIを作成する場合でも、こちらの記事の通り、プログラムはほぼコピペでできます。この場合、
- obniz Cloudのサーバーレスイベント機能: 120 run/day, 1 runあたり30秒以内
- GAS: Triggers total runtime 90min/day
というAPI呼び出し制限があります。
API制限のまとめ
以上より、API制限にかからず安定して記録できる最短更新間隔は以下のようになると考えられます。
方法 | 最短更新間隔 |
---|---|
Integromat経由でobnizとGoogle スプレッドシートを接続 | 90分 |
IFTTT経由でobnizとGoogle スプレッドシートを接続 | 約30分 |
Google Apps ScriptでAPIを作成 | 12分 |
より高頻度でデータを保存したい場合は、Google Apps ScriptでAPIを作成する方法において、obniz側のプログラムでsetIntervalを用いて書き、node.js等で常に実行しておくという方法があります。しかし、GASの利用制限も超えてしまう場合は、Googleスプレッドシートを使うことはできないので、他のIoT向けサービスを検討する必要があります。IoTに特化したプラットフォームとして、Google Cloud IoT, Microsoft Azure IoT, AWS IoT等があり、IoT向けの通信にはMQTTという通信方式が使われます。
最後に
IntegromatはフリープランでのAPI制限が厳しいですが、とても簡単で応用の効くサービスだと感じました。
いずれの方法でも、obnizを使えば初心者でも安定したIoTデータロガーを低コストで素早くシンプルに構築できるようになっています。センサの価格も安くなってきていますし、個人でもデータを実際に取って可視化してみると、新たな発見があって面白いです。ぜひIoT化を推し進めていきましょう。