Intel Edisonでアルコールセンサーを使ってみた
はじめに
弊社のIntel Edisonに関する過去記事はこちらをご参照ください。
今回はIntel EdisonにGrove - Alcohol Sensorを接続して、アルコール濃度を検出してみました!
やってみた
使ったデバイス
Intel Edison Kit for Arduino + Grove Starter Kitです。GroveのベースシールドのA0にAlcohol Sensorを接続しています。
Alcohol Sensorを使う場合の注意点
- アルコールセンサーは内蔵のヒーターを熱する必要があり、電源投入後5分〜10分は正確に検出出来ない。
- ベースボードに接続した場合、A0がアナログデータ入力でセンサーになる。A1がヒータースイッチで、デジタル出力になり15番にマッピングされる。(ちょっとここの理屈がよく理解できていません)
- 内蔵ヒーター(A1)はHIGH(1)がOFF、LOW(0)がON。
- アルコールが空気中にあるとセンサの抵抗値が下がる仕組みのため、表示する値は1023からセンサの値を引いてる。
XDKで書いたコード
var mraa = require("mraa"); var SensorPin = new mraa.Aio(0); var HeaterPin = new mraa.Gpio(15); HeaterPin.dir(mraa.DIR_OUT); HeaterPin.write(1); setInterval(function () { HeaterPin.write(0); var a = SensorPin.read(); var b = 1023-a; console.log("Alcohol Value: " + b); }, 100);
試してみる
コードをビルドしEdisonにアップロード、開始して10分経った状態がこちら。380前後で安定しています。
動作確認用として、我が家に常備してある料理酒を使います。
料理酒を小皿に注いで、アルコールセンサーを近づけてみると...
数値が上がって700を越えました!ちゃんとアルコールを検出しています!
おまけ
アルコールセンサーがちゃんと動作したことは分かりました。しかし、これは呼気でもちゃんとアルコールを検出できるのでしょうか?試さないとわからないですよね?論より証拠。試してみました。
まずは実験前に呼気を確認してみます。
お酒を飲んでいない状態でアルコールセンサーに息を吹きかけても、数値は全く変わりません。
じゃ。プシッ。
グビグビ。
プハー!うめー!
1本飲みきったところでアルコールセンサーに息を吹きかけてみます。
お、ちゃんと数値が上がりましたね!
2本目いただきます!
2本目を飲んだ後。徐々に数値が高くなってきていますね。
3本目。
3本目を飲みきった後。やはり本数が増えるたびに、呼気に含まれるアルコールが増えていますね!
いやービールって本当に良いものですね。
さいごに
アルコールだけでなくベンジンやメタンなどの燃焼性ガスに反応するらしいので、理科実験室などの防災にも使えそうです。あとビール美味かったです。