ماژول سنسور گاز و دود MQ Series

آشکارساز گازهای قابل اشتعال، دود و آلاینده‌ها

سنسور گاز و دود MQ Series: سیستم هشدار اولیه برای تشخیص گازهای خطرناک و دود

ماژول‌های سنسور گاز MQ Series یک خانواده از حسگرهای شیمیایی نیمه‌هادی هستند که با تغییر مقاومت در تماس با گازهای هدف عمل می‌کنند. این ماژول‌ها برای سیستم‌های هشدار نشت گاز، آشکارساز دود، مانیتورینگ کیفیت هوا و ایمنی صنعتی ضروری هستند.


اصول کار و تکنولوژی

  • سنسور نیمه‌هادی اکسید فلز (MOS): یک فیلم نازک اکسید قلع (SnO₂) روی یک صفحه سرامیکی.

  • مکانیسم: گاز هدف با سطح سنسور واکنش داده و باعث تغییر مقاومت می‌شود.

  • المنت گرم‌کن: سنسور نیاز به گرم شدن تا دمای کاری (۲۰۰-۳۰۰°C) دارد (≈ ۵ دقیقه زمان پیش‌گرم).

  • مدولاسیون: ماژول‌های آماده شامل مقایسه‌گر (Comparator) با آستانه قابل تنظیم.


خانواده MQ Series و گازهای قابل تشخیص

مدل سنسور گازهای اصلی قابل تشخیص حساسیت کاربرد رایج
MQ-2 گازهای قابل اشتعال، دود، LPG, پروپان ۱۰-۱۰۰۰۰ppm آشکارساز دود/گاز خانگی
MQ-3 الکل، اتانول، بخار الکل ۱۰-۳۰۰ppm ردیاب الکل (الکل‌سنج)
MQ-4 متان (CH₄)، گاز طبیعی (CNG) ۲۰۰-۱۰۰۰۰ppm آشکارساز نشت گاز طبیعی
MQ-5 LPG، گاز طبیعی، گاز شهری ۲۰۰-۱۰۰۰۰ppm آشکارساز گاز آشپزخانه
MQ-6 LPG، بوتان، پروپان ۲۰۰-۱۰۰۰۰ppm آشکارساز گاز مایع (LPG)
MQ-7 مونوکسید کربن (CO) ۱۰-۵۰۰ppm آشکارساز CO (قاتل خاموش)
MQ-8 هیدروژن (H₂) ۱۰-۱۰۰۰ppm آشکارساز هیدروژن (آزمایشگاه)
MQ-9 CO، گازهای قابل اشتعال ۱۰-۱۰۰۰ppm آشکارساز ترکیبی CO/گاز
MQ-135 آلاینده‌های هوا (NH₃, NOx, CO₂, بنزن) ۱۰-۳۰۰ppm کیفیت هوای محیط

مشخصات فنی عمومی MQ-2 (پرکاربردترین)

پارامتر مشخصات فنی
ولتاژ کاری ۵ ولت DC ±۰.۱V (برای گرم‌کن و مدار)
ولتاژ گرم‌کن (H) ۵V ±۰.۱V (جریان: ~۱۵۰mA)
ولتاژ مدار (A/B) تا ۲۴V DC (معمولاً ۵V)
جریان مصرف کل ≈ ۱۵۰-۲۰۰mA (پیش‌گرم)، ≈ ۴۰mA (حالت کاری)
دمای کاری سنسور -۲۰°C تا +۵۰°C (دمای محیط)
دمای المنت گرم‌کن ≈ ۲۸۰°C (داخلی)
زمان پیش‌گرم حداقل ۲۴ ساعت (برای کالیبراسیون دقیق)، ۲۴-۴۸ ساعت (اولیه)
زمان پاسخ < ۱۰ ثانیه (برای ۹۰% پاسخ)
زمان بازیابی < ۳۰ ثانیه (بازگشت به حالت اولیه)
خروجی آنالوگ ۰-۵V (متناسب با غلظت گاز)
خروجی دیجیتال TTL (با آستانه قابل تنظیم)

پین‌های ماژول سنسور گاز (مدل ۴ پین رایج)

پین ماژول نام عملکرد
VCC تغذیه ۵V (هم برای گرم‌کن هم مدار)
GND زمین اتصال زمین
DO خروجی دیجیتال HIGH/LOW (با پتانسیومتر تنظیم)
AO خروجی آنالوگ ۰-۵V (به پین آنالوگ آردوینو)

