กลับไปหน้ารวมไฟล์
smoke-detector-using-mq-2-gas-sensor-1506ec.md

การสูบบุหรี่เป็นอันตรายต่อสุขภาพอย่างร้ายแรง แม้ในพื้นที่ที่จัดไว้ให้เฉพาะ แต่ควันบุหรี่มือสอง (Passive Smoke) ก็ยังคงส่งผลเสียต่อผู้คนรอบข้างที่ไม่ได้สูบด้วยเช่นกัน ด้วยเหตุนี้ ผมจึงได้พัฒนา เครื่องตรวจจับควันสำหรับพื้นที่ปลอดบุหรี่ (Smoke Detector for No-Smoking Zones) ขึ้นมา โดยอุปกรณ์นี้สามารถนำไปติดตั้งเป็นคู่หรือเป็นจุดต่างๆ ในโรงแรม, โรงพยาบาล หรือห้างสรรพสินค้า เพื่อเฝ้าระวังและรักษาสุขอนามัยในพื้นที่สาธารณะได้อย่างมีประสิทธิภาพ

หลักการทำงานของระบบ (System Logic)

การทำงานของวงจรนี้ถูกออกแบบมาให้มีความตรงไปตรงมาแต่ทรงพลัง เมื่อเซนเซอร์ MQ-2 ตรวจพบความเข้มข้นของก๊าซหรือควันในอากาศ และแปลงเป็นค่าสัญญาณดิจิทัล/อะนาล็อกส่งไปยัง Arduino หากค่าที่อ่านได้สูงเกินกว่าเกณฑ์ที่กำหนด (Threshold) ในที่นี้คือ 150 ไมโครคอนโทรลเลอร์จะสั่งการทันที 2 อย่างคือ:

  1. ส่งสัญญาณเสียง: ผ่าน Buzzer เพื่อเตือนให้ผู้ที่สูบบุหรี่และคนรอบข้างทราบว่ามีการละเมิดกฎ
  2. แสดงสัญลักษณ์เตือน: บนหน้าจอ 8x8 Matrix Display โดยจะปรากฏเป็นรูปกากบาท (X) เพื่อเป็นการแจ้งเตือนทางสายตาที่ชัดเจน

เจาะลึกอุปกรณ์ที่ใช้ในโปรเจค (Components Deep Dive)

ก่อนจะเริ่มประกอบวงจร เรามาทำความเข้าใจคุณสมบัติทางวิศวกรรมของอุปกรณ์แต่ละชิ้นกันก่อนครับ:

1. MQ-2 Gas Sensor (เซนเซอร์ตรวจจับก๊าซและควัน)

MQ-2 เป็นเซนเซอร์ประเภทสารกึ่งตัวนำ (Semiconductor) ที่มีความไวต่อก๊าซไวไฟและควันสูง ภายในประกอบด้วยวัสดุตรวจจับคือ Tin Dioxide (SnO2) ซึ่งมีความต้านทานเปลี่ยนไปตามความเข้มข้นของก๊าซในอากาศ

  • การทำงาน: เมื่อมีควันมากระทบ สารเคลือบจะทำปฏิกิริยาทำให้ความต้านทานลดลง และปล่อยแรงดันไฟฟ้าออกมาทางขา AO (Analog Output)
  • ขาการใช้งาน: มี 4 พิน ได้แก่ VCC (5V), GND, AO (ส่งค่าความเข้มข้นเป็นตัวเลข 0-1023) และ DO (ส่งค่า Digital 0 หรือ 1 เมื่อถึงจุดที่ตั้งไว้ด้วย Potentiometer บนตัวมัน)
Pinout Diagram ของ MQ-2 gas sensor

2. Matrix Dot Display (MAX7219)

หน้าจอแสดงผลแบบจุดขนาด 8x8 รวมทั้งหมด 64 LEDs หากเราต่อตรงๆ จะต้องใช้สายไฟจำนวนมหาศาล แต่ด้วยชิป MAX7219 ซึ่งเป็น Serial Input Driver ทำให้เราควบคุมไฟทั้ง 64 ดวงได้โดยใช้สายสัญญาณเพียง 3 เส้น (DIN, CS, CLK) ผ่านกระบวนการที่เรียกว่า Multiplexing

Pinout Diagram ของ MAX7219

ความพิเศษของโมดูลนี้คือความสามารถในการปรับความสว่างผ่านซอฟต์แวร์ และการเชื่อมต่อแบบพ่วงกัน (Daisy Chain) ได้หลายจอในอนาคต

รูปแบบการจัดวาง LED บน Matrix Display

3. Buzzer (ลำโพงสัญญาณเตือน)

อุปกรณ์ส่งสัญญาณเสียงขนาดเล็ก ในโปรเจคนี้เราใช้ Buzzer เพื่อสร้างเสียงแจ้งเตือนทันทีที่ระบบตรวจพบความผิดปกติ มีขั้วบวก (+) และลบ (-) ชัดเจน โดยจะรับสัญญาณไฟจากขา Digital ของ Arduino

