ไฟไหม้เป็นเหตุการณ์ที่อาจเกิดขึ้นได้ทุกเมื่อ การมีระบบแจ้งเตือนที่สามารถตรวจจับได้ทั้งควันและเปลวไฟจึงเป็นสิ่งสำคัญ ในโปรเจคนี้ เราจะใช้ ESP32 เป็นตัวควบคุมหลัก ร่วมกับ เซ็นเซอร์ตรวจจับควัน MQ-2 และ เซ็นเซอร์ตรวจจับเปลวไฟ Infrared IR Flame Detector ทำงานร่วมกัน เมื่อตรวจจับได้ทั้งควันและเปลวไฟพร้อมกัน เพื่อแจ้งเตือนผ่าน หน้าจอ LCD 1602 และ Passive Speaker Buzzer
ประโยชน์และการนำโปรเจคไปพัฒนาต่อ
ระบบสัญญาณเตือนไฟไหม้ (Fire Alarm System) คือ ระบบสำหรับแจ้งเตือนเมื่อมีเปลวไฟ หรือเหตุเพลิงไหม้ภายในอาคาร โดยใช้เซนเซอร์หรืออุปกรณ์ตรวจจับชนิดต่างๆ ตามความเหมาะสม เช่น อุปกรณ์ตรวจจับควันไฟ (Smoke Detector) อุปกรณ์ตรวจจับความร้อน (Heat Detector) อุปกรณ์ตรวจจับเปลวไฟ (Fire Extinguisher) เป็นต้น
ซึ่งระบบสัญญาณเตือนไฟไหม้นี้จะทำให้ผู้ที่อยู่ในอาคารสามารถรับรู้และแก้ไขได้อย่างทันท่วงที ป้องกันไม่ให้ไฟไหม้นั้นลุกลามจนไม่สามารถควบคุมได้ ซึ่งในการใชงานจริง อาจจะต้องใช้ เซนเซอร์ ทั้ง 3 แบบ ร่วมกันในการตรวจสอบ แล้วไปสั่ง หัวสปริงเกอร์ฉีดน้ำให้ทำงาน
แต่ในตัวอย่างโปรเจคจะเลือกใช้ อุปกรณ์ เพียง 2 อย่าง คือ อินพุต 1 ตรวจจับเปลวไฟ (Fire Extinguisher) ทำงานแบบดิจิตัล ในขั้นตอนที่มีเปลวไฟ (Flame Stage) คือเริ่มมีเปลวไฟทำให้มองเห็นว่าเป็นไฟแต่ยังไม่สามารถวัดค่าความร้อนได้ และ อินพุต 2 อุปกรณ์ตรวจจับควันไฟ (Smoke Detector) ทำงานแบบอนาล็อก ซึ่งต้องทำงานร่วมกันในการตรวจสอบ โดยถ้ามีเหตุการณ์ เกิดขึ้นทั้ง 2 เหตุการณ์ จึงจะทำการแจ้งเตือนที่ เอาต์พุต 1 คือ แสดงข้อความที่ หน้าจอ LCD 1602 และ เอาต์พุต 2 เป็นสัญญาณเสียง ที่ Passive Speaker Buzzer
อุปกรณ์ที่ใช้
- DevKitC V4 ESP32 Development Board
- ESP32 Expansion Board 38Pins
- Micro USB Cable Wire 1m
- Infrared IR Flame Detector Sensor
- MQ-2 MQ2 Gas Sensor
- Prototype PCB Board 4×6 cm
- Jumper (F2F) 20cm Female to Female
- โมดูล I2C LCD พร้อมหน้าจอ LCD 1602
- Standard Passive Speaker Buzzer Module
- Adapter DC 9V 1A Power Supply
- แผ่นอะคริลิค ใส
เทคโนโลยีและอุปกรณ์ที่ใช้
- Arduino IDE: เป็นโปรแกรมที่ใช้ในการเขียนและอัปโหลดโค้ดลงในบอร์ด Arduino หรือ ESP32 ซึ่งมีความสะดวกและใช้งานง่ายสำหรับผู้เริ่มต้น
- บอร์ด ESP32: เป็นบอร์ดไมโครคอนโทรเลอร์ที่มีความสามารถมากมาย เช่น การเชื่อมต่อ WiFi, Bluetooth, และการประมวลผลที่เร็วและมีประสิทธิภาพ
ขั้นตอนการทำโปรเจค
1.การเชื่อมต่ออุปกรณ์

