MQ-2 คืออะไร? วิธีใช้เซนเซอร์ตรวจจับควันและแก๊สรั่วกับ Arduino
MQ-2 คือ ก๊าซเซนเซอร์ (Gas Sensor) ที่ได้รับความนิยมอย่างมากในโปรเจกต์ Arduino และงานอดิเรกด้านอิเล็กทรอนิกส์ เนื่องจากเป็นเซนเซอร์ที่มีความไวสูง สามารถตรวจจับได้ทั้งควันไฟและก๊าซไวไฟหลายชนิด เหมาะสำหรับนำไปสร้างเป็นระบบเตือนภัยแก๊สรั่วหรือระบบตรวจจับควันไฟในบ้าน
หลักการทำงานของเซนเซอร์คือ ภายในจะมีขดลวดทำความร้อนและตัวตรวจจับที่ทำจากดีบุกไดออกไซด์ (SnO₂) ซึ่งค่าความต้านทานของมันจะเปลี่ยนแปลงไปเมื่อสัมผัสกับโมเลกุลของก๊าซในอากาศ ทำให้เราสามารถวัดการเปลี่ยนแปลงนั้นออกมาเป็นสัญญาณไฟฟ้าได้
MQ-2 ตรวจจับก๊าซอะไรได้บ้าง?
เซนเซอร์ MQ-2 มีความไวต่อก๊าซไวไฟหลายชนิด โดยเฉพาะ:
- ก๊าซ LPG (ก๊าซหุงต้ม)
- ก๊าซ Butane
- ก๊าซ Propane
- ก๊าซ Methane (CH₄)
- ก๊าซ Hydrogen (H₂)
- ควันไฟ (Smoke)
- แอลกอฮอล์ (Alcohol)
สเปคของ MQ-2
แรงดันไฟเลี้ยง |
5V DC |
กำลังไฟฟ้าที่ใช้ |
ประมาณ 800mW |
ประเภทสัญญาณ |
Analog (AOUT) และ Digital (DOUT) |
เวลาอุ่นเครื่อง (Warm-up) |
ประมาณ 20 วินาที ถึง 2 นาที |
ช่วงการตรวจจับ |
300 - 10,000 ppm (ส่วนในล้านส่วน) |
ขาเชื่อมต่อ |
4 ขา: VCC, GND, AOUT, DOUT |
ข้อควรทราบ: เซนเซอร์ประเภทนี้ต้องใช้เวลาในการ "อุ่นเครื่อง" (Warm-up) เพื่อให้ขดลวดความร้อนภายในมีอุณหภูมิคงที่เสียก่อน ค่าที่อ่านได้ในช่วงแรกจึงอาจยังไม่แม่นยำ ควรปล่อยให้เซนเซอร์ทำงานสักครู่ก่อนนำค่าไปใช้งานจริง
การใช้งาน MQ-2 กับ Arduino
1. การต่อสาย
ขาบนโมดูล MQ-2 |
ต่อกับขาบน Arduino |
VCC |
5V |
GND |
GND |
AOUT (Analog Out) |
A0 (หรือขา Analog อื่นๆ) |
DOUT (Digital Out) |
ขา Digital ใดก็ได้ (เช่น D2) |
2. ตัวอย่างโค้ดใช้งานแบบ Analog (วัดระดับความเข้มข้น)
การอ่านค่าแบบ Analog จะให้ค่า 0-1023 ซึ่งแปรผันตามความเข้มข้นของก๊าซ (ยิ่งค่าสูง แสดงว่ามีความเข้มข้นมาก)
const int mq2Pin = A0; // กำหนดขา A0 สำหรับอ่านค่า Analog
void setup() {
Serial.begin(9600);
}
void loop() {
int gasLevel = analogRead(mq2Pin); // อ่านค่า (0-1023)
Serial.print("Gas Level: ");
Serial.println(gasLevel);
delay(1000); // รอ 1 วินาที ก่อนอ่านค่าครั้งต่อไป
}
3. ตัวอย่างโค้ดใช้งานแบบ Digital (แจ้งเตือน)
การอ่านค่าแบบ Digital จะให้ค่าแค่ LOW (0) หรือ HIGH (1) เท่านั้น โดยโมดูลจะส่งค่า LOW เมื่อระดับก๊าซเกินจุดที่ตั้งไว้ด้วย Potentiometer บนบอร์ด
const int mq2DigitalPin = 2; // กำหนดขา D2 สำหรับอ่านค่า Digital
void setup() {
pinMode(mq2DigitalPin, INPUT);
Serial.begin(9600);
}
void loop() {
int gasDetected = digitalRead(mq2DigitalPin);
// โดยทั่วไป โมดูลจะส่ง LOW เมื่อตรวจพบแก๊สเกินค่าที่ตั้งไว้
if (gasDetected == LOW) {
Serial.println("ตรวจพบแก๊สหรือควัน!");
} else {
Serial.println("สถานะปกติ");
}
delay(1000);
}
ไอเดียการประยุกต์ใช้งาน
-
ระบบเตือนภัยแก๊สรั่วในครัว: เมื่อตรวจพบก๊าซ LPG เกินระดับ ให้ส่งเสียง Buzzer เตือน หรือส่ง LINE Notify
-
เครื่องตรวจจับควันไฟ: ใช้เป็นส่วนหนึ่งของระบบป้องกันอัคคีภัย แจ้งเตือนเมื่อมีควันหนาแน่น
-
เครื่องวัดคุณภาพอากาศ (เบื้องต้น): ใช้ตรวจจับมลพิษในอากาศ (เช่น ควัน, แอลกอฮอล์)
-
เครื่องเป่าแอลกอฮอล์ (DIY): สร้างเครื่องจำลองการวัดระดับแอลกอฮอล์จากลมหายใจ