Grove アルコール検知センサー(SKU: 101020044)を使いアルコール濃度を測ろうとしたところ、ひとつのセンサーを使ったテストでは数値に怪しさが残るもののそれっぽい値を得ることができました。
しかし、複数個の同型センサーで個体差がどの程度あるのか調べてみるとてんでばらばらの値が出てしまい、どのセンサーが実際の値に近いのか推測することもできない現象が起きました。
どの程度の精度を保った製品なのか確認したときの記録です。
SKU: 101020044
メーカー製品URL: https://jp.seeedstudio.com/Grove-Alcohol-Sensor.html
使用したセンサー
裏面に「Alcohol Sensor v1.2」と記載されています。
センサーのメーカーseeed studio社のWebサイトに掲載されているプログラムを元に、清浄な状態(アルコールがない状態)の測定と対象物の測定を一体化したArduinoプログラムを作成。
サンプルプログラムが掲載されているURL: https://wiki.seeedstudio.com/Grove-Alcohol_Sensor/
作成したプログラムは下図のように3つの値を出力します。
① … 現在の計測値(Rs)
② … アルコールに曝露していない状態の計測値(RS0)
③ … ①/②の比率
このセンサーはアルコールに曝されると電圧が変化します。
センサーの電圧変化をATOM Liteのアナログ入力で取得し所定の計算式よって①と②で出力している数値にします。アルコール濃度が高いほど小さな値となります。
③で算出した比率をメーカーが公表しているグラフに当てはめることでアルコール濃度を計測することができます。
だいたい密閉した容器にアルコールを数滴垂らし数分経ったところで、容器の中にセンサーをぶら下げ計測。
容器の中にアルコールが満たされていることは吹き込むタイプの市販アルコールチェッカーを使い確認。
まず容器のなかにセンサーをぶら下げ、アルコールを検出し始めるタイミングを確認します。
検出し始めるタイミングについてはほぼ同じで許容の範囲内です。
用意したプログラムでは300ミリ秒ごとに計測とシリアル出力を行っているので1秒程度の差
しかし、検出した濃度については大きな開きがありました。
この開きはしばらく様子を見ても収斂することはありませんでした。
次に容器からセンサーを取り出し元の状態に戻るまでの状態を確認します。
元の状態に戻るまでの時間には著しい開きがありました。
遅い方のセンサーもしばらく放置すると元の状態に戻りますが相当の時間がかかりました。
何度か同じテストを行いましたが傾向が変わることはありませんでした。
他に、密閉した容器以外にもアルコールをしみこませたティッシュを近づける、ビールなどアルコール飲料を注いだ容器に近づける、ビールを飲んだあと呼気を拭きかけるなど試してみましたが、どの方法をとっても近い値が出るといったことはありませんでした。
また、ATOM Liteのアナログ入力部分の個体差なども考慮し、ATOM Liteとセンサーの組み合わせを変えて確認しましたが、確認した限りではATOM Liteが計測値に影響していることは無いように見受けられました。
手元にある同型のセンサー4つを使いテストを行いましたが、すべてがバラバラの反応、計測値を指し示してしまいどれが合っているのか判断できませんでした。
当初は個体差はあれどキャリブレーションにより補正が可能だろうと見込んでいましたが、今回のテストでメーカーのWebサイトに掲載されている仕様通りの結果を得るのは難しそうという結論に至りました。
ただ、どの個体(センサー)もある程度濃いアルコールに曝露させると何かしらの数値の変化は起きるので、アルコールの有無を判定する程度でしたら使うことができそうです。
MQ-3センサーやほかのメーカーのセンサーでは正しく計測できるのか、引き続きトライしてみようと思います。
Please give us your valuable comment