アルコールセンサ MQ-3 を使ってみる

道路交通法が改正されたようで、業務で自動車を運転する際のアルコールチェックが追加されました。 10月からはより強化されてアルコール検知器を用いたチェックが必要になるようですが、4月からはとりあえず目視等で確認して記録をする方法みたいです。

というわけで、じゃあアルコールセンサでもいじって遊んでみるか!という勢いだけのヤツです。

それにしても、目視等で確認とは顔色・声の調子・呼気の臭い等らしいんですが、呼気の確認はいやですねえ。

漫画NEW GAME!に登場する会社イーグルジャンプのように可愛らしい社員ばかりであれば呼気を確認する風景も美しいですが、現実はそうではありません。辛い・・・

準備するもの

アルコールセンサ

アナログ信号が出てくるそうです。

www.switch-science.com

M5CORE2

なんでもいいですけどLCDにグラフを表示したかったので。

www.switch-science.com

酒!!

f:id:hollyhockberry:20220415235249j:plain

実装

MQ-3の商品ページに配線例がリンクしてあるので接続して読み取るだけっぽいですね。 配線例と同様10kΩでプルダウンします。

f:id:hollyhockberry:20220415235623j:plain

あとはanalogRead()で読んだ値をあれこれするだけなんですが、きちんとアルコール濃度を求めるのではなく、安定状態の測定値から一定値超えた場合にエラー表示する方式で実装してみます。

スイッチサイエンスの商品ページにも

ただし、絶対値を計測できるわけではないので、実際の運用にはキャリブレーションが必須です。

と記載されているので、キャリブレーションする手段がない現状は変化量での検出でお茶を濁さざるを得ません。

完成

さて、あっという間に完成。
お酒を飲んで息を吹きか片時のセンサ値グラフと判定結果の動画です。
なかなか面白いですが、きちんと測定していないので道交法で義務付けられている記録に使うのはちょっと心許ないですかね。

判定結果の信頼性が担保できれば、OK判定後に運転者の写真を撮って判定結果とともにサーバへ記録しておく、みたいな装置ができそうだったんですが・・惜しい!

なお、実験するためにぼちぼち飲みましたが、飲んでしまうと平常時の実験ができないので困りました。

f:id:hollyhockberry:20220416004750j:plain

ちなみにデータシートをちゃんと読んでみると、"Standard test conditions"の項目にプリヒート時間 48時間以上とありました。結構な時間プリヒートするんですね。

f:id:hollyhockberry:20220415233112j:plain

ソースコード

ソースコードはこちらです。MQ-3のサンプルとして肝心な箇所は analogRead() だけなのであんまり必要ないかもですね。

github.com