第84回情報処理学会全国大会 第4回中高生情報学研究コンテスト
チーム名:群馬県立高崎高校物理部2年
佐藤弘基くん、伊藤俊介くん、山本航紀くん、渡部翔太郎くん(群馬県立高崎高校 2年)
(2022年3月取材)
新型コロナウイルス感染症対策として、本研究では学校生活における教室での換気を促したり、CO₂濃度と在室人数との関係を調べたりする目的で、小型コンピュータ「Raspberry Pi」を用いて、CO₂濃度と在室人数(カメラと物体検出AIで測定)を同時にモニタリングするシステムを開発した。このシステムは換気のタイミングを音声やLINEによる通知で知らせたり、自動で換気扇を回したりすることができる。
また、このシステムを実際に校内で稼働させ、データを収集した。この結果、数理モデル「ザイデルの式」で計算したCO₂濃度の理論曲線と、 CO₂センサーで測定した実験データが良く一致することがわかった。これを応用し、数時間後のCO₂濃度を計算し、事前に換気を促す次世代CO₂モニターの開発にも成功した。
※クリックすると拡大します。
■今回発表した研究を始めた理由や経緯を教えてください。
最初は「ぐんまプログラミングアワード」という大会があって、それに向けて何かIoT作品を1つ作ろうとしていました。そこで身近で困っていることはないかと考え、新型コロナウイルスの感染症対策として換気に主眼をおいた教室内をモニターする装置を作ろうということになりました。
■今回の研究にかかった時間はどのくらいですか。
装置の製作にかかった時間は1~2か月程度です。5月あたりから始めました。そこから、装置を教室に設置して、データを収集し分析をするのに1か月程度かかりました。
データを集め始めてからしばらく経った9月あたりで、分析の結果からCO₂濃度の予測ができるのではないかと考えて、1週間程度で予測をするプログラムを書き、1週間程度でそれをラズパイに搭載してUIの作成などを行いました。
■今回の研究ではどんなことに苦労しましたか。
UIの部分やCO₂センサーと環境センサーの制御、警告をさせる部分は「Node-RED」を用いたのですが、ノード形式のプログラミングをするのは初めてだったので、ループの書き方がわかりづらいことや配置が間違っているときに、ごちゃごちゃしてどこが間違っているのかがわからなかったり、ノードが変数を保持できないなどの部分に苦労しました。
予測プログラムはPythonで書いたのですが、ループをさせる部分の書き方を間違えて、1回実行するごとにループする回数が減ってしまうバグが発生していたのですが、そのミスに気付くのにとても時間がかかりました。
また、3Dプリンターで外装を印刷したのですが、初めて使用するので、印刷してダメだった部分の微調整にも苦労しました。
■「ココは工夫した!」「ココを見てほしい」という点を教えてください。
外装については、ラズパイがとても熱くなるので、横の部分は強度も考えてハニカム構造にしています。また、本体の正面には私たちの校章を配置しています。
Node-REDではグローバル変数を使用しフラグ用の変数を定義して、CO₂濃度が一定値を超える間ずっと音声の警告が鳴り響くことがないように工夫しました。
また、CO₂濃度予測用のプログラムは、人数をカウントするプログラムと一体化していて、処理にかかる時間が不安定なので、必ず1分おきにプログラムが作動するように工夫しています。
UIは、PCやタブレットの画面であればスクロールをせずに必要な情報が得られるようなレイアウトにしています。
■今後「こんなものを作ってみたい!」「こんな研究をしてみたい」と思うことがあれば教えてください。
まず、今回の装置を実際の教室において運用し、実際に測ったCO₂濃度を元に警告や換気をした場合と、予測したCO₂濃度を元にした場合を比較することで、CO₂濃度の予測によってどの程度換気を効率的に促せるかを調べたいと思っています。
また、冷暖房稼働時の温度変化も考慮した換気タイミングの最適化に関する実験を行いたいと考えています。
第84回情報処理学会全国大会中高生情報学研究コンテスト ポスター発表より
※群馬県立高崎高等学校物理部2年の研究は、中高生研究賞奨励賞・情報処理教育委員会委員長賞を受賞しました。