ちょうかっこいい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濃度が高まったら換気を始めて、別の部屋へ移動。換気が済んだら部屋へ戻る、という運用をします。
USBシリアルって頻繁にデータ落ちが発生するのね。まるでシリアルみたい。JSONへの変換の失敗を無視するのがミソ。(数値が一桁落ちることもあってうまく動かないこともあった)