ESP32 Expansion Board 38Pins คือบอร์ดเสริมที่ออกแบบมาเพื่อใช้งานร่วมกับ ESP32 รุ่นที่มี 38 ขา (38 Pins) โดยช่วยให้สามารถเชื่อมต่อกับอุปกรณ์ภายนอกได้สะดวกขึ้น เช่น การต่อเซนเซอร์ และโมดูลอื่น ๆ
การเชื่อมต่อวงจร
อุปกรณ์ | ขาเชื่อมต่อกับ ESP32 |
---|---|
MQ-2 | GPIO4 |
Infrared IR Flame Detector | GPIO35 |
LCD 1602 (I2C) | SDA -> GPIO21, SCL -> GPIO22 |
Passive Speaker Buzzer | GPIO32 |
เชื่อมต่อ ESP32 กับ MQ-2 ดังนี้:
4 <-> A0
V <-> VCC
G <-> GND

เชื่อมต่อ ESP32 กับ Infrared IR Flame Detector Sensor ดังนี้:
35 <-> D0
V <-> VCC
G <-> GND

โมดูล Infrared IR Flame Detector Sensor (เซ็นเซอร์ตรวจจับเปลวไฟ มีระยะการทำงานโดยประมาณขึ้นอยู่กับเงื่อนไขต่าง ๆ เช่น ขนาดของเปลวไฟ มุมตรวจจับ และสภาพแวดล้อม โดยทั่วไปมีรายละเอียดดังนี้:

ระยะการตรวจจับของเซ็นเซอร์ ระยะสูงสุด: ประมาณ 80 – 100 cm (1 เมตร) เมื่อเปลวไฟมีขนาดใหญ่และไม่มีสิ่งกีดขวาง ระยะที่มีประสิทธิภาพ: ประมาณ 20 – 80 cm สำหรับเปลวไฟทั่วไป เช่น ไฟแช็กหรือเทียน ช่วงความไวของแสง: ตรวจจับแสงในช่วงอินฟราเรดใกล้ (760 – 1100 nm)

ปัจจัยที่มีผลต่อระยะการตรวจจับ ความเข้มของแสงเปลวไฟ (แสงสว่างจากแหล่งอื่นอาจรบกวน) มุมของเปลวไฟกับเซ็นเซอร์ (เซ็นเซอร์บางตัวอาจไม่สามารถตรวจจับได้หากเปลวไฟอยู่นอกแนวตรวจจับ) สภาพแวดล้อม เช่น ฝุ่น ควัน หรือแสงอินฟราเรดจากแหล่งอื่น
เชื่อมต่อ ESP32 กับ LCD 1602 ดังนี้:
V <-> VCC
G <-> GND
21 <-> SDA
22 <-> SCL

เชื่อมต่อ ESP32 กับ Passive Speaker Buzzer ดังนี้:
32 <-> S
V <-> +
G <-> –



2.ติดตั้ง Arduino IDE
ดาวน์โหลด Arduino IDE จากที่นี่
https://www.arduino.cc/en/software

กำหนดค่าให้ รองรับบอร์ด ESP32
ไปที่ File > Preferences

คัดลอกและวางบรรทัดต่อไปนี้ลงในฟิลด์ Boards Manager URLs
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

คลิกไอคอนตัวจัดการบอร์ดที่มุมด้านซ้าย ค้นหา ESP32 และกดปุ่มติดตั้งสำหรับ esp32 โดย Espressif Systems

ติดตั้ง ไลบรารี่ LCD_IC2
ไปที่ เมนู Sketch → Include Library → Manage Libraries…
ค้นหา LCD แล้ว INSTALL


3. Uplpad Code โปรเจค ESP32 ระบบสัญญาณเตือนไฟไหม้ (Fire Alarm System)
เสียบสาย USB ระหว่างคอมพิวเตอร์ กับ บอร์ด ESP32

เขียนโค้ดดังนี้
#include <Wire.h> // ไลบรารีสำหรับสื่อสารผ่านโปรโตคอล I2C
#include <LCD_I2C.h> // ไลบรารีสำหรับควบคุมจอ LCD ผ่าน I2C
#define MQ2_PIN 4 // กำหนดขา 4 เป็นขารับค่าจากเซนเซอร์ก๊าซ MQ2
#define FLAME_SENSOR_PIN 35 // กำหนดขา 35 เป็นขารับค่าจากเซนเซอร์ตรวจจับเปลวไฟ
#define BUZZER_PIN 32 // กำหนดขา 32 เป็นขาส่งสัญญาณไปยังลำโพง (Buzzer)
#define I2C_ADDR 0x27 // กำหนดที่อยู่ I2C ของจอ LCD
LCD_I2C lcd(I2C_ADDR, 16, 2); // สร้างอ็อบเจ็กต์ lcd สำหรับจอ LCD ขนาด 16x2
void setup() {
Serial.begin(115200); // เริ่มต้นการสื่อสารผ่าน Serial ที่บอดเรต 115200
pinMode(MQ2_PIN, INPUT); // ตั้งค่าขา MQ2_PIN เป็นขาอินพุต
pinMode(FLAME_SENSOR_PIN, INPUT); // ตั้งค่าขา FLAME_SENSOR_PIN เป็นขาอินพุต
pinMode(BUZZER_PIN, OUTPUT); // ตั้งค่าขา BUZZER_PIN เป็นขาเอาต์พุต
lcd.begin(); // เริ่มต้นการทำงานของจอ LCD
lcd.backlight(); // เปิดไฟพื้นหลังของจอ LCD
}
void loop() {
int smoke = analogRead(MQ2_PIN); // อ่านค่าควันจากเซนเซอร์ MQ2
Serial.println(String(smoke)); // แสดงค่าควันทาง Serial Monitor
int flame = digitalRead(FLAME_SENSOR_PIN); // อ่านค่าจากเซนเซอร์ตรวจจับเปลวไฟ
lcd.setCursor(0, 0); // ตั้งตำแหน่งเคอร์เซอร์ที่แถวที่ 1 คอลัมน์ที่ 1
lcd.print("SM=" + String(smoke) + " , F=" + String(flame) + " ");
// แสดงค่าควัน (SM) และค่าจากเซนเซอร์ไฟ (F) บนจอ LCD
if (smoke > 150 && flame == 0) { // ถ้าค่าควันมากกว่า 150 และมีไฟเกิดขึ้น
lcd.setCursor(0, 1); // ตั้งตำแหน่งเคอร์เซอร์ที่แถวที่ 2 คอลัมน์ที่ 1
lcd.print("FIRE DETECTED!"); // แสดงข้อความ "FIRE DETECTED!" บนจอ LCD
digitalWrite(BUZZER_PIN, HIGH); // เปิดเสียง Buzzer
} else { // ถ้าไม่มีไฟไหม้
lcd.setCursor(0, 1); // ตั้งตำแหน่งเคอร์เซอร์ที่แถวที่ 2 คอลัมน์ที่ 1
lcd.print("No Fire "); // แสดงข้อความ "No Fire" บนจอ LCD
digitalWrite(BUZZER_PIN, LOW); // ปิดเสียง Buzzer
}
delay(1000); // หน่วงเวลาการทำงาน 1 วินาที
}
อธิบายเพิ่มเติม
- ค่าควันจะถูกแสดงผลทาง Serial Monitor เพื่อตรวจสอบสถานะ
- โปรแกรมนี้ใช้เซนเซอร์ MQ2 ตรวจจับควัน และเซนเซอร์ Flame Sensor ตรวจจับเปลวไฟ
- ถ้าพบว่าควันมีค่ามากกว่า 150 และเซนเซอร์ไฟส่งค่าเป็น
0
(ตรวจพบเปลวไฟ) จะแสดงข้อความ “FIRE DETECTED!” บนจอ LCD และเปิดเสียงเตือนผ่าน Buzzer - ถ้าไม่มีไฟไหม้ จะแสดงข้อความ “No Fire” และปิดเสียง Buzzer
เลือกบอร์ด ESP32 ตามรุ่นที่ใช้ เป็น ESP32 Dev Module

เลือก Port โดยไปที่ Tools -> Port -> COM5
(โดย COM5 แต่ละเครื่องจะไม่เหมือนกัน ให้เลือกตามที่ปรากฎ)

คลิกที่ Upload

แสดงการ Upload สำเร็จ

วิดีโอผลลัพธ์การทำงาน โปรเจค ESP32 ระบบสัญญาณเตือนไฟไหม้ (Fire Alarm System)
สรุป
โปรเจคนี้ช่วยให้สามารถตรวจจับไฟไหม้ได้โดยอัตโนมัติ และแจ้งเตือนผ่านหน้าจอ LCD และเสียง Buzzer ซึ่งสามารถนำไปพัฒนาเป็นระบบใหญ่ขึ้นได้ เช่น การแจ้งเตือนผ่านแอปพลิเคชันหรือ IoT