United Statesからアクセスのようです。言語設定をEnglishに切り替えますか?
Switch to English site
Skip to main content

AirQualityProject 参加してみた

はじめに

こんにちは、@GOROmanです。先日、Air Quality Projectのモニターに応募し、キットを受け取ってから、組み立てや動作確認、様々なハックや応用を行いました。このプロジェクトは、世界中の空気品質と大気汚染の状況をオープンプラットフォーム上で協力して可視化することを目的としています。

今回、このプロジェクトを通して、CO2やVOCなどの数値を可視化することで、家族が空気品質に対する意識を高めることができました。さらに、LINE用のチャットBotでCO2の値を取得したり、Godot Engineを使ってCO2の値をゲーミフィケーションに取り入れるなど、クリエイティブな応用を試みましたので以下レポートします。

Air Quality Projectは、空気品質に関心がある人にとって、非常に有益なプロジェクトです。興味がある方は、ぜひ参加してみてください。また、Twitterの #AirQualityProject で、組み立てや運用の様子をチェックすることもできます。

組み立て

キットには、3Dプリンタで作られたケース、液晶パネル、センサーモジュール、ネジ、そして壁などに取り付けるための金属フレームが含まれています。

センサーモジュールには、次の3つがあります。

  • CO2センサー
  • VOC Temp RH%センサー
  • パーティクル(埃)センサー

VOCという言葉はあまり聞きなれないものでしたが、揮発性有機化合物(Volatile Organic Compounds)の略称で、大気汚染物質の要因となるもののようです。

キットの組み立て自体は、公式サイトの手順を見ながら行います。今回は8歳の子供と一緒に組み立てました。基板などはあらかじめ実装されていますので、ハンダ付けなどの作業は必要ありません。ケースにネジを取り付けて、基板を取り付けるだけで完成します。工作としては比較的簡単な部類だと思います。

ただ、真鍮のネジ穴を3Dプリントされたケースにケース自体を熱で溶かして取り付ける必要があった点で若干苦労しました。今回は熱するためにキッチンのガスコンロを使って熱して行いましたが、ハンダゴテを使って押し込んで取り付けた方が簡単だと思いました。

https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Ff97fb95a-834d-4602-a21a-ee1800d7a022%2FUntitled.png?id=02c4bda3-98f3-4ad3-ab9e-295f7714023f&table=block&spaceId=8db9e2dd-29b0-4859-ba26-dbd0cbf2046d&width=2000&userId=486dea1f-c367-4645-a76d-e0d81ddd1d60&cache=v2

このキットの中核となるのはRaspberry Piです。Raspberry Piに付属の液晶パネルを取り付けます。

各センサーはモジュラー構造になっているため、どんどん連結して増やしていくことができます。I2C方式のインターフェースのようなので、センサーを追加することも可能だと思います。

動作確認

組み立て終わった後は、Raspberry Pi の Micro SDカードに起動用のディスクイメージを書き込むことで動作します。ディスクイメージの書き込みには MacOS上から dd を使用しましたが、Raspberry Pi用のイメージ書き込みツールを使えば問題ないかと思います。

なお、ハマってしまった点は、LANケーブルを繋がないと最初センサーの値が反映しないことでした。これは表示している仕組みがWebブラウザとWebSocketを使う設計になっているため、ネットワークを認識した状態でないと値が反映しないからではないか?と思います。最終的にはWifiの設定を行い、LANケーブルの接続は不要としました。

液晶パネルはタッチパネルになっており、タッチでグラフの表示などが可能です。

起動後は Raspberry Pi 上でWebサーバーが動いていますので

http://airquality.local (LAN限定)

にアクセスすることでLAN側からダッシュボードでグラフなどを見ることができます。

Grafanaによるクラウド化

今のままでは取得したセンサーの値がログとしてローカルに保存されるだけですので、Air Quality Project の目的である「世界中の空気品質・大気汚染の状態をオープンプラットフォーム上で皆で協力して可視化する」を実現すべく、クラウド上にデータがアップロードされる仕組みを設定します。

クラウド上のデータの可視化にはGrafanaというサービスを利用しています。GrafanaはGrafana Labs が公開しているログ・データ可視化のためのサービスです。

こちらも手順通りに行うことで公開することが可能となりました。

実際に表示してみた例です。Grafana自体はWebブラウザからアクセスできますので、PCはもちろん、タブレットなどからの確認が行えます。クラウドサービスなので外から自宅のCO2をモニタリングするなども可能になります。

Grafana は見た目のデザインが良いのと長期のグラフを表示することができ、使いやすいサービスです。

ここまでが Air Quality Project の本来の使用法ですが、せっかく自宅にセンサー付きの Raspberry Pi が設置されたので応用してみましょう。

応用編

Air Quality ProjectのSDKであるEnvironmental Sensor Development Kit (ESDK)を使用することで、各種自作アプリから値を取得することができます。ESDKはオープンソースになっており、自分でソースコードを書き換えることでハッキングすることもできます。

https://github.com/DesignSparkRS/ESDK

その1 LINEのチャットから値を取得できるようにした

我が家では、家族同士のやりとりにLINEのグループチャットを使用しています。家族LINEグループの中に自作のLINE Botを動かし、”CO2”とBotに問い合わせると現在のCO2の値を返すようにしました。LINEのBot自体は、Herokuというサービス上で動作しています。ESDKで取得した値を定期的にHerokuに送信しています。

中高生にとって馴染み深いLINEのチャットをインターフェースとして採用することで、家族チャットで手軽に自宅のCO2値を知ることができます。そのため、家族全員が積極的に部屋の換気を行うようになりました。

その2 CO2の値でゲーム化してみた

部屋のCO2などの空気の状態をリアルタイムで取得できるようになったため、ゲーミフィケーション的な仕組みも考えてみました。以下は無料で使用できるオープンソースのゲームエンジンGodot Engineのチュートリアルゲームを改造したものです。

CO2の濃度に応じて敵の出現量がリアルタイムで変化するようになっています。部屋の換気をしないと敵が増えてしまう仕組みです。遊びながら今の部屋の空気の状態とリンクするのが面白いです。

Godot Engineは、マルチプラットフォームに対応しており、HTML5向けの出力も可能ですので、ブラウザ上で作ったアプリやゲームが動作します。

仕組み的には、LINE Botで取得しているCO2の値をWebSocketを使用してGodot Engineから取得し、取得した値で出現頻度を変えています。さらに応用すれば、温度や湿度でカビが増えてしまうゲームなど、さまざまな可能性が広がります。

その先のミライ

CO2もVOCも、人間の目には見えないものなので、実感することが難しいです。このプロジェクトを通じて、私の家族自身がCO2などの数値の可視化を意識するようになり、積極的に部屋の空気の換気などを行うようになりました。今までは、「なぜか眠くなるな…」とか「集中力が切れている?」みたいな漠然とした感覚もありましたが、可視化することで、「換気してみよう!」という気持ちになることができます。

現在は、スマートフォンやタブレットのブラウザから数値やグラフを見たりしていますが、応用例のLINEのChat Bot化や、ゲーム化を通して、空気の汚染の問題が身近に感じられるようになるかもしれません。いずれ、スマートグラスのようなAR機器が一般化した際には、自宅や会社などグラスを通してみるとCO2の濃度やVOCの状態が視覚にダイレクトに可視化する日もやってくるでしょう。

以上で、Air Quality Projectのレポートを終わります。興味がある方は、ぜひ参加してみてください。