2022/05/23

研究室環境を可視化してみた

M2の小池です。

私たちの研究室では、画像解析やシフト最適化、産婦人科医の最適配置など、ソフトウェアを活用したさまざまなプロジェクトが展開されています。そんななかで、今回はセンサデータを活用して研究室の温湿度の可視化を行ったときの概要をご紹介します。

なお、このブログの内容はhttps://monoaso.net/2021/01/24/arduino001/ を参考にして作成しており、ソースコード等の詳細も掲載されているため、お試しになる際はぜひ参考にしてみてください。

用意するもの

  • Arduino(ESP32)
  • AM2301B(温湿度センサ)
  • ジャンパーワイヤー・ブレッドボード等

全体概要

今回は1.Arduinoでデータを取得し、2.MQTT通信でRasberry Piへデータを送信、3.受け取ったデータをスプレッドシートへ書き出し、グラフを可視化する、という流れで行っています。Rasberry Pi(管理サーバ)とArduino(センサーデバイス)を分けているのは、今後複数箇所でデータを取得できるようにするためです。

内容

1.Arduinoでデータを取得, 2.MQTT通信でRasberry Piへデータを送信

Arduinoを用いた通信を行うため、wifiモジュールが搭載されているESP32などのボードを使用します。Arduino IDEをダウンロードし、各種(通信に必要な)ライブラリをインストールしておきます(Arduinoの環境設定はこちらをご参照ください http://microtechnica.xyz/?p=271 。ESP32のバージョンは最新でないとうまくいかないケースがあるのでご注意ください)。

接続

ブレッドボードを介して、AM2301BとESP32を繋ぎます。写真だと見にくいと思いますので、繋ぎ方はAM2301Bの公式ページを参照ください。

ソースコード

先程セットアップしたArduino IDEを立ち上げ、ESP32にコードを書き込みます。ご自身の接続先のwifiルータのSSID、パスワード、接続先のIPアドレス、ポートを指定すれば問題なく通信できます(ソースコードは https://monoaso.net/2021/01/24/arduino001/ 記事を参考。使用している温湿度センサが参照先と異なるため、センサーデータ取得、送信処理部分はAM2301Bの通信処理に書き換える必要があります)。

3.受け取ったデータをスプレッドシートへ書き出し、グラフを可視化

上述で取得したデータをMQTT経由でPublishし、Rasberry PiでSubscribeします。ソースコードは https://monoaso.net/2021/04/05/raspberrypi02/ 記事をご参照ください。記事ではSQLを用いてデータを登録していますが、私はApps Scriptを用いてGoogle スプレッドシートに書き出しを行いました。以下が実行結果となります。

おわりに

いかがでしたでしょうか。

やっていること自体は単純で難しいものではないのですが、何もわからない状態から初めて触ってみたということもあり、実際はエラーの連続でかなり苦戦しました。その上で正しく表示できた時は嬉しかったですね。

触ってみることは大事なことです。今回はそんな内容の記事でした。

この他にも、赤外線センサを用いた人物検知やslackbotを活用した通知システム開発、カメラ画像から人物推定を行うなど、研究室をより良い環境にするべく、取得したデータから可視化を行うシステムを後輩達が進めているので、それについてはまた別の機会にご紹介できればと思います。

ここまでお付き合いいただき、ありがとうございました。

著者プロフィール

yuhei.koikeのアバター

小池 優平 2021年度 システム理工学専攻 修士2年

関連記事はこちら