【Arduino Nano Every】TGS2450センサで匂いを測定する

ardiuno-tsg-top Raspberry Pi

本記事の内容

Arduino Nano EveryとTGS2450匂いセンサを使用して、空気中のメチルメルカプタンや硫化水素といった匂い分子を定量的に測定する方法を紹介します。

Arduino IDE超初心者ですが、コピペだけで使用可能なサンプルコードと簡単な配線図で、TGS2450匂いセンサの使用方法を解説しています。

必要なもの

created by Rinker
Arduino
¥2,510 (2024/07/26 07:51:12時点 Amazon調べ-詳細)

今回使用するマイコンボードはArduino Nano Everyです。TGS2450センサをRaspberry Pi Picoで使用する方法は、以下の記事にて紹介します。

TGS2450センサは秋月電子で購入しました。税込み300円なので、どちらかというとお手頃価格なセンサです。(秋月電子の購入サイト

その他、各種抵抗とトランジスタ(TTA008B 80V2A)も必要になります。(秋月電子の購入サイト

TGS2450匂いセンサについて

メチルメルカプタンや硫化水素といった硫黄化合物系ガスを定量的に測定できる「匂いセンサ」の一つです。低濃度のガスに対しても非常に高い感度で測定できるため、悪臭検知センサとして活用できます。

反応物質感度詳細
メチルメルカプタン排せつ臭、生ゴミ臭の成分
硫化水素腐卵臭を持つ可燃性ガス、メチルメルカプタンよりも毒性あり
エタノール引火性の高い液体及び蒸気、アルコール飲料に含まれる
アンモニア特有の刺激臭のある悪臭物質

TGS2450センサの検知対象濃度は0.1ppm以上なので、0.00001%でも対象のガスが存在すれば、検知できます。恐ろしい検知能力です。

センサ内のヒーターを加熱して検知対象ガスを検知できるようになります。センサ抵抗値が安定するまで一般に数10秒から数分を要し、初回使用時は慣らし運転として出力が安定するまで1時間近く待つ必要があります。

配線

秋月電子の購入サイトに掲載されている「サンプル回路およびコード」を参照して作成しました。トランジスタを使用しているため、若干配線が複雑になっています。

TGS2450の①ピンはArduino Nano EveryのGNDと接続するだけで、②ピンはオープンにしておきます。

③ピンはセンサ信号となるためArduino Nano EveryのA3と接続し、④ピンがTGS2450センサの入力(ヒーター)となります。

奇麗な配線ではないですが、写真で見ると以下のようになります。TGS2450センサの向きに注意しないと、配線を大きく間違えてしまうのでくれぐれも気をつけてください。

プログラムコード

こちらも秋月電子のサンプルコードのままですが、以下に掲載します。

#define PIN_HEATER 14 // D14(A0)
#define PIN_SENSOR 15 // D15(A1)
#define PIN_OUTPUT 3 // A3
void setup() {
 pinMode(PIN_HEATER,OUTPUT);
 pinMode(PIN_SENSOR,OUTPUT);
 digitalWrite(PIN_HEATER,HIGH); // Heater Off
 digitalWrite(PIN_SENSOR,LOW); // Sensor Pullup Off

 Serial.begin(9600);
}
void loop() {
 int val=0;

 delay(237);
 digitalWrite(PIN_SENSOR,HIGH); // Sensor Pullup On
 delay(3);
 val = analogRead(PIN_OUTPUT); // Get Sensor Voltage
 delay(2);
 digitalWrite(PIN_SENSOR,LOW); // Sensor Pullup Off

 digitalWrite(PIN_HEATER,LOW); // Heater On
 delay(8);
 digitalWrite(PIN_HEATER,HIGH); // Heater Off
 Serial.println(val);
}

簡単な解説で恐縮ですが、5msON/245msOFFをひたすら繰り返しているコードです。詳細は、Raspberry Pi Picoのページをご確認ください。

Arduino IDE初心者ですが、コードのコピペ、①Verify⇒②Upload⇒③Serial Monitorだけで測定結果を表示させることができます。

測定結果

テストする匂い物質は家庭ごみや吐息でも試せますが、油性ペンが手頃で簡単なのでおすすめです。

油性ペン

通常時の空気中(匂い物質をセンサ部に近づけない状態)では、出力値が590近くで安定しています。

油性ペンを近づけると出力値が一気に下がって、400台にまで落ち込むことが確認できました。(さらに近づけておくと、300前後まで下がります。)ここから油性ペンを離して放置すると、出力値は再度500後半まで回復します。

昨日の靴下

もう一つ、昨日の靴下でも試してみましたが、自分で嗅ぐ匂いほどは出力値が下がらない印象でした。

通常時の空気中では出力値が610近くで安定していたところ、機能の靴下を近づけると600まで落ちましたが、これは測定誤差の範囲とも見れます。

まとめ

Arduino Nano EveryでTGS2450匂いセンサを使用する方法の紹介になりました。次はプログラムコードをMicroPythonに書き換えて、Raspberry Pi Picoで匂いを測定する方法を紹介したいと思います。

コメント