ビニールハウス農園「柏ファーム」でIoTをやってみたPart2 ~IoTプラットフォームについて~

はじめに

三菱総研DCSのインフラエンジニアの中川です。
Part1では本取り組みの概要について紹介しました。目的はIoTを活用して柏ファームで働く従業員・農場長が働きやすい環境を作ることでした。Part2では取り上げた課題を解決するために、データを収集するデバイスやパブリッククラウドに何を採用し、どのように組み合わせてプラットフォームを構築したのかご紹介します。

プラットフォーム全体像

IoTを使用するにあたって、データを収集するデバイス、通信するネットワーク、蓄積する貯蔵庫の役割やアプリケーション環境といったサービス化するための基盤(IoTプラットフォーム)をどうやって構築するのか考えなければなりません。私たちが考えた採用のポイントは、スピーディーな構築と低コストを実現できることです。これに基づき構築したプラットフォームの全体像は下図のとおりです。

デバイスで収集したデータはLPWAネットワークでSORACOM Cloudに集約し、そこからAWSへ転送され、Kinesis Data Firehoseを起点にデータ分析基盤とデータ可視化に分岐します。採用した製品やサービス、採用した理由について上図の赤枠で囲んだ3つのステップに分けて紹介します。

Step1.デバイスとネットワーク

私たちがターゲットにしたハウス栽培では、半屋外の環境にデバイスを設置しなければならないので使用できる電力や電源の口数が限られていたり、簡単につなげるWiFiが用意されていなかったりなど制約が多いです。そのため消費電力や通信にかかるコストを考慮し、デバイスにはマイコン、ネットワークにはLPWAという技術を採用しました。以下では実際に使用した製品について説明します。

デバイス

マイコンはメジャーで事例も豊富なことからArduinoとRaspberry Piを比較しましたが、現場に運用負荷をかけないことを第一に考え、PCよりも装置に近く構造がシンプルなArduinoを採用しました。詳細はPart1で説明しています。

ネットワーク

無線免許が不要なLPWAの中からLoRaWANとSigfox[1]を検討しました。SigfoxはLoRaWANに比べて一度に送信できるデータサイズや1日あたりの通信回数の制限が厳しいですが、ゲートウェイの設置に関わる初期費用は不要でありランニングコストも低いため、最終的にSigfoxを採用しました。計測する温度や湿度のデータサイズは小さく、通信回数は日中と夜間で間隔を変えるなどの工夫をおこない制限に対処しました。

[1] Sigfox: 2009年に設立したフランスSigfox社が提供するLPWA(Low Power Wide Area)ネットワーク(出典元:SORACOM Air for Sigfox

以下のようにArduino UnoとSigfox Shield for Arduino(UnaShield)を組み合わせて使用します。最初からSORACOM Cloudに接続することを考えていたためUnaShield はSORACOMから購入しましたが、お手軽にSigfoxを試したいだけであれば秋葉原のショップでも販売されています。

デバイスで収集した気温や湿度などのデータはLPWAネットワークを介してSORACOM Cloudへ転送されます。その後、別のクラウドサービスにデータを転送したいので、SORACOM Funnelを使用しました。SORACOM Funnelはデータを特定のクラウドサービスに直接転送してくれるSORACOM Cloudのサービス(クラウドリソースアダプター)です。これを使用することで数台~数十台のデバイスからSORACOM Cloudに集約したデータを1つの設定でAWSやAzureなどのクラウドサービスに転送することができるため、デバイス側は接続先や接続方法を気にする必要がなくなります。

Step2.データ蓄積と分析

Sigfoxで収集したデータはSORACOMのクラウドへ送信され、SORACOM Cloudでもデータの蓄積や可視化をしてくれるサービスは提供されている(SORACOM Harvest)のですが、分析基盤は提供されていません。当社としてのデータ二次活用といった再利用性などを考え、データ蓄積・分析基盤をAWSで構築しました。これらをオンプレで作ろうとすると、サーバ・ネットワークの構築、運用など考えなければならないことがたくさんありますが、パブリッククラウドのAWSを使用すれば素早く低コストで実現できます。今回は下図のように、データ蓄積にはS3、分析にはQuickSightを使用しました。

データ蓄積

データ蓄積には従量課金のストレージサービスであるAmazon S3を使用します。一度SORACOM Cloudで収集されたデータはHTTPS通信でストリーミングデータの受け口となるKinesis Data Firehoseに転送され、受け取ったデータはそのままS3に流し込んで蓄積することができます。S3は容量無制限のスケーラブルなストレージですので、従来のオンプレのようにディスク容量のサイジングや容量逼迫を気にする必要がありません。

データ分析

S3は非構造化データなので、分析するためにはAthenaを使用してデータを構造化する必要があります。QuickSightを使用すると、データのグラフ化や分析が可能になります。上図のようにS3で蓄積したデータをインプットとすることができます。こうすることでQuickSightからカスタムクエリを実行し、自由にデータ分析することができます。

Step3.データ可視化

データ可視化に関する機能構造は下図のとおりです。Kinesis Data Firehoseまではデータ蓄積・分析基盤と同じルートですが、ここから分岐しています。Node-REDはAWSとは異なるクラウドサービス上にあるので、Lambdaを経由してNode-RED上のアプリケーション・エンドポイントにデータをHTTPのPOSTリクエストで送信しています。

ここで言うデータ可視化はユーザ側に提供するアプリケーションとしての役割を担います。デザインを考え可視化の仕組みを一から開発するとかなりの手間がかかります。さらに、アプリケーション環境の構築が必要となると開発以外でも時間をかけることになります。Node-REDはこういった問題を解消してくれるIoT向けのアプリケーション開発ができるOSS(オープンソースソフトウェア)で、以下のような特徴を持っています。

  • 機能を表すNodeと、機能と機能をつなげるFlowを組み合わせるだけでノンコードでプログラムを組めるため、とにかく開発スピードが速い
  • 複雑な処理をJava Scriptで記述して独自のNodeを作成することもできる
  • Dashboardと呼ばれるNodeを使用すれば簡単にグラフなどのWebアプリケーションを開発できる
  • Java Scriptベースで作られているため軽く、ローカルPCやIaaS上にも容易にデプロイできるだけでなくDockerコンテナとしてデプロイすることもできる。また、パブリッククラウドでサービスとしても提供されているので実行環境構築の手間がかからない

上記のとおりNode-REDはオンプレやIaaSにデプロイして使用できますが、短期のPoCにおいてサーバ構築の手間を省くためIBM Cloudで提供されているものを使用しました。

まとめ

本編ではデータ分析やアプリケーション環境の基盤となるIoTプラットフォームについて紹介しました。素早く低コストで実現するために通信料の安いLPWAやパブリッククラウドを利用して構築しました。次回はこのプラットフォームを使って提供したサービスについて紹介します。

Part1 |  Part2 | Part3