اتصال و کد پایه (MQ-2 مثال)

// اتصال MQ-2 به آردوینو
// VCC -> 5V
// GND -> GND
// AO -> A0
// DO -> D2

const int aPin = A0;  // آنالوگ
const int dPin = 2;   // دیجیتال

int analogValue = 0;
int digitalValue = 0;
float voltage = 0;
float ppm = 0;

void setup() {
  pinMode(dPin, INPUT);
  Serial.begin(9600);
  Serial.println("سنسور گاز MQ-2 در حال گرم شدن... (۱ دقیقه)");
  
  // سنسور نیاز به حداقل ۱ دقیقه پیش‌گرم دارد
  delay(60000);
  Serial.println("سیستم آماده است.");
}

void loop() {
  // خواندن مقدار آنالوگ
  analogValue = analogRead(aPin);
  voltage = analogValue * (5.0 / 1023.0);
  
  // خواندن مقدار دیجیتال
  digitalValue = digitalRead(dPin);
  
  // نمایش مقادیر
  Serial.print("آنالوگ: ");
  Serial.print(analogValue);
  Serial.print(" | ولتاژ: ");
  Serial.print(voltage, 2);
  Serial.print("V | دیجیتال: ");
  Serial.print(digitalValue == LOW ? "ALARM!" : "Normal");
  
  // تخمین PPM (نیاز به کالیبراسیون دقیق دارد)
  ppm = estimatePPM(analogValue, 0); // 0 = گاز LPG (به دیتاشیت مراجعه کنید)
  
  Serial.print(" | PPM تخمینی: ");
  Serial.println(ppm, 0);
  
  delay(1000);
}

// تابع تخمین PPM (ساده - برای دقت نیاز به کالیبراسیون است)
float estimatePPM(int sensorValue, int gasType) {
  // فرمول کلی: Rs/R0 از منحنی‌های دیتاشیت استخراج می‌شود
  float sensor_volt = sensorValue * (5.0 / 1023.0);
  float RS_air = (5.0 - sensor_volt) / sensor_volt; // در هوای پاک
  float R0 = RS_air / 9.9; // نسبت Rs/R0 برای هوای پاک (مثال)
  
  float RS_gas = (5.0 - sensor_volt) / sensor_volt;
  float ratio = RS_gas / R0;
  
  // محاسبه PPM از منحنی (ضرایب برای هر گاز متفاوت است)
  float ppm = 0;
  switch(gasType) {
    case 0: // LPG
      ppm = pow(10, (log10(ratio) - 0.45) / -0.3); // ضرایب نمونه
      break;
    case 1: // Smoke
      ppm = pow(10, (log10(ratio) - 0.6) / -0.4);
      break;
  }
  return ppm;
}

کد پیشرفته: سیستم هشدار با کالیبراسیون

#include <EEPROM.h>

const int aPin = A0;
const int dPin = 2;
const int buzzer = 8;
const int ledPin = 13;

float R0 = 10.0; // مقدار R0 پس از کالیبراسیون ذخیره می‌شود
bool calibrated = false;

