新人でもIoTできますか?ーOpenBlocks+CO2センサーで人・空間の動きを見る

はじめに

今回はCO2の測定が行えるセンサーコネクタを使用して、可視化を行ってみようと思います。

前回の記事で2つのCO2センサのデータを可視化し比較しましたが、今回は前回行ったOpenBlocksへの接続のための準備が不要な機材を使用して性能テストを行ってみようと思います 。

今回はミオ・コーポレーションさんのセンサーコネクタSC30を使用してデータの可視化をしてみます。こちらのセンサーコネクタのhttp通信Ver(発売前)を評価用に入手したので早速レビューをしていこうと思います。

作成するシステム概略図はこちら

すごくシンプルになりました。では早速構築してみます。

センサコネクタ ⇒ OpenBlocks

まず今回使用する機材の説明です。

ミオ・コーポレーション センサーコネクタ SC30シリーズを使用します。

こちらの機器はCO2センサ温度センサ湿度センサを搭載したWi-Fi対応のCO2モジュールです。コンセントに差し込むだけで設定した接続先にデータを送信することができます。

現在販売されているのはMQTT版ですが、発売前のhttp通信版を評価用で入手したのでhttp通信を利用してOpenBlocksのNode-Redにデータを飛ばしてみようと思います 。

センサーコネクタの設定はWi-Fi設定と送信先設定のみ変更しました。こちらは専用の設定ツールでの設定を行いました。

この設定により、電源に繋ぐだけでセンサ値を設定した送信先に送信します。

センサーコネクタの設定はこれだけです。プログラムなどは必要ありません。

次はデータ受け取り側、OpenBlocks側の準備です。と、言ってもNode-Redの設定をするだけで通信出来てしまいます。詳しくは前回の記事をご覧ください。

前回と異なる点はNode-Redからhttpリクエストを送るタイプではなく、http inで受け口を作るだけでデータが送信されてきます。なので送信先URLを固定して受け口となるノードを作成するだけでデータの受け渡しができることになります。

センサーコネクタのデフォルト送信データでは必要のないパラメータも出力されるのでデータ整形もNode-Red上で行います

変換したデータはPD Repeaterに送信し、OpenBlocks本体の機能でクラウドに上げます。ここの設定は前回の記事と同じなのでそちらを参考にしてください。

これらの処理をノードに変換してデータフローを作成します。

[ネットワーク]欄からhttp inノードを選択し、フローにドラック&ドロップ、プロパティは、メソッド:PUT、URL:設定したURL、名前:任意とします。

同時に常に受け付け状態にするため、http responceノードで状態コード200を常に返すよう設定します。

[機能]欄からfunctionノードを選択し、http inの右に配置、必要な情報の抽出を行います。内容は以下に記します

var CO2 = msg.payload.Data[5].Values[0].Value
var temp = msg.payload.Data[6].Values[0].Value
var Hum = msg.payload.Data[7].Values[0].Value
var date = new Date();
var time = date.getUTCFullYear()+ '/' + ('0' + (date.getUTCMonth() + 1)).slice(-2)+ '/' + ('0' + date.getUTCDate()).slice(-2)+ ' ' + ('0' + (date.getUTCHours() + 9 )).slice(-2)+ ':' + ('0' + date.getUTCMinutes()).slice(-2)+ ':' + ('0' + date.getUTCSeconds()).slice(-2);
msg ={
    "payload" :{
        "time": time,
        "CO2": CO2,
        "Temperature": temp,
        "Humidity": Hum
    }
}
return msg;

[出力]タブからipc outノードをfunctionノードの右に配置します。設定内容は前回の記事と同じなのでそちらをご覧ください。

これらのノードを接続し、AWSへデータを送信します。ここから先の設定は前回の記事と同じです。

センサーコネクタ検証

データ送信の準備は整ったので、センサーコネクタの検証をしていきます

まずは前回の記事での検証と同じ条件で測定してみます。条件はこちら

  • 小部屋の窓を解放し完全に換気を行ってCO2値を限界まで下げる
  • 窓とドアを閉め、センサを置いて無人状態で10分放置
  • 窓とドアを閉め、中で20分間一人で作業(PC1台)
  • 窓とドアを閉め、センサを置いて無人状態で10分放置 
  • 窓を解放し、換気を行いながら10分測定

こちらと同条件で測定を行いました。測定データをQuicksightで可視化してみます。

可視化した結果、K-30に似たリニアなグラフになりました。CDM7160のようなグラフのブレは大きく見られないようです。グラフの後半に少しブレがありますが、これは測定時窓を解放し換気を行っているタイミングの測定データです。この日は少し風があり、それによる変動と思われます。

それを裏付けるデータとして、センサーコネクタで取得できる温度と湿度も可視化してみました。

このように後半はデータが上下していますが、窓を閉めている状態ではリニアな値になっていることが確認出来ました。これはK-30と同等の測定精度をもっていると言えるでしょう。

測定精度はこれで確認出来ました。しかし、ミオコーポレーションさんのサイトには以下のようなことが書かれています。

CO2を知れば人や空間の動きが丸わかり、とのことなので先ほどの検証データを詳しく見ていきます。

図に示す点がデータの転換点です。点Aのタイミングで入室したのですが、CO2濃度がすぐさま上昇傾向になりました。K-30やCDM7160と比較してもわかりやすい変化です。

その後20分間在室状態が続き、点Bのポイント、退室した途端CO2値が下がり始めました。これも他と比較してわかりやすい動きになっています。

最後の点Cは換気のために窓をあけたポイントです。窓を開けた途端入りこんできたのであっというまに換気が行われ、CO2濃度もガクンと落ちる様子が見て取れます。その後の変動は恐らく風の影響だと思われます。

このようにCO2値を見ることで人や空間の動きを把握できることが確認出来ました。

おわりに

CO2センサーを使うと入退室はもちろん、換気状態や濃度変化による在室時間、在室人数の検知も可能です。

そして何より、こちらのセンサーコネクタとOpenBlocksを組み合わせると高度な可視化も楽に出来ます。通信の複雑なプログラムも必要なく、誰でもできる設定をするだけでCO2を使ったIoTが実現できます

様々な使用用途が想像できるCO2センサ、これからの時代ますます使われていくことは間違いないでしょうね。

今回はセンサーコネクタとOpenBlocksを利用した可視化を行いました。CO2センサの可能性を確認出来るいい機会だったと思います。

筆者情報
塚田 陽
IoTを触りたての新人プログラマ。日夜先輩方にお世話になりながら勉強中。
最近買ったばかりのバイクでこけました。

タイトルとURLをコピーしました