Pinout ของ Buzzer

4. Arduino UNO R3

สมองกลหลักของโปรเจค ใช้ชิปไมโครคอนโทรลเลอร์ ATmega328P ทำหน้าที่ประมวลผลลอจิกทั้งหมด โดยจะรับค่า Analog จาก MQ-2 มาเปรียบเทียบกับค่าใน Code และส่งคำสั่งไปควบคุมหน้าจอและ Buzzer


การประกอบวงจร (Circuit Assembly)

การเชื่อมต่ออุปกรณ์ต่างๆ เข้าด้วยกันสามารถทำได้ตามผังวงจรด้านล่างนี้ โดยเน้นการต่อขา Data ของ Matrix Display เข้ากับขา Digital ของ Arduino และขา AO ของเซนเซอร์เข้ากับขา Analog (A0)

ขั้นตอนการเชื่อมต่อสายไฟสำหรับ Smoke Detector

Circuit Diagram สำหรับการอ้างอิง:

แผนผังวงจร (Circuit Diagram)

การพัฒนาซอฟต์แวร์ (Coding & Logic)

โครงสร้างโค้ดของ Arduino จะแบ่งเป็นสองส่วนหลักคือ void setup() (กำหนดค่าเริ่มต้น) และ void loop() (ทำงานวนซ้ำ)

วิเคราะห์ลอจิกภายใน Code:

  1. อ่านค่า: ระบบจะใช้ฟังก์ชัน analogRead(A0) เพื่อดึงค่าความหนาแน่นของควันจาก MQ-2
  2. เงื่อนไข (Condition):
    • ถ้าค่า > 150: สั่งให้ Buzzer ส่งสัญญาณระดับ HIGH และเขียนข้อมูล Bit เพื่อแสดงรูปกากบาทบน MAX7219
    • ถ้าค่า <= 150: สั่งให้ Buzzer เป็น LOW และเคลียร์หน้าจอ หรือแสดงสถานะปกติ
  3. Library ที่จำเป็น: เพื่อให้การควบคุม Matrix ง่ายขึ้น เราจำเป็นต้องติดตั้งไลบรารี MaxMatrix หรือ LedControl

วิธีการติดตั้ง Library: ไปที่เมนู Tools ใน Arduino IDE เลือก Manage Libraries... แล้วค้นหาชื่อไลบรารีที่ต้องการ


ผลลัพธ์และการทดสอบ (Results)

หลังจากอัปโหลดโค้ดเรียบร้อยแล้ว ให้เปิด Serial Monitor เพื่อดูค่าที่ส่งมาจากเซนเซอร์ในสภาวะปกติ:

  • สภาวะปกติ: ค่าที่อ่านได้ควรจะต่ำกว่า 150 (ขึ้นอยู่กับสภาพแวดล้อม สามารถปรับจูนค่านี้ได้ในโค้ด)
  • เมื่อมีควัน: เมื่อลองนำแหล่งกำเนิดควันเข้าใกล้เซนเซอร์ ค่าจะพุ่งสูงเกิน 150 ทันที ลำโพง Buzzer จะแผดเสียงเตือน และหน้าจอ Matrix จะปรากฏเครื่องหมายกากบาทสีแดงสว่างขึ้นมา เป็นอันเสร็จสมบูรณ์สำหรับการสร้างระบบเตือนภัยอัจฉริยะนี้!

ข้อมูล Frontmatter ดั้งเดิม

title: "Smoke detector using MQ-2 Gas sensor"
description: "In this tutorial, we will see how to make a smoke detector that will help prevent smoking in public areas."
author: "electronicsfan123"
category: ""
tags:
  - "wearables"
  - "internet of things"
  - "monitoring"
views: 5143
likes: 0
price: 1499
difficulty: "Easy"
components:
  - "1x Breadboard (generic)"
  - "1x LED Dot Matrix Display, Red"
  - "1x Buzzer"
  - "1x Arduino UNO"
  - "1x Jumper wires (generic)"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles: []
documentationLinks: []
passwordHash: "0670007825ab38ef82159984b8c122ea3911598f70302f551cf384ac003af33d"
encryptedPayload: "U2FsdGVkX1+0zIku/45ubHyp1pLyBsgXyzz6kW4GhoCjL+uqPO16y1WD0csZRaX+F61xlE5hlGQ9wH8aW4wWhkoE7TkyKwqj7Sw4fe+ogZA="
seoDescription: "Learn to build a Smoke detector using MQ-2 Gas sensor to prevent smoking in public areas. Easy Arduino project tutorial."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/smoke-detector-using-mq-2-gas-sensor-1506ec_cover.jpg"
lang: "en"