void setup() {
  pinMode(dPin, INPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(ledPin, OUTPUT);
  
  Serial.begin(9600);
  
  // خواندن R0 کالیبره شده از EEPROM
  EEPROM.get(0, R0);
  if (R0 > 0 && R0 < 100) {
    calibrated = true;
    Serial.print("R0 کالیبره شده: ");
    Serial.println(R0);
  } else {
    Serial.println("سنسور نیاز به کالیبراسیون دارد.");
    calibrateSensor();
  }
  
  Serial.println("سیستم هشدار گاز فعال شد.");
}

void loop() {
  if (!calibrated) {
    Serial.println("لطفا ابتدا سنسور را کالیبره کنید!");
    return;
  }
  
  int sensorValue = analogRead(aPin);
  float sensor_volt = sensorValue * (5.0 / 1023.0);
  float RS_gas = (5.0 - sensor_volt) / sensor_volt;
  float ratio = RS_gas / R0;
  
  // تخمین LPG ppm
  float ppm_lpg = pow(10, (log10(ratio) - 0.45) / -0.3);
  
  Serial.print("غلظت LGP: ");
  Serial.print(ppm_lpg, 1);
  Serial.println(" ppm");
  
  // هشدار در سطوح مختلف
  if (ppm_lpg > 1000) {
    alarmLevel(3); // خطر شدید
  } else if (ppm_lpg > 500) {
    alarmLevel(2); // خطر متوسط
  } else if (ppm_lpg > 200) {
    alarmLevel(1); // هشدار
  } else {
    digitalWrite(buzzer, LOW);
    digitalWrite(ledPin, LOW);
  }
  
  delay(1000);
}

void calibrateSensor() {
  Serial.println("=== کالیبراسیون سنسور ===");
  Serial.println("سنسور را در هوای تمیز و عاری از گاز قرار دهید.");
  Serial.println("کالیبراسیون در ۶۰ ثانیه شروع می‌شود...");
  delay(60000);
  
  float sum = 0;
  for (int i = 0; i < 100; i++) {
    int sensorValue = analogRead(aPin);
    float sensor_volt = sensorValue * (5.0 / 1023.0);
    float RS_air = (5.0 - sensor_volt) / sensor_volt;
    sum += RS_air;
    delay(100);
  }
  
  R0 = sum / 100 / 9.9; // 9.9 نسبت Rs/R0 در هوای پاک برای MQ-2
  EEPROM.put(0, R0);
  calibrated = true;
  
  Serial.print("کالیبراسیون تکمیل شد. R0 = ");
  Serial.println(R0);
}

void alarmLevel(int level) {
  switch(level) {
    case 1: // هشدار
      tone(buzzer, 1000, 200);
      digitalWrite(ledPin, HIGH);
      delay(200);
      digitalWrite(ledPin, LOW);
      delay(800);
      break;
    case 2: // خطر متوسط
      tone(buzzer, 1500, 500);
      digitalWrite(ledPin, HIGH);
      delay(500);
      digitalWrite(ledPin, LOW);
      delay(500);
      break;
    case 3: // خطر شدید
      tone(buzzer, 2000, 1000);
      digitalWrite(ledPin, HIGH);
      Serial.println("!!!خطر نشت گاز شدید!!!");
      break;
  }
}

کاربردهای اصلی

  1. سیستم هشدار نشت گاز خانگی: تشخیص LPG، گاز طبیعی.

  2. آشکارساز دود: در سیستم‌های اعلام حریق.

  3. الکل‌سنج: تشخیص مصرف الکل (MQ-3).

  4. مانیتورینگ کیفیت هوا: در ادارات، مدارس، بیمارستان‌ها.

  5. صنعت خودرو: تشخیص نشت گاز در خودروهای گازسوز.

  6. آزمایشگاه‌ها: تشخیص گازهای خاص.

  7. سیستم‌های تهویه: کنترل خودکار تهویه بر اساس کیفیت هوا.


نکات حیاتی برای عملکرد صحیح

⚠️ زمان پیش‌گرم: سنسور نیاز به حداقل ۲۴-۴۸ ساعت کار مداوم برای کالیبراسیون اولیه دارد.
🔧 کالیبراسیون: حتماً در هوای تمیز کالیبره شود. کالیبراسیون نادرست باعث هشدار کاذب می‌شود.
🌡️ دمای محیط: عملکرد سنسور به دما و رطوبت حساس است. برای دقت بالا جبران‌سازی لازم است.
⏱️ عمر سنسور: سنسورهای MQ عمر محدود دارند (۱-۳ سال بسته به شرایط کاری).
🚭 انحصار: هر سنسور MQ برای گازهای خاصی بهینه شده است. ممکن است به گازهای دیگر نیز واکنش نشان دهد.


پروژه عملی: سیستم هشدار گاز خانگی با ارسال SMS

قطعات:

  • سنسور MQ-5 (برای LPG) یا MQ-7 (برای CO)

  • آردوینو نانو

  • ماژول GSM SIM800L

  • بازر بلند (۹۵dB)

  • ال‌ای‌دی قرمز چشمک‌زن

  • نمایشگر OLED (برای نمایش غلظت)

نحوه کار: هنگام تشخیص گاز، بازر و ال‌ای‌دی فعال شده و پیامک به شماره‌های از پیش تعیین شده ارسال می‌شود.


مقایسه با سایر تکنولوژی‌های تشخیص گاز

تکنولوژی سنسورهای MQ سنسورهای الکتروشیمیایی سنسورهای مادون‌قرمز (NDIR) سنسورهای پلاسمایی
قیمت ⭐⭐⭐⭐⭐ (بسیار ارزان) ⭐⭐ (گران) ⭐ (بسیار گران) ⭐ (بسیار گران)
دقت ⭐⭐ (پایین-متوسط) ⭐⭐⭐⭐ (خوب) ⭐⭐⭐⭐⭐ (عالی) ⭐⭐⭐⭐⭐ (عالی)
انحصار ⭐⭐ (واکنش متقابل) ⭐⭐⭐⭐ (خوب) ⭐⭐⭐⭐⭐ (عالی) ⭐⭐⭐⭐ (خوب)
عمر ⭐⭐ (۱-۳ سال) ⭐⭐⭐ (۲-۵ سال) ⭐⭐⭐⭐⭐ (۱۰+ سال) ⭐⭐⭐⭐ (۵+ سال)
مصرف انرژی ⭐⭐ (بالا – نیاز به گرم‌کن) ⭐⭐⭐ (متوسط) ⭐⭐⭐⭐ (کم) ⭐⭐⭐ (متوسط)

سوالات متداول (FAQ)

✅ سنسور به کدام گازها حساس است؟
هر مدل MQ به طیف خاصی حساس است اما واکنش متقابل با گازهای دیگر دارد. MQ-2 به تقریباً همه گازهای قابل اشتعال واکنش می‌دهد.

✅ چرا سنسور همیشه آلارم می‌دهد؟
۱. نیاز به کالیبراسیون دارد. ۲. در محیطی با گردوغبار/دود قرار دارد. ۳. پتانسیومتر تنظیم بسیار حساس است. ۴. سنسور خراب شده است.

✅ تفاوت MQ-2 با MQ-9 چیست؟
MQ-2 برای گازهای قابل اشتعال عمومی. MQ-9 برای مونوکسید کربن (CO) و گازهای قابل اشتعال بهینه شده است.

✅ آیا برای سیستم امنیتی خانه قابل اعتماد است؟
به عنوان تنها وسیله امنیتی خیر. این سنسورها هشدار اولیه هستند. برای مصارف حیاتی از سنسورهای صنعتی تأییدشده استفاده کنید.

✅ چگونه پتانسیومتر را تنظیم کنم؟
در هوای تمیز، پتانسیومتر را آنقدر بچرخانید که ال‌ای‌دی روی ماژول خاموش شود و فقط با حضور گاز روشن شود.

✅ عمر سنسور چطور افزایش می‌یابد؟
۱. کار مداوم (خاموش/روشن مکرر مضر است). ۲. دور از رطوبت و گردوغبار. ۳. عدم قرارگیری در معرض غلظت‌های بسیار بالا.

✅ آیا نیاز به کالیبراسیون دوره‌ای دارم؟
بله. هر ۶ ماه در هوای تمیز کالیبره کنید. اگر محیط کاری تغییر کرد، مجدداً کالیبره کنید.


چرا سنسور گاز MQ را از ما بخرید؟

✅ سنسور اورجینال: استفاده از سنسور اصلی Hanwei Electronics.
✅ کالیبراسیون اولیه: تست پاسخ‌دهی با گازهای استاندارد.
✅ مقاومت با کیفیت: مقاومت‌های با تلرانس ۱٪ برای دقت بهتر.
✅ پشتیبانی فنی: ارائه دیتاشیت فارسی، کدهای کالیبراسیون و جداول PPM.


پکیج پیشنهادی برای ایمنی خانگی

  1. سنسور MQ-5 (برای گاز آشپزخانه)

  2. سنسور MQ-7 (برای مونوکسید کربن)

  3. سنسور MQ-135 (برای کیفیت هوای عمومی)

  4. آردوینو UNO با کابل USB

  5. ماژول GSM SIM800L برای هشدار

  6. بازر بلند و ال‌ای‌دی چشمک‌زن

  7. جعبه ضد انفجار (برای نصب ایمن)


نحوه انتخاب سنسور مناسب

  • گاز آشپزخانه (LPG): MQ-5 یا MQ-6

  • گاز طبیعی (متدان): MQ-4

  • مونوکسید کربن (CO): MQ-7 یا MQ-9

  • دود و گازهای عمومی: MQ-2

  • الکل: MQ-3

  • کیفیت هوای عمومی: MQ-135