Amazon Web Services ブログ

AWS IoT を使用してほぼリアルタイムで漏水を検出する

このブログは、Mrunal Daftari と Vaibhav Sabharwal によって書かれた Detect water leaks in near real time using AWS IoT を翻訳したものです。

イントロダクション

水は生命の維持に必要な最も貴重な資源の 1 つです。しかし、人間が消費するのに適しているのは、世界の水供給量のわずか 2% にすぎません。米国環境保護協会 (EPA) は、米国では毎年、全処理水の約 30% に相当する 1.7 兆ガロンが浪費されていると推定しています。

ニューヨーク市環境保護局によると、消火栓の漏れにより、毎分最大 1,000 ガロンの水が浪費される可能性があります。ユーティリティは、これらの漏水を特定するために手動でリソースをデプロイする必要があり、これは時間と労力のかかるプロセスになる可能性があります。さらに、これらの漏出が対処されない場合、公益事業は環境法への違反に対して多額の罰金を科される可能性があります。供給ラインが地下に敷かれているため、漏水を迅速に特定して修復するという、ほとんどの都市で見られる給水インフラの結果であり、これによって漏水を迅速に特定して修復するという自然な課題が生じます。ほとんどの場合、次に予定されているメンテナンスコールまで、または消火栓の使用が確認される緊急事態が発生するまで、漏れが検出されることはありません。通常のメンテナンスコールには最大 3 か月かかり、最低 3 回の訪問が必要になる場合があります。この期間にどれだけの水が浪費されるか想像してみてください。このブログで説明されているソリューションは、ユーティリティの漏れの無駄とメンテナンスコストを削減するのに役立ちます。

ソリューションの概要

水が都市部と農村部を横切って消火栓を通って流れており、そのような長いルートのどこかで小さな漏れが発生したシナリオを考えてみましょう。漏水は、数週間から数か月間検出されないままです。漏水が検出された後でも、正確な場所を特定して修正するには、さらに数週間かかることがあります。現在、ほとんどの消火栓は IoT センサーでアップグレードして、消火栓のステータスと使用状況に関する統計を伝達できます。これらのセンサーは、漏水をほぼリアルタイムで特定して、プロアクティブなメンテナンス アクションをトリガーするのに役立ちます。提案されたアーキテクチャでは、IoT かつ 5G 対応の消火栓が、MQTT プロトコルを使用して AWS と通信します。これらの消火栓は、AWS の認証に AWS IoT Core を使用します。

Architecture diagram

アーキテクチャ図

アーキテクチャを深く掘り下げる前に、アーキテクチャ図で表される 4 つの段階を理解しましょう。

ステージ 1 では、MQTT プロトコルを介して IoT デバイスから AWS への通信を確立します。

ステージ 2 では、収集されたデータが保存され、長期的なコンプライアンス上の理由から維持されます。

ステージ 3 では、アクティブな漏水の状況についてフィールドチームに通知を送信し、できるだけ早くアクションを実行できるようにします。

ステージ 4 では、バックオフィスのオペレータがシステム全体を制御できます。バックオフィスのオペレーターは、Amazon QuickSight ダッシュボードを利用して、収集されたデータに基づいて、アクティブな漏水や実行中のアクション、デバイスの状態などを表示できます。

ステージ 1: IoT 通信

5G 対応の消火栓は、MQTT プロトコルを介して AWS との通信を確立できます。

  • AWS IoT Core は、通信の確立を支援します。 AWS IoT Device Management を使用すると、デバイスの一括オンボーディングが可能です。
  • AWS IoT Device Management は、IoT デバイスに安全にアクセスし、状態を監視し、問題を検出して遠隔でトラブルシューティングし、ソフトウェアとファームウェアの更新を管理します。
  • AWS IoT Device Defender は、搭載されているすべての IoT デバイスのセキュリティを維持し、セキュリティ指標を監視し、各デバイスの予想される動作からの逸脱に基づいてアラートを生成するのに役立ちます。
  • この通信が確立されると、消火栓は、安全な MQTT プロトコルを介して JSON 形式で消火栓の状態、地理的位置、および水の流れのデータを AWS に送信できます。

ステージ 2: ストレージ

IoT デバイスがイベントの送信を開始すると、収集して処理するデータが増えます。

ステージ 3: 派遣と修理

