CCS811で空気品質測定(3)

補正パラメータであるBASELINEレジスタですが、CCS811では電源を切ったら忘れてしまいます。デバッグのために何度か電源OFF/ONを繰り返していると、だんだん収束までの時間は短くなっているようですが、それでも忘れてしまうことには変わりありません。

まあ、連続通電すればいいか、とも思ったのですが、やはり気になって保存するように修正してみました。

“CCS811で空気品質測定(3)” の続きを読む

CCS811で空気品質測定(2)

センサー側は動くようになったので、今度はブラウザで見えるようにしてみます。

1.Flaskのアプリケーションファイルを作成

Blueprintでアプリケーションを分割してあるので、その分割したモジュール作成という形(言い方が適切かはわかりません)になります。今回は似た構成のモジュールをコピーして作ります。

まず、アプリケーションのファイル一式をコピーします。

/var/www/app$ sudo cp -pr bme280 css811

ファイル名を一括変換します。

“CCS811で空気品質測定(2)” の続きを読む

CCS811で空気品質測定(1)

CO2測定のセンサとして、CCS811も買ってあったので、そちらを動かしてみます。CCS811はTVOCという値も測定できるのですが、代わりにCO2の濃度がCO2自体ではなく、eCO2という代替値になります。

CCS811は温度と湿度を補正用のパラメータとして設定してやる必要がありますので、そのためのセンサーも必要になります。湿度まで取るのが大変、という場合には、サーミスタを接続して温度を取得することはできそう。それすらケチりたい、という場合には、温度も湿度も決め打ちで動かすことになります。

今回、CCS811を取り付けた基板は、BME280を搭載可能なオリジナルのESP8266ボード回路図)で、CCS811に必要になるnWAKEとnINTはそれぞれ、GPIO15とGPIO14に割り振ってあります。(まあ、実際のところは追加の2本は必要なかったようで)

で、ソフトウェアの方は、やはりBME280のデータをMQTTで送信するArduino環境のソースを改造して使用します。ただし、CCS811は継続的に動作させないといけないようなので、DeepSleepは使用しません。また、CCS811の方はライブラリとして、AdafruitのCCS811のライブラリを使用させてもらいました。

“CCS811で空気品質測定(1)” の続きを読む

TTGO T-Camera再び(1)

TTGO T-Cameraは今もなお3Dプリンタを監視しています。このときの状態から変わったのは、3Dプリンタ自体にABSで出力するための囲いを作ったこと、そして囲いを作ったら、T-Cameraを支えている柱がPLAでは熱で曲がってきてしまったので、ABSで作り直したことくらいです。そして、ずっとIPアドレスなどの情報をOLEDに表示し続けていたので、(高温下で使ったこともあるでしょうが)すっかり画素が焼けて、画素がまだらになっています。このT-Cameraには、このまま天寿を全うしてもらおうかと思います。

ただ、実はT-Cameraは2台買ってあったので、もう1台あります。こちらはほぼ未使用なので、今度はこちらに18650のリチウムイオン電池をつけて、電池駆動をしてみたいと思います。

“TTGO T-Camera再び(1)” の続きを読む

MH-Z19Bセンサーのオートキャリブレーション

作成したCO2センサーですが、値が600ppm以下になってくれません。AutoCalibrationをONにしているので、通電して24時間での最小値を400ppm扱いしてくれるはず・・・と思ったのですが。

・・・と思ったら、やっとキャリブレーションが効いたようです。

これは、コマンドでオートキャリブレーションのON/OFFができるようにした方がいいかもしれない。

ちなみに、左側の天井を突き抜けているのは、部屋を締め切ってエアコンを使った時。センサー自体は5000ppmまでの値を返してきますが、細かい値が見えなくなるので、chart.jsで表示の上限値を2000ppmに制限しています。午後5時前に、部屋の窓を開けたら下がってきました。5時過ぎに部屋のドアも開けて、風通し最大(笑)にしたら、この時の表示で750ppmくらいまで下がりました。7時半くらいに窓の外に出したらさらに下がりました。

・・・・そして、9時前に、ついにオートキャリブレーションが働いて、過去の最小値を400ppmとして扱ってくれるようになりました\(^o^)/

思ったよりもCO2が増えるのは速い

昨晩MH-Z19B CO2センサを使って作成した測定環境ですが、今日は暑いので窓を閉めてエアコンをつけてみました。6畳ないくらいの部屋なのですが・・・

MH-Z19B CO2センサによるCO2測定グラフ

窓を閉めてエアコンの電源を入れたら、30分くらいで2000ppm近くまで急上昇しました。

まだ半日くらいしか経ってないので、ONにしてあるオートキャリブレーションの効果がでてないと思います。(オートキャリブレーションは24時間くらいでその間の最低値を400ppmとみなすように補正がかかっていくらしい。このグラフで600ppmちょっとのあたりがそのあたりなのかも?)

とはいえ、わずか30分くらいで大きく上昇することはわかりました・・・。

ESP32でCO2を測定

自宅で仕事をしていると、急激に眠くなることがあります。で、ふと思ったのが、CO2濃度との関連。CO2濃度が高くなってくると眠くなる、と聞いたことがあります。

そこで、以前AliExpressで買っていたCO2センサMH-Z19BをESP32に接続してCO2濃度を測定してみたいと思います。ベースとなる部分は少し前に動作確認した18650のリチウムイオン電池とOLEDがついているボード(これもAliExpressで購入)を使って作ります。

“ESP32でCO2を測定” の続きを読む

中華激安HDMIキャプチャ

LinuxMintで中華激安HDMIキャプチャを買ってみました。

PC側のインタフェースはUSB2.0またはUSB3.0、形状はドングル形状です。価格は約10ドル位。自分が買ったときはUSB2.0モデルだと10ドルを少し切って、USB3.0モデルは10ドルを少し超えました。USB3.0だと、FullHDで60fpsのキャプチャができる、という違いがありますが、普通の使い方ではあまり意味はないように思います。まあ、僅かな差なので、どう考えるかですが。
論理インターフェースの方は、UVC(USB Video Class)でPCからはカメラに見えるので、通常はOS側のドライバ無しで動作します。

Webサイトによっては「音声がモノラルになる」という記述も見かけたような気もしますが、LinuxMint 20.3環境では音声もステレオで(少なくともUSB3.0モデルは)キャプチャできました(が、問題があります)。

“中華激安HDMIキャプチャ” の続きを読む

mosquitto_subのデフォルトオプション

デバッグでmosquitto_subを使って、オプションにユーザー名とパスワードを記述すると、ps コマンドであらわになってしまいます。ユーザーごとのデフォルトオプションを設定して、これを回避します。

説明は mosquitto のマニュアルに記載があります。具体的には、 ~/.config/mosquitto_sub に1行ずつオプションを記述していけばOKです。

なので、以下の内容のファイルを作って、デフォルトオプションを設定します。

-h 接続先ホスト
-p 1883
-u (ユーザー名)
-P (パスワード)

これで、他のオプションのみをコマンドラインで記述してmosquitto_subを起動します。