Grove - ガスセンサー(MQ2)
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
Grove - ガスセンサー(MQ2)モジュールは、ガス漏れ検知(家庭および産業用途)に役立ちます。H2、LPG、CH4、CO、アルコール、煙、またはプロパンを検出するのに適しています。このセンサーは高感度で応答時間が速いため、測定を迅速に行うことができます。センサーの感度はポテンショメーターで調整可能です。
センサー | ガスタイプ | 今すぐ購入 |
MQ2 | 可燃性ガス、煙 | |
MQ3 | アルコール蒸気 | |
MQ5 | LPG、天然ガス、都市ガス | |
MQ9 | 一酸化炭素、石炭ガス、液化ガス |
[Seeed ガスセンサー選択ガイド](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 | - | 800 | mW |
RL | 負荷抵抗 | 調整可能 | |||
RH | ヒーター抵抗 | - | 33 | - | Ω |
Rs | センサー抵抗 | 3 | - | 30 | kΩ |
対応プラットフォーム
Arduino | Raspberry | ArduPy |
---|---|---|
上記の対応プラットフォームは、モジュールのソフトウェアまたは理論的な互換性を示しています。ほとんどの場合、Arduinoプラットフォーム向けのソフトウェアライブラリやコード例のみを提供しています。すべての可能なMCUプラットフォーム向けにソフトウェアライブラリやデモコードを提供することはできません。そのため、ユーザーは独自のソフトウェアライブラリを作成する必要があります。
応用例
- ガス漏れ検知
- おもちゃ
- IoTアプリケーション
- スマート検知
初めての使用方法
ガスセンサーからの出力電圧は、ガス濃度が増加すると増加します。感度はポテンショメータを回すことで調整できます。MQ-2センサーの詳細情報については、Resourcesセクションに記載されているデータシートを参照してください。
センサーの最適な予熱時間は24時間以上です。
Arduinoで遊ぶ
ハードウェア
- ステップ1. 以下のアイテムを準備してください:
Seeeduino V4.2 | Base Shield | Grove-Gas Sensor-MQ2 |
---|---|---|
今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
- ステップ2. Grove-Gas_Sensor-MQ2をGrove-Base ShieldのA0ポートに接続します。
- ステップ3. Grove - Base ShieldをSeeeduinoに差し込みます。
- ステップ4. USBケーブルを使用してSeeeduinoをPCに接続します。
Grove Base Shieldがない場合は、以下のようにGrove-Gas_Sensor-MQ2をSeeeduinoに直接接続することもできます。
Seeeduino | Grove-Gas_Sensor-MQ2 |
---|---|
5V | 赤 |
GND | 黒 |
接続なし | 白 |
A0 | 黄色 |
ソフトウェア
いくつかの例があります。以下のコードを新しいArduinoスケッチにコピーして貼り付け、それぞれアップロードしてください。コードのアップロード方法がわからない場合は、コードのアップロード方法を確認してください。
基本例: ガス検知
この例では、センサーが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);
}
測定: 概算
これらの例は、ガス濃度の概算を知る方法を示しています。MQxセンサーのデータシートによると、これらの方程式は標準条件でテストされており、校正されていません。温度や湿度の変化によって異なる場合があります。
ガスセンサーを清浄な空気環境に置いてください。
void setup() {
Serial.begin(9600);
}
void loop() {
float sensor_volt;
float RS_air; // 清浄な空気中でRSの値を取得
float R0; // H2中で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/9.8; // グラフから清浄な空気中でのRS/R0比率は9.8 (WebPlotDigitizerを使用して取得)
Serial.print("sensor_volt = ");
Serial.print(sensor_volt);
Serial.println("V");
Serial.print("R0 = ");
Serial.println(R0);
delay(1000);
}
次に、Arduino IDEのシリアルモニターを開きます。R0の値を記録し、次のプログラムで使用します。読み取り値が安定した後にR0を記録してください。
以下の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);
}
さて、以下の図からガスの濃度を取得することができます。
グラフによると、テスト可能な最小濃度は100ppm、最大濃度は10000ppmであることがわかります。つまり、ガス濃度は0.01%から1%の間で取得できます。ただし、比率と濃度の関係が非線形であるため、公式を提供することはできません。
Raspberry Piで遊ぶ (Grove Base Hat for Raspberry Piを使用)
ハードウェア
- ステップ 1. このプロジェクトで使用するもの:
Raspberry Pi | Grove Base Hat for RasPi | Grove-Gas_Sensor-MQ2 |
---|---|---|
今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
- ステップ 2. Grove Base HatをRaspberry Piに接続します。
- ステップ 3. Grove-Gas Sensor MQ2をBase HatのA0ポートに接続します。
- ステップ 4. USBケーブルを使用してRaspberry PiをPCに接続します。
ステップ3では、Grove-Gas Sensor MQ2を任意のアナログポートに接続することができますが、対応するポート番号に合わせてコマンドを変更する必要があります。
ソフトウェア
- ステップ 1. ソフトウェア設定に従って開発環境を構築します。
- ステップ 2. grove.pyライブラリをクローンしてソースファイルをダウンロードします。
cd ~
git clone https://github.com/Seeed-Studio/grove.py
- ステップ 3. 以下のコマンドを実行してコードを書きます。
cd grove.py/grove
nano grove_gas_sensor_mq2.py
次に、以下のコードをこのファイルにコピーし、++ctrl+x++を押して終了し保存します。
import math
import sys
import time
from grove.adc import ADC
class GroveGasSensorMQ2:
def __init__(self, channel):
self.channel = channel
self.adc = ADC()
@property
def MQ2(self):
value = self.adc.read(self.channel)
return value
Grove = GroveGasSensorMQ2
def main():
if len(sys.argv) < 2:
print('Usage: {} adc_channel'.format(sys.argv[0]))
sys.exit(1)
sensor = GroveGasSensorMQ2(int(sys.argv[1]))
print('Detecting...')
while True:
print('Gas value: {0}'.format(sensor.MQ2))
time.sleep(.3)
if __name__ == '__main__':
main()
- ステップ 4. 以下のコマンドを実行してコードを実行します。
python grove_gas_sensor_mq2.py 0
すべてが正常に動作すれば、以下の結果が表示されます。
pi@raspberrypi:~/grove.py/grove $ python grove_gas_sensor_mq2.py 0
Detecting...
Gas value: 760
Gas value: 714
Gas value: 675
Gas value: 637
Gas value: 603
Gas value: 568
Gas value: 535
Gas value: 506
Gas value: 481
Gas value: 464
Gas value: 449
Gas value: 429
Gas value: 413
Gas value: 456
Gas value: 470
Gas value: 440
Gas value: 404
Gas value: 373
Gas value: 352
Gas value: 339
Gas value: 330
^CTraceback (most recent call last):
File "grove_gas_sensor_mq2.py", line 69, in <module>
main()
File "grove_gas_sensor_mq2.py", line 66, in main
time.sleep(.3)
KeyboardInterrupt
++ctrl+c++を押すだけでこのプログラムを終了できます。
:::notice アナログポートの場合、シルクスクリーンのピン番号はA1, A0のようになっていますが、コマンドでは0や1というパラメータを使用します。デジタルポートと同じです。そのため、モジュールを正しいポートに接続してください。そうしないとピンの競合が発生する可能性があります。 :::
Raspberry Piで遊ぶ (GrovePi_Plusを使用)
ハードウェア
- ステップ 1. 以下のものを準備します:
Raspberry Pi | GrovePi_Plus | Grove-Gas_Sensor-MQ2 |
---|---|---|
今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
- ステップ 2. GrovePi_PlusをRaspberry Piに接続します。
- ステップ 3. Grove-Gas_Sensor-MQ2をGrovePi_PlusのA0ポートに接続します。
- ステップ 4. USBケーブルを使用してRaspberry PiをPCに接続します。
ソフトウェア
- ステップ 1. ソフトウェア設定に従って開発環境を構築します。
- ステップ 2. Githubリポジトリをクローンします。
cd ~
git clone https://github.com/DexterInd/GrovePi.git
- ステップ 3. 以下のコマンドを実行してセンサーを使用します。
cd ~/GrovePi/Software/Python
python grove_gas_sensor.py
以下は日本語に翻訳された内容です:
grove_gas_sensor.py のコードはこちらです:
#!/usr/bin/env python
#
# Grove Gas Sensor を使用するための GrovePi の例
#
# GrovePi は Raspberry Pi と Grove センサーを接続します。 GrovePi についての詳細はこちらをご覧ください: http://www.dexterindustries.com/GrovePi
#
# この例について質問がありますか? フォーラムで質問してください: http://forum.dexterindustries.com/c/grovepi
#
'''
## ライセンス
MIT ライセンス (MIT)
Raspberry Pi 用 GrovePi: Grove センサーを Raspberry Pi に接続するためのオープンプラットフォーム。
Copyright (C) 2017 Dexter Industries
このソフトウェアおよび関連するドキュメントファイル(以下「ソフトウェア」)のコピーを取得したすべての人に対し、以下の条件に従って、ソフトウェアを無制限に使用、コピー、変更、公開、配布、サブライセンス、または販売する権利を無償で許可します。
上記の著作権表示およびこの許可表示は、ソフトウェアのすべてのコピーまたは重要な部分に含めるものとします。
このソフトウェアは「現状のまま」提供され、明示的または黙示的な保証はありません。これには、商品性、特定目的への適合性、および権利侵害の保証が含まれますが、これに限定されません。いかなる場合も、著者または著作権者は、契約、不法行為、またはその他の行為に起因する損害賠償請求、損害、またはその他の責任について責任を負いません。
'''
# 注意:
# ガスセンサーは5種類あります
# MQ2 - 可燃性ガス、煙
# MQ3 - アルコール蒸気
# MQ5 - LPG、天然ガス、都市ガス
# MQ9 - 一酸化炭素、石炭ガス、液化ガス
# O2 - 酸素
# 感度はオンボードのポテンショメータで調整可能です
#
# https://www.seeedstudio.com/wiki/Grove_-_Gas_Sensor
# https://www.seeedstudio.com/wiki/Grove_-_Gas_Sensor(MQ5)
# https://www.seeedstudio.com/wiki/Grove_-_Gas_Sensor(O%E2%82%82)
import time
import grovepi
# Grove Gas Sensor をアナログポート A0 に接続
# SIG,NC,VCC,GND
gas_sensor = 0
grovepi.pinMode(gas_sensor,"INPUT")
while True:
try:
# センサー値を取得
sensor_value = grovepi.analogRead(gas_sensor)
# ガス密度を計算 - 値が大きいほどガスが濃い
density = (float)(sensor_value / 1024.0)
print("sensor_value =", sensor_value, " density =", density)
time.sleep(.5)
except IOError:
print ("エラー")
Wio Terminal (ArduPy) を使ってみる
ハードウェア
- ステップ 1. 以下のものを準備してください:
Raspberry Pi | GrovePi_Plus | Grove-Gas_Sensor-MQ2 |
---|---|---|
今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
ステップ 2. GrovePi_Plus を Raspberry Pi に接続します。
ステップ 3. Grove-Gas_Sensor-MQ2 を GrovePi_Plus の A0 ポートに接続します。
ステップ 4. USB ケーブルを使って Raspberry Pi を PC に接続します。
ソフトウェア
- ステップ 1. ソフトウェアの設定 に従って開発環境を構築します。
- ステップ 2. GitHub リポジトリをクローンします。
cd ~
git clone https://github.com/DexterInd/GrovePi.git
- ステップ 3. 以下のコマンドを実行してセンサーを使用します。
cd ~/GrovePi/Software/Python
python grove_gas_sensor.py
grove_gas_sensor.py のコードはこちらです:
#!/usr/bin/env python
#
# Grove Gas Sensor を使用するための GrovePi の例
#
# GrovePi は Raspberry Pi と Grove センサーを接続します。 GrovePi についての詳細はこちらをご覧ください: http://www.dexterindustries.com/GrovePi
#
# この例について質問がありますか? フォーラムで質問してください: http://forum.dexterindustries.com/c/grovepi
#
'''
## ライセンス
MIT ライセンス (MIT)
Raspberry Pi 用 GrovePi: Grove センサーを Raspberry Pi に接続するためのオープンプラットフォーム。
Copyright (C) 2017 Dexter Industries
このソフトウェアおよび関連するドキュメントファイル(以下「ソフトウェア」)のコピーを取得したすべての人に対し、以下の条件に従って、ソフトウェアを無制限に使用、コピー、変更、公開、配布、サブライセンス、または販売する権利を無償で許可します。
上記の著作権表示およびこの許可表示は、ソフトウェアのすべてのコピーまたは重要な部分に含めるものとします。
このソフトウェアは「現状のまま」提供され、明示的または黙示的な保証はありません。これには、商品性、特定目的への適合性、および権利侵害の保証が含まれますが、これに限定されません。いかなる場合も、著者または著作権者は、契約、不法行為、またはその他の行為に起因する損害賠償請求、損害、またはその他の責任について責任を負いません。
'''
# 注意:
# ガスセンサーは5種類あります
# MQ2 - 可燃性ガス、煙
# MQ3 - アルコール蒸気
# MQ5 - LPG、天然ガス、都市ガス
# MQ9 - 一酸化炭素、石炭ガス、液化ガス
# O2 - 酸素
# 感度はオンボードのポテンショメータで調整可能です
#
# https://www.seeedstudio.com/wiki/Grove_-_Gas_Sensor
# https://www.seeedstudio.com/wiki/Grove_-_Gas_Sensor(MQ5)
# https://www.seeedstudio.com/wiki/Grove_-_Gas_Sensor(O%E2%82%82)
import time
import grovepi
# Grove Gas Sensor をアナログポート A0 に接続
# SIG,NC,VCC,GND
gas_sensor = 0
grovepi.pinMode(gas_sensor,"INPUT")
while True:
try:
# センサー値を取得
sensor_value = grovepi.analogRead(gas_sensor)
# ガス密度を計算 - 値が大きいほどガスが濃い
density = (float)(sensor_value / 1024.0)
print("sensor_value =", sensor_value, " density =", density)
time.sleep(.5)
except IOError:
print ("エラー")
Wio Terminal を使った遊び方 (ArduPy)
ハードウェア
- ステップ 1. 以下のものを準備してください:
Wio Terminal | Grove - Gas Sensor(MQ2) |
---|---|
今すぐ購入 | 今すぐ購入 |
ステップ 2. Grove - Gas Sensor(MQ2) を Wio Terminal の A0 Grove ポートに接続します。
ステップ 3. USB Type-C ケーブルを使用して Wio Terminal を PC に接続します。
ソフトウェア
ステップ 1. ArduPy 入門ガイド に従って、Wio Terminal 上で ArduPy 開発環境を構築してください。
ステップ 2. ArduPy ファームウェアが Wio Terminal にフラッシュされていることを確認してください。詳細については こちら を参照してください。
aip build
aip flash
- ステップ 3. 以下のコードをコピーして
ArduPy-mq2.py
として保存してください:
from machine import Pin, ADC
from machine import LCD
from machine import Sprite
import time
mq2 = 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.ORANGE)
spr.drawString("MQ2 Reading", 90, 10)
spr.drawFastHLine(40, 35, 240, lcd.color.DARKGREY)
spr.setTextColor(lcd.color.WHITE)
spr.drawString("- Current Level: ", 20, 50)
spr.drawNumber(mq2.read(), 220,50)
spr.pushSprite(0,0)
time.sleep_ms(500)
print("MQ2 Gas Sensor Reading is: ", mq2.read())
if __name__ == "__main__":
main()
- ステップ 4.
ArduPy-mq2.py
をわかりやすい場所に保存してください。以下のコマンドを実行し、<YourPythonFilePath>
をArduPy-mq2.py
の保存場所に置き換えてください。
aip shell -n -c "runfile <YourPythonFilePath>"
# 例:
# aip shell -n -c "runfile /Users/ansonhe/Desktop/ArduPy-mq2.py"
- ステップ 5. ガス値がターミナルに以下のように表示され、Wio Terminal の LCD 画面にも表示されます。
ansonhe@Ansons-Macbook-Pro ~:aip shell -n -c "runfile /Users/ansonhe/Desktop/ArduPy-mq2.py"
Positional argument (/dev/cu.usbmodem1414301) takes precedence over --open.
Connected to ardupy
MQ2 Gas Sensor Reading is: 60
MQ2 Gas Sensor Reading is: 61
MQ2 Gas Sensor Reading is: 62
MQ2 Gas Sensor Reading is: 62
MQ2 Gas Sensor Reading is: 64
MQ2 Gas Sensor Reading is: 63
MQ2 Gas Sensor Reading is: 66
MQ2 Gas Sensor Reading is: 64
MQ2 Gas Sensor Reading is: 65
MQ2 Gas Sensor Reading is: 65
MQ2 Gas Sensor Reading is: 65
MQ2 Gas Sensor Reading is: 64
回路図オンラインビューア
リソース
- [参考文献] LELとは
- [回路図] Grove Gas Sensor - EAGLE (回路図と基板) ファイル
- [回路図] Grove Gas Sensor - PDF回路図
- [データシート] MQ-2 データシート
プロジェクト
ArduinoとMQ2ガスセンサー: Grove Gas Sensor (MQ2) モジュールは、ガス漏れ検知(家庭および産業用途)に役立ちます。H2、LPG、CH4、COの検知に適しています。
スケーラブルなインテリジェント空気質モニタリングと対応: Intel Edison Compute Module、Amazon AWS、Kibanaによる可視化、ドローンを使用した空気質モニタリング。
Octopod: スマートIoTホームオートメーションプロジェクト: Octopodは、AIとスマートRFIDロックを使用して家庭を監視し、セキュリティを確保するユニークな形状の完全なホームオートメーションシステムです。
技術サポートと製品ディスカッション
産業用センサーへのアップグレード可能
SenseCAP S2110コントローラーとS2100データロガーを使用することで、Groveを簡単にLoRaWAN®センサーに変えることができます。Seeedはプロトタイピングを支援するだけでなく、SenseCAPシリーズの堅牢な産業用センサーを使用してプロジェクトを拡張する可能性も提供します。
IP66ハウジング、Bluetooth設定、グローバルLoRaWAN®ネットワークとの互換性、内蔵19Ahバッテリー、そして強力なAPPサポートにより、SenseCAP S210xは産業用途に最適な選択肢となります。このシリーズには、土壌水分、空気温度と湿度、光強度、CO2、EC、そして8-in-1気象ステーション用センサーが含まれています。次の成功する産業プロジェクトには最新のSenseCAP S210xを試してみてください。