イベントには、漏水の可能性に関する重要な情報が含まれています。現在、接続された消火栓は AWS と通信できるため、バックオフィス チームはほぼリアルタイムで通知を受け、現場の作業員にすぐに対応できるよう警告することができます。

  • 消火栓は、設定された間隔の後、MQTT プロトコルを介して AWS IoT Core に通知を発行します。
  • AWS IoT Core Rules Engine は、MQTT トピックから通知を取得します。
  • その後、AWS IoT Core Rules Engine は通知を AWS IoT Events に送信します。
  • AWS IoT Events には、リクエストを AWS IoT Core MQTT トピックに送り返すことで、受信する IoT イベント (消火栓の水の流れや圧力レベルなど) を監視する検出器モデルがあります。
  • AWS IoT Events は、定義されたしきい値に基づいて水の流れと圧力の異常を検出します。水圧と流量が定義されたしきい値を超えた場合、AWS IoT Events は通知メッセージを Amazon Simple Notification Service (Amazon SNS) トピックに送信します。
  • フィールドオペレーションチームは、フィールドオペレータに漏水の可能性があることを知らせる通知メッセージを受け取ります。
  • アラートをトリガーするだけでなく、AWS IoT Events は同じメッセージを Amazon DynamoDB に送信して、サポートケースを作成します。バックオフィス チームは、Amazon QuickSight ダッシュボードを使用して消火栓のステータスを追跡します。
  • 漏水が修正されると、フィールドオペレーションチームはサポートケースのステータスを更新します。

ステージ 4: インサイトレポート

Amazon S3 に保存された収集されたすべてのイベントにより、レポート機能が有効になります。

  • Amazon Athena は、収集されたイベントの分析とクエリに使用されます。
  • Amazon QuickSight は、バックオフィスオペレーター向けの洞察に満ちたダッシュボードをサポートし、アクティブな漏水、アクティブな漏水に対して実行されているアクション、漏水の地理的分布を可視化するのに役立ちます。デバイスのヘルスステータスなどを監視するのにも役立ちます。

前提条件

資産検査ソリューションを進めてセットアップするには、次のものが必要です:

  • AWS アカウント
  • AWS アカウントにアクセスできるデバイスまたはラップトップ/コンピューター、Python バージョン 2.7.18 以降、AWS IoT Device SDK for Python バージョン 1.3.1 以降がインストールされていること。

消火栓の漏れを管理するための AWS IoT Eventsの設定

デバイスデータを AWS IoT Core (MQTT トピック) から AWS IoT Events に転送するには、AWS IoT ルールを設定する必要があります。

  • AWS マネジメント コンソールに移動し、AWS IoT Core を選択します。
  • Message Routing、Rules の順に選択し、Create rule を選択します。ルールの説明はオプションのフィールドです。

IoT Rule set up

IoT ルールの設定

  • ルールの Name を設定し、ルールクエリステートメントを SELECT * FROM ‘iot/topic’ に設定します。以下のサンプルクエリ。

sample query

Sample Query

  • Add rule アクションを選択します。
  • IoT Events オプションを選択し、Input name を入力します。
  • 前に作成した Input を選択します。
  • Create new role を選択し、role name を入力します。
  • Add rule アクションを選択します。
  • Create ルールを選択します。
  • AWS コンソールで作成されたルールのサンプル。

Create Rule

ルールを作成します

AWS IoT Events で、次のコンポーネントを作成して、消火栓の水の流れと圧力を開始します:

  • サービスメニューから AWS IoT Events を選択します。 AWS IoT Events ページで、以下に示すセクションから industry-specific template を選択します。

Create Detector Model

検出器モデルの作成

  • 画面から、Simple Alarm を選択し、Start を選択します。

IoT Event template selection

IoT Event テンプレートの選択

  • 以下に示すように、それぞれ 3 つの状態と 2 つの遷移を持つ検出器モデルを作成します。

Create Detector Model

検出器モデルの作成

  • 通知を受信すると、デバイスの状態は「ActiveLeak」に変更されます。この状態は、フィールドワーカーおよびバックオフィスダッシュボードのアラートをトリガーするために使用されます。

AWS IoT Events での入力の作成

入力を作成するためのガイドに従って、AWS IoT Events で入力を作成できます。この例では、次の詳細で入力を作成します:

  • 「deviceNotificationInput」に設定された入力名の例
  • 次の JSON ペイロードの例を含む JSON ファイルをアップロードします。
  • {
    "geoLocation": "42.3928258265305, -71.07754968042828",
    "timeStamp": "2022-05-31 08:47:44.870092",
    "cityName": "Boston",
    "state": "MA",
    "deviceId": "BOS0”,
    "sensorHealth": "OK",
    "inputFlow": "10",
    "outputFlow": "10"
    }

