Amazon Web Services ブログ

AWS IoT を使用した水道およびガスメーターの公益サービスコネクテッドソリューション

Introduction

水道メーターは、住宅や大規模生産施設など、ほとんどの給水場所に設置されています。水不足が世界中で頻発するようになり、水の無駄使いを避けることがますます重要になっています。老朽化したインフラストラクチャのため、パイプを流れる水の 30 % が漏れによって無駄になってしまいます (AWS announces 6 new projects to help address water scarcity challenges)。IoT 化された水道メーターによる計測ソリューションがこの課題解決に役立つ可能性があります。

従来の水道メーターやガスメーターはクラウドやインターネットに接続されていません。また、1979 年と 2003 年にそれぞれ発表された業界標準のプロトコルである ModbusProfinet を利用しているケースが多いです。これらのプロトコルはクラウド接続を想定して設計されたものではありませんが、AWS と AWS パートナーが提供するソリューションにより、公益事業のデータをクラウドに転送することができます。

スマートメーターは従来のメーターに比べ、消費パターンのデータを活用することで水漏れや非効率な利用パターンの分析が可能となり、コストや資源の節約につながるなど多くの利点があります。
詳細な消費レポートを持つことで、企業は環境に対する持続可能性目標と企業の社会的責任への取り組みを支援できるようになります。

クラウドベースのサービスとスマートメーターを組み合わせることにより、予知保全の機能を活用し、障害が発生する前に新たな問題を自動的に分析して特定できます。
このような自動化により、分析プロセスを合理化し、手動での介入の必要性を低減可能です。

この投稿では、機械学習 (ML) の事前学習済みモデルを使用して漏れなどのデータの異常を検出する、広く適用可能なソリューションを紹介します。
このソリューションを実現するため、実際の水道メーターの例を使用し、既存の水道・ガスメーターを AWS IoT GreengrassAWS IoT Core に統合する手順を説明します。

Solution Overview

実際のソリューションに入る前に、システムのアーキテクチャとそのコンポーネントを確認しましょう。

図 1: ソリューションアーキテクチャの概要

図 1 は、AWS のソリューションアーキテクチャを示しています。この例では、標準的な電磁水道メーターを使用しています。
このメーターは、アナログ信号を送信するか、IO-Link マスターと通信するように設定できます。
簡単にするため、ここではアナログ出力を使用しています。
流量計からの測定値は、シングルボードコンピューター (この場合は手頃で軽量な Raspberry Pi Zero W) によって処理されます。

お好みであれば、AWS IoT Greengrassを実行できる別のデバイスをRaspberry Piの代わりに使うこともできます。
同様に、メーターとの通信に別のプロトコルを使用することもできます。
1 つのオプションとして、AWS が提供する IoT Greengrass コンポーネントによる処理が可能な Modbus が考えられます。
こちらの IoT Greengrass コンポーネントの詳細は、Modbus-RTU プロトコルアダプターを参照してください。

センサーから取得したデータはエッジデバイス上で処理され、その後 MQTT メッセージを使用して AWS IoT Core に送信されます。AWS IoT ルールエンジンは受信したメッセージを AWS Lambda 関数にルーティングします。この Lambda 関数はメッセージペイロードを解析し、個々の測定値を Amazon Timestream に保存します。(Amazon Timestream は時系列データベースで、Amazon Managed Grafana や Amazon SageMaker と密接に統合されているため、今回のユースケースに最適です。) 次に Lambda 関数は、受信したデータポイントの異常スコアを計算するために、複数の SageMaker エンドポイントを呼び出します。

図 2: AWS IoT Core へのデータフロー

図 2 は、水道メーターから AWS IoT Core にデータが流れる様子を示しています。
このプロジェクトでは、2 つの測定値 (温度と流量) を受け取るため、2 本の電線が使用されています。
特筆すべきは、送信される信号は、既知の下限値と上限値を持つ電圧に過ぎないことです。

Raspberry Pi Zero にはデジタル GPIO ヘッダしかなく、これらの信号を使えるようにするにはアナログデジタル変換器 (ADC) を使う必要があります。
Raspberry Pi 上のセンサーデータコンポーネントは、ADC の出力を使って与えられた電圧と既知の範囲に基づく線形補間によって、実際の値を計算します。(センサーデータコンポーネントはこのアーキテクチャ専用に書かれており、マネージド AWS IoT Greengrass コンポーネントではないことにご注意ください)。
最後に、計算された値と、デバイス名などのメタデータが AWS IoT Core に送信されます。

