はじめに
三菱総研DCS デジタル企画推進部テクニカルラボグループの日野です。
東京デジタルイノベーション2020でデモンストレーションを行ったサンプルアプリケーションの内容について、全4回でご紹介しています。アプリケーションの概要は第1回の記事をご参照ください。
第1回 デモアプリの概要
第2回 来訪者の動線可視化
第3回 来訪者の人数計測
第4回 リーフレットの残量計測(本記事)
今回は、リーフレットの残量計測を行った箇所の実装について解説します。
リーフレットの残量計測アプリケーションの概要
展示会のブースでは、当社サービスである、マルチクラウドストレージサービス「Dibertas」や、多要素認証サービス「FQ-MA」のリーフレットを配布しており、保管場所が限られていたため、残量が少なくなった場合に本社から運び込む必要がありました。そのため、本アプリケーションでは、リーフレットの残量を重りセンサーで計測し、WEBアプリケーションで可視化、一定数未満になったら運営スタッフのLINEに通知を行いリーフレットの在庫切れを回避できるようにしました。
図1.アプリ概要
リーフレット残量可視化では、全体のシステム構成のうち主に以下のデバイス(赤く囲んだ箇所)で処理を行っています。
図2.システム構成
表1.使用デバイス
種類 | 製品名 | 備考 |
マイコン | M5Stack | CPU: 240MHz dual core メモリ: 520KB |
センサー | デジタルロードセル | HX711 ADコンバータブレイクアウトモジュール 最大重量は5kg |
処理概要
処理の概要は以下の通りです。
① 重量センサーからデータの取得
② IoTゲートウェイ経由でAmazon Elasticsearch Serviceに格納
③ 格納データが事前に設定した閾値を超えた場合に運営チームに通知
処理詳細
①重量センサーからデータを取得
リーフレット残量は、ロードセルと呼ばれる加重による歪みをもとに重量を測るセンサーを使って取得します。(ロードセルは、身近なところで電子はかりの内部でも使用されています。)
ロードセルはリーフレットを乗せるためにバインダーに固定し、カゴの底面に設置することで、重量を計測するようにしています。
図3.ロードセルの設置方法
ロードセルはM5Stackと呼ばれるマイコンモジュールとジャンパーピンで接続し、計測データを送信します。
M5Stackとは、カラーディスプレイやスピーカーを備えた開発モジュールです。Wi-FiおよびBluetooth通信することができ、Arduinoと同じ環境で開発を行うことができるため、扱いやすく人気のモジュールです。Arduinoについてはビニールハウス農園にセンサーを設置したこちらの事例をご参照ください。
図4.M5Stack
今回は計測対象のリーフレットが2種類だったため、上記のロードセルを2つM5Stackに繋ぎ、IoTゲートウェイであるエッジ端末にデータを送信しました。IoTゲートウェイまでの通信方式としては、東京デジタルイノベーション2020会場内で持ち込みWi-Fiの使用が制限されていたため、M5StackとIoTゲートウェイ間でBluetoothのペアリング接続を行い通信しました。
図5.ロードセルとM5Stackとの接続
② IoTゲートウェイ経由でAmazon Elasticsearch Serviceに格納
IoTゲートウェイとしては、エッジ端末であるRaspberry Pi4を使用し、Node-Redを使って通信の受付やAWSとのMQTTS通信を実装しました。
受付する通信としてはM5StackによるBluetooth接続以外にも、前回のブログ記事でご紹介した、各ブースでの人数情報などもHTTP(WebSocket)で接続していますが、Node-Redを使うことでスピーディに実装が可能でした。
図6.IoTゲートウェイの実装
なお、M5StackのデータをNode-Red上で受信する際には、以下のような整形を行っています。
- データ形式をJSONへ変換
- タイムスタンプの付与(M5Stackにはシステム時間がなく、データにタイムスタンプを付与するのに手間がかかるため)
- リーフレットの最大重量の設定とパーセントの計算
以上の処理完了後、順次MQTTS通信でAWS IoT Coreにデータを送信しています。
③格納データが事前に設定した閾値を超えた場合に運営チームに通知
AWS IoT Core 経由でAmazon Elasticsearch Serviceに格納したデータは、アラート機能を用いて閾値を設定することができ、閾値を超えた場合にAmazon SNS、Slack、Amazon Chime、Custom Webhookに通知することが可能です。
今回はAmazon SNSにメッセージを格納し、Amazon Lambda経由でLINE Notify APIを用いて運営チームに通知しています。
図7.通知ロジックの実装
まとめ
以下、機材の設置にあたり考慮した点になります。
考慮した点
- 単純にリーフレット残量を測る上でも、以下のように複数の方法が考えられます。今回は会場でのセットアップの手間などを考えて重量センサーを採用しましたが、それぞれの特徴を踏まえて比較、検討する必要がありました。
手法および使用するセンサー メリット デメリット・制約 重量センサーをカゴの底面に設置し、重さから残量を計測する。 ・必要な機材が安い。 ・センサー上にリーフレットを乗せるための土台が必要となり、加工が必要。
・センサーごとに最大計測可能な重量が異なる。距離センサーを格納場所の上面に設置し、その距離から残量を計測する。 ・必要な機材が安い。
・物理的に格納可能であれば、重量等の制限がない。・在庫取り出し時に手などが入ることにより計測結果がずれる可能性がある。
・会場での設置工作が必要。カメラを格納対象を映すように設置し、画像認識処理等を使って計測する。 ・画角に収まるのであれば、重量等の制限がない。 ・画像処理可能なエッジ機器またはクラウドが必要となり高額になる。
・専用のモデルが必要となり、実装コストがかかる。
・RGBカメラを使う場合は光源が必要。 - 展示会のブース内でIoTアプリケーションを動かすという都合上、設置する会場のルールを厳守する必要があり、Wi-Fiの利用制限による通信方式の考慮や、必要とする電源が足りるかの確認、カメラを設置できる高さの確認など、さまざまな環境面での制約を考慮しながら設計を行いました。
全4回にわたり、展示会で行ったデモアプリケーションをご説明しましたが、いかがだったでしょうか。今回は2カ月強という期間で3つのアプリの設計、デモ稼働まで行いましたが、パブリッククラウドサービスや公開済みのモデルを活用することで、余裕を持ったスケジュールでアプリを稼働させることができました。
特に、今回ご紹介したIoTセンサーの可視化については、当初想像していたよりもはるかに簡単に動くアプリケーションを作成することができますので、興味があれば是非実際に手を動かして試していただければと思います。
最後まで読んでいただいてありがとうございます。