@m_seki の

I like ruby tooから引っ越し

すばらしいCO2センサーを買ったよ!

ちょうかっこいいCO2センサーを買いました

CO2センサーを買ってmacOSから読んだ話。

手作り感あるCO2センサー発見

NDIR方式のCO2センサーをAmazonで探していたら見つけたのがこれ!

一見して手作り感あってよい。NDIR(MH-Z19C)をArduino Nano互換機で制御している。ChromeのシリアルAPIでデータを取得できるとあるので、これはたぶんMacでも通信できるだろう、と予想して購入しました。

ChromeのシリアルAPI

ChromeってBluetooth BLEとかシリアルのAPIを持ってるのね。macOSでも動作するので、ちょっとした実験に便利です。 このシリアルAPIでこのセンサーから値を取得するサンプルがメーカーのサイトに置いてあります。

CO2Viewer Web for NDIR07 by Epea beta

このページのJavaScriptを読むとどんな風にデータを取得するのかがわかります。(単純なJSONのようです)

Rubyで読む

serialport gemを使って読むサンプルです。500ppmを下回ったら通知するツールです。なお、通知にはmacOSのリマインダー.appを利用しました。 AppleScriptを経由してリマインダーにアイテムを一つ追加すると、iPhoneやAppleWatchに通知が出るというわけです。

CO2濃度が高まったら換気を始めて、別の部屋へ移動。換気が済んだら部屋へ戻る、という運用をします。

gist.github.com

USBシリアルって頻繁にデータ落ちが発生するのね。まるでシリアルみたい。JSONへの変換の失敗を無視するのがミソ。(数値が一桁落ちることもあってうまく動かないこともあった)

メーカーのサイトはこちら

epea.co.jp