このアーキテクチャは、センサーデータコンポーネントを適応させるだけで、さまざまな種類の計測器に対応できる柔軟性があります。多数の計測器からデータを収集する使用事例の場合、それらに対応するためにいくつかの変更が必要になる可能性があります。関連するアーキテクチャの選択について詳しくは、AWS IoT Core および/または Amazon Kinesis を使用してデバイスからデータを取り込むベストプラクティス (Best practices for ingesting data from devices using AWS IoT Core and/or Amazon Kinesis) をご覧ください。

次のセクションでは、このソリューションで使用する 3 つの主要コンポーネントについて説明します。

Data Ingestion and Processing

メーターデータを取得するために、エッジデバイスは適切な間隔でセンサーにポーリングします。デバイス上でデータが処理された後、メッセージのペイロード (リスト 1) が AWS IoT Core に送信されます。具体的には、AWS IoT Greengrass コンポーネントは、組み込みの MQTT メッセージング IPC サービス を利用して、センサーデータをブローカーに通信します。

{ 
    "response": {  
        "flow": "1.781", 
        "temperature": "24.1", 
    }, 
    "status": "success", 
    "device_id": "water_meter_42", 
} 

リスト 1: MQTT メッセージペイロードのサンプル

メッセージがブローカーに到着すると、AWS IoT ルール がトリガーされ、受信データを Lambda 関数に中継します。
この Lambda 関数はデータを Timestream に保管し、異常スコアを取得します。
データを時系列データベースに保存することで、過去の測定値の履歴がデータとして蓄積されます。
これにより、過去のデータ分析、機械学習モデルのトレーニング、過去の測定値の可視化など、様々なデータ活用が可能となります。

Data Visualization

履歴データを可視化することで、データの探索やデータの整合性を手動で確認することができます。今回のソリューションでは、Amazon Managed Grafana を使用し、インタラクティブな可視化環境を提供します。
Amazon Managed Grafana は、提供されているデータソースプラグインにより Timestream と統合されています。(詳細は Amazon Timestream データソースに接続するを参照してください。)
このプラグインを使うと、収集されたすべてのメトリクスを表示するダッシュボードをセットアップできます。

図 3 は Amazon Managed Grafana ダッシュボードのキャプチャです。
グラフは時間経過に伴う水の流量 (リットル/分) と温度 (摂氏) の測定値を表示しています。

図 3: Amazon Managed Grafana のモニタリングダッシュボード

図 3 の上のグラフは、約 11 時間の期間の流量計の測定値を示しています。水の流れのパターンを確認することで、水ポンプが何度もオン/オフを繰り返しているという特徴がわかります。
下のグラフは、同じく約 11 時間の時間枠において水温が約 20℃ から 40℃ の間で変化していることが読み取れます。

Advanced Use Cases

各センサーの過去の履歴データを活用することで、SageMaker を使用した機械学習モデルをトレーニングすることが可能となります。
今回のメーターデータの例では、オペレーターは異常や故障に迅速に気づき、重大な損害が発生する前に原因を調査できるようになることを目指し、リアルタイムで異常検知を行うモデルの構築を行います。

図 4: 水流量監視における 2 つの異常の例

図 4 には、水の流れの異常がどのようなものかを示す 2 つの例が含まれています。
このグラフは約 35 分間の水の流れの測定値を示しており、2 つの不規則性が見られます。
両方の異常は約 2 分間続き、赤い長方形で強調表示されています。
これらは、水道管の一時的な漏れが原因で発生したもので、特徴的な流れのパターンの変化から特定することができます。

SageMaker には、自動異常検出に使える組み込みアルゴリズムと事前学習済みモデルがいくつか用意されています。
これらを活用することで、コーディングがほとんどなくすぐに実験を開始いただけます。
加えて、組み込みのアルゴリズムは、必要に応じて複数のインスタンス間での並列処理の最適化がされています。

