【活用事例】どこでも混雑度センサ

【活用事例】どこでも混雑度センサ

  • このトピックには0件の返信、1人の参加者があり、最後にArita Mitsuruにより2021-02-27 18:36に更新されました。
0件の返信スレッドを表示中
  • 投稿者
    投稿
    • #12056
      Arita Mitsuru
      参加者

        こちらは、KDDI協賛 Leafony応用コンテストの参加作品です。

        目次

        1. 自己紹介
        2. 概要
        3. 開発環境・使用したリーフ
        4. どこでも混雑度センサ
        5. 技術的工夫点・苦労した点
        6. 拡張
        7. 動画

        1.自己紹介

        九州大学工学部荒川研究室学部4年の有田充です。
        研究室ではIoTと機械学習を用いて、人間の行動認識に関する研究を行っています。

        2.概要

        LTE-MリーフとESP32リーフを使って、どこでも使用できて長時間充電なしで駆動可能な、混雑度計測システムを開発しました。
        コロナウイルスの影響で混雑度を計測するシステムが多く開発されました。しかし、例えば九州大学前のバス停などの環境では、電源を持ってくることが難しく、Wi-Fi環境も整っていないため現行のシステムで混雑度を計測することは困難でした。そこで省電力機能が豊富かつLTE-M通信が可能なLTE-Mリーフを使って問題を解決します。

        混雑度はESP-32を使ったBLEスキャンとWi-Fiプローブ信号スキャンによって取得します。混雑度情報と環境センサ情報をLTE-M通信でデータベースに送信して、Slackから混雑度情報を見れるようにしました。

        3.開発環境・使用したリーフ

        開発環境など

        • Arduino IDE 1.8.13 windows
        • IFTTT
        • Google App Script

        使用したリーフ

        • LTE-Mリーフ
        • AP02 ESP32 MCU
        • AX02 29pin

        4.どこでも混雑度センサ

        4.1.作品外観

        図の左がESP32リーフ、右がLTE-Mリーフになります。

        4.2.システム構成

        計測した混雑度と環境センサのデータをLTE-M通信で、IFTTTに送信してGoogle Spread Sheetsに書き込みます。Slackのスラッシュコマンドを実行することで、Google App Scriptを介して、混雑度情報と環境センサ情報を取得することができます。

        データベースへの送信頻度はLTE-M上のDIPスイッチで変更することができます。送信後はスリープを行い、RTCのアラームによってスリープから復帰を行うため、長時間の動作が可能となっています。

        4.3.混雑度計測

        混雑度はESP32のプロミスキャスモードを使ったWi-Fiプローブリクエスト信号と、BLEスキャンによって得られるCOCOAのアドバタイズ信号の数から計算します。Wi-Fiのプローブリクエスト信号は、スマートフォンから常に発せられるので、混雑度の指標となり、COCOAがインストールされたスマートフォンもバッググラウンドで常にサービスのアドバタイズ信号を発信するため同じく指標となります。

        これらの情報から混雑度をLow、Middle、Highに区分します。現在は単純な閾値処理によって3つの区分に分けています。

        ※COCOA:厚生労働省が提供する新型コロナウイルス接触確認アプリ

        4.4.使用例

        送信頻度を30分に設定して研究室に設置した例が下図のようになります。

        朝の8時19分に人がきてそれ以降人数が増えていることが確認できました。研究室にはスマートフォン以外のプローブ信号を発信するデバイスが設置されているため、COCOAの人数が0でもWi-Fiの人数が0とはならず、混雑度区分の閾値を高めに設定する必要がありました。

        Slackからスラッシュコマンドを実行して混雑度情報を確認してみます。簡易的な情報を取得するコマンドと詳細な情報を取得するコマンドを用意しました。

        デバイスを設置した付近の最新の混雑度情報が表示されました。この情報を見て、「今日は人が多いからリモートワークにしようかなぁ」などの判断をすることが実用例として考えられます。

        LTE-Mリーフにはバッテリ電圧を取得する関数が用意されていたため、バッテリ減少フラグもデータベースに追加しました。バッテリ電圧が3.5V以下となり、フラグがたつとSlackに通知がとび、充電を促すメッセージが表示されます。

        5.技術的工夫点・苦労した点

        5.1.省電力設計

        Deep Sleep関数とRTCアラームを使って省電力化を行いました。LTE-MリーフとESP32リーフは次のように動作を行っています。送信頻度を1時間に設定した場合は、付属のバッテリで1週間程度動作することを確認しています。

        5.2.ESP32リーフへの電源供給

        当初はLTE-MリーフのリーフコネクタからESP32リーフへ電源供給を行う予定でしたが、ESP32のような大きな電流を消費するものを接続することが考慮されていないためか、書き込まれたプログラムがうまく動作しませんでした。
        LTE-Mリーフのコネクタ2から電源供給を行えば、プログラムが動作したためリーフコネクタによる接続ではなくコネクタ2から配線を伸ばすことで電源供給を行いました。また、AX02をESP32リーフの上部に接続すると干渉するため、下部に接続し裏返してLTE-Mリーフのリーフコネクタ部に固定しました(絶縁させてあります)。

        6.拡張

        本当はロータリースイッチで送信頻度を切り替えれるようにしたかったのですが(見た目がいいので)、部品が見つからずオンボードのDIPスイッチで代用しました。また、電源スイッチもトグルスイッチにして箱に取り付けたかったのですが、物理的にスイッチを接続するしか方法が分からず、ボードに手を加えたくなかったので電源スイッチをとりつけることができませんでした。

        今回はSlackで見える化を行いましたが、データベースに混雑度情報があるため、混雑度を表示するスマートフォンアプリや混雑度を予測するシステムなどが拡張として考えられます。

        7.動画

        実際に使用した様子を撮ってみました。

         

    0件の返信スレッドを表示中
    • このトピックに返信するにはログインが必要です。