大気の汚れ度を測る。MQ135 二酸化炭素測定

こんにちは、こんばんは
aliexpressの海を漂っていたところ、面白いセンサーを見つけました。
一個140円程度で5個買いました。
開封してみると
Flying-Fish MQ135の文字が
これは大気の汚染度を測るセンサーになっています。
CO2だとか測ることができます。
実際にやっていきます。

用意するもの 

・MQ135
・Arduino もしくは ESP32
・ジャンパ線

センサについて

このセンサーはいろいろごちゃごちゃ基盤に書いてありますが、型番は『MQ135』で基板を製造したメーカーは『Flying-Fish(飞鱼)』(トビウオじゃん...)というメーカーのようです。
MQ135を製造したメーカーは『Zhengzhow Winsen(炜盛科技)』というメーカーのようです。
このセンサは、多くの熱が出ます。これは故障しているわけではなく、センサの仕組みが原因になっています。安価なガス(空気)センサはセンサの素子をヒーターで温めることによって抵抗値が変わり、その抵抗値でガスを検出します。なのでやけどはするほどではないですが、センサ自体は結構発熱します。
ちなみに精度が良くて、値段が高いCO2センサは、レーザ光を出して空気の反射量、吸収量を調べてCO2濃度を調べます。

回路

まずはデータシートを調べます。
またモジュールの回路図はコピー品だったようで同じ回路図のものをネットで発見しました。
この回路図は以下のブログで閲覧することができます。(コードも載ってるしこのサイトに行ったほうが早くできると思います。)
まあ基本はジャンパ線をVCCを5Vに、GNDはGNDに、DOは結線はなし、A0はADC(アナログデジタルコンバータ)がついているピンにINすればよろしいです。
D0は一定の入力電圧がオペアンプに入力されると、信号が出力されるだけのようです。要するにHIGHかLOWだけの出力になります。
それとR2の抵抗値が10kΩがデフォルトですが、上のリンクのブログでは分解能が小さくなるので22kΩに変更したようです。デフォルトの10kΩのままでも使えるので大丈夫だと思います。
基本はArduinoのA0~A5のどれかを使うでいいと思います。

センサ調整をする

完成した製品を調整するのはとてもコストがかかります。人件費、設備費、などなどそういったコストを企業は払いたくないので、安い製品は基本的に調整、校正なんかしてありません。
もちろん当然のように、不良品も存在します。
今回手に入れたセンサも、工場で調整されているわけではないので自分で調整する必要があります。
本来は高価な計測機械を用いる必要がありますが、買えない&めんどいので計算である程度どうにかします。
基準抵抗とその比率を求めて、抵抗値さえわかれば良い精度も出せそうです。 

プログラム

今回はGeorgK/MQ135というライブラリを使用して、プログラムを作成しようと思ったけどライブラリが2014年という今から10年前のものなので、新しく書き直したほうが良き、という判断に至りました。
なのでとっとと書いてgithubでフォークしちゃいます。 
Readmeに従って進めてください。
 

CO2の濃度の正確性について

まず、プルーフィリング用のプログラムを屋外で実行します。
屋外のCO2濃度に関しては参考値として気象庁のガス観測のレポートをもとに測定します。
とりあえず、サンプルのほうにすべて値が入っているので気にせず使えます。
 

結果

なんか問題なく表示できたのでこれにておしまい。
ドリフトをいい感じに制御できれば値のブレはなくなりそうですね。


 

 

コメント

このブログの人気の投稿

DockerのNextcloudでエラーが出た SQLSTATE[08006] [7]

Arduinoで電流を測定する