Amazon の Random Cut Forest (RCF) アルゴリズム は、この アーキテクチャでテストされている組み込みアルゴリズムの 1 つです。
RCF は、各データポイントに対して異常スコアを関連付ける教師なし学習アルゴリズムです。
教師なしアルゴリズムは、ラベルなしデータを使って学習します。
詳細については、”教師あり学習と教師なし学習はどのように異なりますか?”のページを参照してください。
計算された異常スコアは、任意の次元数の入力において、規則的または規則的なパターンからはずれた異常な挙動を検出するのに役立ちます。
さらに、このアルゴリズムのプロセスは、特徴量の数、インスタンスの数、データセットサイズに応じてスケールします。
経験上、平均から標準偏差の 3 倍を超える高いスコアが異常と判断されます。
このアルゴリズムは教師なし学習なので、学習プロセスでラベルを提供する必要はなく、正確な異常ラベル付けができないセンサーデータにも特に適しています。

モデルがデータセットで学習された後、そのモデルを使用して全てのメーターのデータポイントに対して異常スコアを計算できます。この異常スコアは、後で参照するために別の Timestream データベースに保存されます。異常判定のための閾値も設定する必要があります。
Amazon Managed Grafana を使用すれば、分類された異常スコアを可視化できます (図 5 参照)。

図 5: Amazon Managed Grafana にて可視化した RCF による異常分類結果

図 5 は、時系列データと状態を示すウィジェットが表示されている Managed Grafana ダッシュボードの一部です。時系列データは水の流量を表しており、異常な流量となっている 1 分の区間が含まれています。状態を示しているウィジェットには、RCF アルゴリズムによる異常分類の結果が表示されます。緑は正常な状態を、赤は異常な状態を表しています。

アルゴリズムが異常を検出した場合、様々な自動化されたアクションを実行できます。
たとえば、Amazon Simple Notification Service (Amazon SNS) を使用して、SMS やメールでユーザーへの通知が可能です。
スコア算出がリアルタイムに近い形で行われるため、大きな損害が発生する前に潜在的な問題を素早く検出することができます。

Conclusion

このブログ記事では、既存の計測データを AWS に統合することで得られる付加価値と、その実装例について説明しました。
このソリューションは、アナログセンサからデータを収集し、AWS IoT Greengrass デバイスを使って AWS IoT Core に取り込み、Amazon Timestream にて計測値を処理・保存し、SageMaker で異常検知を行います。

この例ではメーターとしての水道メーターを取り上げていますが、利用したコンポーネントは任意のタイプのメーターデバイスで動作するように変更できます。
同様のシステムを実装したい場合は、上記の AWS サービスを活用することでメーター監視ソリューションを構築してみてください。
運用レディな本番アプリケーションを開発したい場合は、Raspberry Pi Zero を本番ワークロードに適したデバイスに置き換える必要があります。
デバイスについては、AWS パートナーデバイスカタログを参照してください。

水漏れの検出に関するさらなる議論については、AWS IoT を使用してリアルタイムに近い水漏れを検出する (Detect water leaks in near real time using AWS IoT) をご覧ください。
農業での異常検出の活用にご興味があれば、AWS IoT を使用したサーバーレス異常検知による農業業務の合理化 (Streamlining agriculture operations with serverless anomaly detection using AWS IoT) をご覧ください。

この記事は Tim Voigt と Christoph Schmitter によって書かれた Connected utility solutions for water and gas metering with AWS IoT の日本語訳です。この記事は Solutions Architect の西亀真之が翻訳しました。

著者について

YOUR NAME

Tim Voigt

Tim Voigt は、AWS の PACE チーム (プロトタイピングとクラウド エンジニアリングの略) のソリューション アーキテクトです。ドイツに拠点を置き、AWS で働きながらコンピューターサイエンスの大学院研究を続けています。Tim は、現実世界の問題を解決するための新しいソリューションを開発し、その根底にある技術的概念を深く掘り下げることに情熱を注いでいます。

YOUR NAME

Christoph Schmitter

Christoph Schmitter は、デジタルネイティブのお客様を担当するドイツのソリューションアーキテクトです。Christoph はサステナビリティを専門とし、企業が持続可能な製品やソリューション構築のための変革をサポートしています。 AWS に入社する前は、ソフトウェア開発、アーキテクチャ、クラウド戦略の実装において幅広い経験を積んでいました。スケーラブルで復元力のあるシステムの構築から、子供たちのロボットのクラウドへの接続まで、あらゆるテクノロジーに情熱を注いでいます。仕事以外では、読書、家族との時間を過ごし、テクノロジーをいじることを楽しんでいます。