Create Device Notification Input

デバイス通知入力の作成

AWS IoT Events での検出器モデルの作成と公開

この例では、次の詳細で検出器モデルを作成します。AWS IoT Events Developer Guide でサンプルを見つけることができます。

  • 3 つの状態 (Normal、ActiveLeak、Snooze)
  • それぞれに、デバイスをある状態から別の状態に切り替える遷移があります。
  • デバイスから通知を受信すると、通常の遷移により、アウトバウンド AWS IoT Core の MQTT トピックへの通知の送信がトリガーされ、デバイスの状態が out_of_range に変更され、状態が ActiveLeak にプッシュされます。
  • 修復に時間がかかる場合は、修正の実行中にデバイスの状態がスヌーズ状態になる可能性があります。
Normal State ActiveLeak State Snooze State
normal state active leak state snooze state

検出器モデルの状態

検出器モデルの作成

  • 検出器モデルの IAM ロールを作成します。詳細については、AWS IoT Events のアクセス許可の設定に関するドキュメントを参照してください。
  • 前の図に示すように、状態と遷移を含むサンプル検出器モデルを作成します。

Amazon QuickSight を使用したデータの分析

以下は、Amazon QuickSight で作成可能な可視化の一つです。

デバイスのヘルス ステータス:下の図は、消火栓のデバイスの位置とともにデバイスのステータスを示しています。これらのチャートは、バックオフィスチームが故障した消火栓を特定し、地理的位置をフィールドオペレーターに送信し、故障したデバイスを修理するのに役立ちます。

Device health report – Keeps back office up to date with compliance and device health status near real time

デバイスヘルスレポート – バックオフィスは、コンプライアンスとデバイスの正常性ステータスをほぼリアルタイムで最新の状態に保ちます。

Active leaks: 以下のグラフは、ニューヨーク、シカゴ、ボストンの 3 つの都市での漏水を表しています。

Active leak report – Shows active leaks across cities for the back office

Active leak report – バックオフィスの都市全体でアクティブな漏水を表しています

アクティブな漏水の地理的位置:以下のチャートは、デバイスの地理座標を使用してプロットされたマップ上のアクティブな漏水を示しています。これは、バックオフィス チームが問題のある街路を積極的に調べるのに役立ちます。
geolocation of fire hydrants

消火栓の地理的位置 – 消火栓とそのステータスをマップ/ストリートビューに表示します

クリーンアップ

不要な料金が発生しないよう、次のリソースを削除します:

まとめ

このブログでは、AWS IoT サービスを使用して消火栓の漏れをリアルタイムで検出し、漏れの正確な場所を特定する方法を紹介しました。このソリューションは、水漏れを修理する時間を短縮し、それによって水の浪費を減らし、環境への影響を改善することにつながります。同じソリューションを拡張して、家庭用水道器具の漏れや、石油/天然ガスのパイプラインの漏れを検出できます。

AWS IoT Core の使用方法の詳細については、ドキュメントを参照してください。

AWS はフィードバックをぜひお願いいたします。また、ご意見やご質問がございましたら、LinkedIn でお問い合わせください。

著者について

mrunal daftari Mrunal Daftari は、アマゾンウェブサービスのエンタープライズシニアソリューションアーキテクトです。ムルナルはマサチューセッツ州ボストンを拠点としています。彼はクラウド愛好家であり、顧客向けのシンプルでビジネスの成果に対応するソリューションを見つけることに非常に情熱を注いでいます。彼はクラウドテクノロジーを利用して、ビジネスの成果を上げ、クラウド導入戦略を推進し、革新的なソリューションを設計し、運用上の卓越性を促進する、シンプルでスケーラブルなソリューションを提供することを愛しています。
Vaibhav Sabharwal は、アマゾンウェブサービス (AWS) のシニアソリューションアーキテクトです。彼は、Financial Service Technical Field Community の一員です。彼は、AWS のお客様がクラウド導入戦略を構築し、革新的なソリューションを設計し、優れた運用を促進するのを支援しています。

このブログは、ソリューションアーキテクトの戸塚智哉が翻訳しました。