DreamerDreamのブログ

夢想家の夢です。〜揚げたてのモヤっとしたものをラフレシアと共に〜

においセンサーをArduinoで使ってみた 自作オゾン発生器によるマスクの消臭効果を試したい

以前、オゾン発生器を作りました。

dreamerdream.hateblo.jp

 

これを用いて実際にマスクの脱臭実験をしてみたのですが、これがなかなか良い感じです。

f:id:DreamerDream:20200602114232p:plain

体感的には「無臭」になります。

次亜塩素酸水で実験したときは塩素の臭いで元の臭いが取れてるのか取れていないのかよく解りませんでした。

あと元の臭いが取れても乾かす時に部屋の臭いや生乾き臭が付かないのか?等の懸念材料がありましたが、オゾンの場合はガスに当てるだけでそもそも濡らす必要が無いので非常に楽です。

 

しかしながら、いくら「効果があった」と口で言ったり文字で伝えても所詮は体感の問題なので「気持ちの問題じゃないか?」と言われてしまえばそれまでです。

数値で表す方法が無いとなかなか伝わりません。

 

ということで、今回はマスクの消臭検証実験器具の「においセンサー」を作組み立てるというお話です。

 

においセンサー

秋月電子通商から販売されているにおいセンサー「TGS2450

<秋月電子通商サイト>

においセンサ TGS2450: センサ一般 秋月電子通商-電子部品・ネット通販

 

こちらのブログを参考にさせていただいたのですが、ブログ中での「配線図」はどうやらピン配置が逆ですね。

においセンサー(TGS2450)の実験 [Arduino]

 

センサーを上から見た場合は、このように突起から半時計回りに①〜④までピンが並んでいます。

f:id:DreamerDream:20200602095853p:plain

仕様書に書かれているのは[Bottom]と書かれていますのでセンサーを裏から見た場合の図です。

 

<実際のピン配置>

f:id:DreamerDream:20200602094137p:plain

 

Arduinoへの接続

ArduinoのGNDにGND、3は33Ωの抵抗を介して③センサーへ、4は33Ωの抵抗を介して④ヒーターへ、A0はセンサーと抵抗の間へ割り込ませて分圧抵抗値を読みます。

Arduinoへの配線図↓

f:id:DreamerDream:20200602111457p:plain

<実際の配線>

f:id:DreamerDream:20200602094149p:plain

※コネクタが黒いので見辛いですが、上述の配線図通りに繋がっています。

33Ωの抵抗が無かったので100Ωを3本並列に繋げています。

 

本当はトランジスタを用いてヒーターを過熱するべきなのですが、加熱時間が短いのと多くの作例でArduinoへ直付けして特に問題無さそうなので僕もそのまま繋ぎました。

数時間稼動させっぱなしにしましたが、特に異常が出ることも無く使えていますので大丈夫でしょう。 

 

プログラム

NionSenser.ino

const int pin_heater = 4; //ヒーター電源
const int pin_senser_on = 3; //センサー電源
const int pin_senser = A0; //センサー

 

/*初期設定*/

void setup(){

  //センサーとヒーター電源をアウトプット宣言
  pinMode(pin_senser_on,OUTPUT);
  pinMode(pin_heater,OUTPUT);

  //センサーとヒーターの出力をOFF
  digitalWrite(pin_senser_on, LOW);
  digitalWrite(pin_heater, LOW);

  //シリアル出力設定
  Serial.begin(9600);
}

 

/*センサーの値を読む*/

int readSenser(){
  int val = 0;

  //センサー電源ON
  digitalWrite( pin_senser_on, HIGH );
  delay( 5 ); //一応待つ
  val = analogRead( pin_senser );//読む

  //センサー電源OFF
  digitalWrite( pin_senser_on, LOW );
  return val;//取得値を返す

}

 

/*ヒーターの過熱*/

void heat(){

  //8ms過熱
  digitalWrite( pin_heater, HIGH );
  delay( 8 );

  //237ms冷却
  digitalWrite( pin_heater, LOW );
  delay( 237 );
}

 

/*メインルーチン*/

void loop(){
  int val = 0;

  //臭いに反応したら数値が上がるように、取得値を逆転させる

  val = 1023 - readSenser();
  heat();
  Serial.println(val);
}

プログラムは参考ブログより個人的な好みで少し改造しています。

結果は数値で出力されます。

センサー値を直に取得すると、臭いに反応するほど数値が下がるのですが、解りやすいように数値が上がるように反転させました。

 

このように結構簡単な材料でにおいセンサーを使うことが出来ます。

 

 

 

マスクの消臭検証してみました↓

dreamerdream.hateblo.jp

 

kampa.me