Grove - ガスセンサー(MQ3)
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
Grove - ガスセンサー(MQ3)モジュールは、家庭や産業におけるガス漏れ検知に役立ちます。このセンサーは、アルコール、ベンゼン、CH4、ヘキサン、LPG、COを検知するのに適しています。高感度と高速応答時間により、測定を迅速に行うことができます。センサーの感度はポテンショメーターを使用して調整可能です。
注意
センサー値は許容誤差範囲内でガス濃度の概略的な傾向を反映するだけであり、正確なガス濃度を示すものではありません。空気中の特定の成分を検出するには、通常、より精密で高価な機器が必要であり、単一のガスセンサーでは実現できません。プロジェクトが非常に正確なレベルでガス濃度を取得することを目的としている場合、このガスセンサーはお勧めできません。センサー | ガスタイプ | 今すぐ購入 |
MQ2 | 可燃性ガス、煙 | |
MQ3 | アルコール蒸気 | |
MQ5 | LPG、天然ガス、都市ガス | |
MQ9 | 一酸化炭素、石炭ガス、液化ガス |
[Seeed Gas Sensor Selection Guide](https://wiki.seeedstudio.com/ja/Seeed_Gas_Sensor_Selection_Guide/)を公開しました。このガイドは、あなたのニーズに最適なガスセンサーを選ぶのに役立ちます。
特徴
- アルコールに対する高感度とベンゼンに対する低感度
- 安定性が高く、長寿命
- 高速応答と高感度
Groveモジュールの詳細については、[Grove System](https://wiki.seeedstudio.com/ja/Grove_System/)を参照してください。
仕様
項目 | パラメータ | 最小値 | 典型値 | 最大値 | 単位 |
---|---|---|---|---|---|
VCC | 動作電圧 | 4.9 | 5 | 5.1 | V |
PH | ヒーター消費電力 | 0.5 | - | 750 | mW |
RL | 負荷抵抗 | 調整可能 | |||
RH | ヒーター抵抗 | - | 33 | - | Ω |
Rs | センサー抵抗 | 1 | - | 8 | MΩ |
Scope | 検出濃度範囲 | 0.05 | - | 10 | mg/L |
応用例
- アルコールチェッカー
- 呼気検査器
- 玩具
ハードウェア概要
これはアナログ出力センサーです。このセンサーはGrove Base Shieldの任意のアナログソケットに接続する必要があります。このチュートリアルで使用される例では、A0アナログピンを使用します。Base ShieldのA0ポートにこのモジュールを接続してください。
ジャンパーワイヤを使用して、GroveモジュールをArduinoに直接接続することも可能です。接続方法は以下の表に示されています:
Arduino | ガスセンサー |
---|---|
5V | VCC |
GND | GND |
NC | NC |
Analog A0 | SIG |
ガスセンサーからの出力電圧は、ガス濃度が増加すると増加します。感度はポテンショメータを調整することで変更できます。センサーの最適な予熱時間は24時間以上です。MQ-3センサーの詳細情報については、Resourcesセクションに記載されているデータシートを参照してください。
対応プラットフォーム
Arduino | Raspberry | ArduPy |
---|---|---|
上記で対応可能とされているプラットフォームは、モジュールのソフトウェアまたは理論的な互換性を示しています。ほとんどの場合、Arduinoプラットフォーム向けのソフトウェアライブラリやコード例のみを提供しています。すべての可能なMCUプラットフォーム向けにソフトウェアライブラリやデモコードを提供することはできません。そのため、ユーザーは独自のソフトウェアライブラリを作成する必要があります。
はじめに
Arduinoで遊ぶ
Seeeduino V4.2 | Base Shield | Grove - Gas Sensor(MQ3) |
---|---|---|
今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
Grove - Gas Sensor(MQ3)を上記の画像のようにA0ポートに接続してください。
ガス検出:基本例
この例では、センサーがA0ピンに接続されています。センサーから読み取った電圧が表示されます。この値を閾値として使用し、ガス濃度の増減を検出することができます。
void setup() {
Serial.begin(9600);
}
void loop() {
float sensor_volt;
float sensorValue;
sensorValue = analogRead(A0);
sensor_volt = sensorValue/1024*5.0;
Serial.print("sensor_volt = ");
Serial.print(sensor_volt);
Serial.println("V");
delay(1000);
}
測定:概算
この例では、ガスの概算濃度を知る方法を示します。MQ3センサーのデータシートによると、これらの方程式は標準条件下でテストされており、校正されていません。温度や湿度の変化により結果が異なる場合があります。
- ガスセンサーを清浄な空気環境に置き、以下のプログラムをアップロードしてください。
void setup()
{
Serial.begin(9600);
}
void loop()
{
float sensor_volt;
float RS_air; // 清浄な空気中でのRS値を取得
float R0; // アルコール中でのR0値を取得
float sensorValue;
/*--- 100回のテストで平均値を取得 ---*/
for(int x = 0 ; x < 100 ; x++)
{
sensorValue = sensorValue + analogRead(A0);
}
sensorValue = sensorValue/100.0;
/*-----------------------------------*/
sensor_volt = sensorValue/1024*5.0;
RS_air = (5.0-sensor_volt)/sensor_volt; // *RLを省略
R0 = RS_air/60.0; // グラフから清浄な空気中でのRS/R0比は60(WebPlotDigitizerを使用して取得)
Serial.print("sensor_volt = ");
Serial.print(sensor_volt);
Serial.println("V");
Serial.print("R0 = ");
Serial.println(R0);
delay(1000);
}
- 次に、Arduino IDEのシリアルモニターを開きます。R0の値を記録し、次のプログラムで使用する必要があります。読み取り値が安定した後にR0を記録してください。
void setup() {
Serial.begin(9600);
}
void loop() {
float sensor_volt;
float RS_gas; // ガス中でのRS値を取得
float ratio; // RS_GAS/RS_air比を取得
int sensorValue = analogRead(A0);
sensor_volt=(float)sensorValue/1024*5.0;
RS_gas = (5.0-sensor_volt)/sensor_volt; // *RLを省略
/*-最初のテストのデモでのR0の値を名前"R0"に置き換え-*/
ratio = RS_gas/R0; // ratio = RS/R0
/*----------------------------------------------------*/
Serial.print("sensor_volt = ");
Serial.println(sensor_volt);
Serial.print("RS_ratio = ");
Serial.println(RS_gas);
Serial.print("Rs/R0 = ");
Serial.println(ratio);
Serial.print("\n\n");
delay(1000);
}
さて、以下の図からガスの濃度を取得することができます。
図によると、測定可能な最小濃度は0.1mg/L、最大濃度は10mg/Lであることがわかります。ただし、比率と濃度の関係が非線形であるため、公式を提供することはできません。しかし、mg/Lをppmに変換することが可能であり、値を確認する際に便利かもしれません。
Raspberry Piでの操作 (Grove Base Hat for Raspberry Piを使用)
ハードウェア
- ステップ1. このプロジェクトで使用するもの:
Raspberry Pi | Grove Base Hat for RasPi | Grove - Gas Sensor(MQ3) |
---|---|---|
今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
- ステップ2. Grove Base HatをRaspberry Piに接続します。
- ステップ3. Grove - Gas Sensor(MQ3)をBase HatのA0ポートに接続します。
- ステップ4. USBケーブルを使用してRaspberry PiをPCに接続します。
ステップ3では、Grove - Gas Sensor(MQ3)を任意のアナログポートに接続することができますが、対応するポート番号に合わせてコマンドを変更する必要があります。
ソフトウェア
- ステップ1. ソフトウェア設定に従って開発環境を構築します。
- ステップ2. grove.pyライブラリをクローンしてソースファイルをダウンロードします。
cd ~
git clone https://github.com/Seeed-Studio/grove.py
- ステップ3. 以下のコマンドを実行してコードを書きます。
cd grove.py/grove
nano grove_gas_sensor_mq3.py
次に、以下のコードをこのファイルにコピーし、++ctrl+x++を押して保存して終了します。
import math
import sys
import time
from grove.adc import ADC
class GroveGasSensorMQ3:
def __init__(self, channel):
self.channel = channel
self.adc = ADC()
@property
def MQ3(self):
value = self.adc.read(self.channel)
return value
Grove = GroveGasSensorMQ3
def main():
if len(sys.argv) < 2:
print('Usage: {} adc_channel'.format(sys.argv[0]))
sys.exit(1)
sensor = GroveGasSensorMQ3(int(sys.argv[1]))
print('Detecting...')
while True:
print('Gas value: {0}'.format(sensor.MQ3))
time.sleep(.3)
if __name__ == '__main__':
main()
- ステップ4. 以下のコマンドを実行してコードを実行します。
python grove_gas_sensor_mq3.py 0
すべてが正常に動作すれば、以下の結果が表示されます。
pi@raspberrypi:~/grove.py/grove $ python grove_gas_sensor_mq3.py 0
Detecting...
Gas value: 564
Gas value: 564
Gas value: 564
Gas value: 565
Gas value: 565
Gas value: 565
Gas value: 566
Gas value: 566
Gas value: 566
Gas value: 566
Gas value: 566
^CTraceback (most recent call last):
File "grove_gas_sensor_mq3.py", line 69, in <module>
main()
File "grove_gas_sensor_mq3.py", line 66, in main
time.sleep(.3)
KeyboardInterrupt
++ctrl+c++を押すことで、このプログラムを終了することができます。
:::notice アナログポートの場合、シルクスクリーンのピン番号はA0, A1のようになっていますが、コマンドでは0や1というパラメータを使用します。これはデジタルポートと同じです。そのため、モジュールを正しいポートに接続するようにしてください。そうしないとピンの競合が発生する可能性があります。 :::
Wio Terminalでの操作 (ArduPy)
ハードウェア
- ステップ1. 以下のものを準備します:
Wio Terminal | Grove - Gas Sensor(MQ3) |
---|---|
今すぐ購入 | 今すぐ購入 |
ステップ2. Grove - Gas Sensor(MQ3)をWio TerminalのA0ポートに接続します。
ステップ3. USB Type-Cケーブルを使用してWio TerminalをPCに接続します。
ソフトウェア
ステップ1. ArduPy Getting Startedに従ってWio Terminal上でArduPy開発環境を構築します。
ステップ2. ArduPyファームウェアがWio Terminalにフラッシュされていることを確認します。詳細についてはこちらを参照してください。
aip build
aip flash
- ステップ3. 以下のコードをコピーして
ArduPy-mq3.py
として保存します。
from machine import Pin, ADC
from machine import LCD
from machine import Sprite
import time
mq3 = ADC(Pin(13))
lcd = LCD()
spr = Sprite(lcd) # バッファを作成
def main():
spr.createSprite(320, 240)
while True:
spr.setTextSize(2)
spr.fillSprite(spr.color.BLACK)
spr.setTextColor(lcd.color.BLUE)
spr.drawString("MQ3 Reading", 90, 10)
spr.drawFastHLine(40, 35, 240, lcd.color.DARKGREY)
spr.setTextColor(lcd.color.WHITE)
spr.drawString("- Current Level: ", 20, 50)
spr.drawNumber(mq3.read(), 220,50)
spr.pushSprite(0,0)
time.sleep_ms(500)
print("MQ3 Gas Sensor Reading is: ", mq3.read())
if __name__ == "__main__":
main()
- ステップ 4.
ArduPy-mq3.py
を分かりやすい場所に保存します。以下のコマンドを実行し、<YourPythonFilePath>
をArduPy-mq3.py
の保存場所に置き換えてください。
aip shell -n -c "runfile <YourPythonFilePath>"
# 例:
# aip shell -n -c "runfile /Users/ansonhe/Desktop/ArduPy-mq3.py"
- ステップ 5. 以下のようにターミナルにガス値が表示され、Wio Terminal の LCD 画面にも表示されます。
ansonhe@Ansons-Macbook-Pro ~:aip shell -n -c "runfile /Users/ansonhe/Desktop/ArduPy-mq3.py"
Positional argument (/dev/cu.usbmodem1413101) takes precedence over --open.
Connected to ardupy
MQ3 Gas Sensor Reading is: 609
MQ3 Gas Sensor Reading is: 611
MQ3 Gas Sensor Reading is: 614
MQ3 Gas Sensor Reading is: 616
MQ3 Gas Sensor Reading is: 618
MQ3 Gas Sensor Reading is: 621
MQ3 Gas Sensor Reading is: 623
MQ3 Gas Sensor Reading is: 625
MQ3 Gas Sensor Reading is: 627
MQ3 Gas Sensor Reading is: 628
MQ3 Gas Sensor Reading is: 629
MQ3 Gas Sensor Reading is: 632
回路図オンラインビューア
リソース
推奨読書 / 参考資料
- ガスセンサーの選び方
- LELとは何か
回路図
データシート
技術サポート & 製品ディスカッション
産業用センサーへのアップグレード可能
SenseCAP S2110 コントローラー と S2100 データロガー を使用することで、Grove を簡単に LoRaWAN® センサーに変えることができます。Seeed はプロトタイピングを支援するだけでなく、SenseCAP シリーズの堅牢な産業用センサーを使用してプロジェクトを拡張する可能性も提供します。
IP66 ハウジング、Bluetooth 設定、グローバル LoRaWAN® ネットワークとの互換性、内蔵 19 Ah バッテリー、そして強力な APP サポートにより、SenseCAP S210x は産業用途に最適な選択肢となります。このシリーズには、土壌水分、空気温度と湿度、光強度、CO2、EC、そして 8-in-1 気象ステーション用センサーが含まれています。次の成功する産業プロジェクトには最新の SenseCAP S210x をお試しください。