วิชา : 04-513-201 การโปรแกรมคอมพิวเตอร์ชั้นสูง 1/2567
คณะผู้จัดทำ สาขาวิศวกรรมคอมพิวเตอร์ 2/2 #16
นางสาวไปรยา เจริญ 050
นายภูผา พันธุรัตน์ 053
นายศุภฤกษ์ เจริญผล 055
นายทรงศักดิ์ ศิริพันธุ์ 063
- ความเป็นมาและความสำคัญของปัญหา
ในปัจจุบัน ของใช้ในชีวิตประจำวันหลายชนิดมีส่วนผสมของก๊าซไวไฟ ซึ่งจำเป็นต้องใช้อย่างระมัดระวัง เนื่องจากก๊าซเหล่านี้มีความสามารถในการติดไฟสูง ตัวอย่างเช่น LPG, i-butane, propane, methane, alcohol, hydrogen และ smoke ซึ่งถูกใช้เป็นส่วนผสมในของใช้ทั่วไป เช่น น้ำหอม แอลกอฮอล์ ของเหลวที่อยู่ในไฟแช็ค ก๊าซหุงต้ม และสเปรย์กำจัดแมลง ก๊าซไวไฟเหล่านี้ถือเป็นสารที่อันตรายเพราะไม่มีสีและกลิ่น ทำให้ยากต่อการตรวจสอบเมื่อเกิดการรั่วไหล และหากมีประกายไฟอาจทำให้เกิดเพลิงไหม้ นำมาซึ่งความเสียหายทั้งต่อทรัพย์สินและชีวิต
เพื่อลดความเสี่ยงดังกล่าว คณะผู้วิจัยจึงมีแนวคิดในการพัฒนาอุปกรณ์ตรวจจับการรั่วไหลของก๊าซไวไฟ โดยอุปกรณ์นี้จะทำหน้าที่ส่งสัญญาณเตือนและแจ้งเตือนผู้ใช้ผ่านแอปพลิเคชัน LINE ในมือถือ โดยใช้เทคโนโลยี Internet of Things (IoT) พร้อมกับไมโครคอนโทรลเลอร์เป็นฐานการทำงาน ซึ่งอุปกรณ์นี้จะช่วยเพิ่มความสะดวกสบายและความปลอดภัยในชีวิตประจำวันภายในบ้านได้อย่างมีประสิทธิภาพ
2. วัตถุประสงค์
- เพื่อพัฒนาระบบความปลอดภัยและสามารถแจ้งเตือนผู้ใช้ผ่านไลน์ได้ด้วยบอร์ด Esp32
- เพื่อเพิ่มความสะดวกสบายและความปลอดภัยในการใช้งานภายในบ้าน
3. ประโยชน์ที่คาดว่าจะได้รับ
- ได้พัฒนาระบบความปลอดภัยและสามารถแจ้งเตือนผู้ใช้ผ่านไลน์ได้ด้วยบอร์ด Esp32
- เพิ่มความปลอดภัยในชีวิตประจำวัน
4.ขอบเขต
- การตรวจจับก๊าซจะครอบคลุมพื้นที่ภายในบ้านหรือสถานที่ที่ติดตั้ง โดยเน้นในบริเวณที่มีความเสี่ยงสูงต่อการรั่วไหล เช่น ห้องครัว
- อุปกรณ์จะถูกออกแบบให้ใช้งานในสภาพแวดล้อมภายในอาคารเท่านั้น ไม่เหมาะสำหรับการใช้งานในพื้นที่ภายนอกอาคาร
- การแจ้งเตือนการรั่วไหลของก๊าซจะถูกส่งผ่านแอปพลิเคชัน LINE ในมือถือของผู้ใช้ที่ได้ลงทะเบียนไว้เท่านั้น
5. ความรู้ที่เกี่ยวข้อง
1) Modemcu Esp32
คือ บอร์ดไมโครคอนโทรลเลอร์ที่ใช้ชิป ESP32 ของบริษัท Espressif Systems ซึ่งเป็นการพัฒนาต่อยอดจาก NodeMCU ที่ใช้ชิป ESP8266 โดย ESP32 เป็นชิปที่มีความสามารถมากขึ้นในหลายๆ ด้าน เช่น
- หน่วยประมวลผล: Dual-core หรือ Single-core Tensilica Xtensa LX6 ที่ทำงานด้วยความเร็วสูงสุดถึง 240 MHz
- หน่วยความจำ: RAM ขนาด 520 KB และ ROM ขนาด 448 KB พร้อมหน่วยความจำ Flash บนบอร์ดขนาดตั้งแต่ 2 MB ขึ้นไป
- การเชื่อมต่อไร้สาย: รองรับทั้ง Wi-Fi (802.11 b/g/n) และ Bluetooth 4.2 (Classic และ BLE)
- GPIO: มีขา Input/Output มากกว่า 30 ขา ซึ่งสามารถนำมาใช้งานได้หลายรูปแบบ เช่น PWM, ADC, DAC, I2C, SPI, UART
- ฟีเจอร์เพิ่มเติม: รองรับการเข้ารหัส AES, RSA, SHA, และการบีบอัดข้อมูลแบบ ZIP
2) Sensor MQ2
เป็นโมคูลตรวจวัดก็าซที่ไวต่อก๊าซไวไฟในกลุ่ม LPG. ibutane, propine, methanc ,aleohol,Hydrogen รวมไปถึงควันฟที่เกิดจากการเผาใหม้ด้วย จึงเป็นเซ็นเซอร์ที่นิยมนำมาใช้ ในการดรวจจับการรั่วของก๊าซต่างๆ เพื่อป้องกันอันตรายที่จะเกิดขึ้น จากการรั่วไหล ตัวเซ็นเซอร์ใช้ แรงดัน 5 ให้เอาท์พุต
3) Infrared IR Flame Sensor
ใช้ตรวจจับเปลวไฟโดยใช้ เซนเซอร์อินฟาเรด ให้สัญญาณ เอาต์พุตออกมาทั้งแบบดิจิตอลเมื่อตรวจจับได้ให้สัญญาณเป็น 1 เมื่อตรวจจับไม่พบให้สัญญาณเป็น 0 และแบบสัญญาณอนาล็อก ให้ค่า 0-5V สามารถปรับความไวได้ที่โวลุมบนโมดูล
4) Active Buzzer Module
สามารถสร้างเสียงเตือนโดยต่อกับขา VCC ของ Active Buzzer กับไฟเลี้ยง 3.3-5VDC และขา GND ในการสั่งให้ Active Buzzer มีเสียง
5) Application LINE
ใช้ในการแจ้งเตือนข้อความจากห้องครัวไปสู่ผู้ใช้งาน ระบบสามารถแจ้งเตือนได้ว่าตอนนี้มีไฟกำลังเกิดขึ้นและตอนนี้กำลังมีแก๊สรั่วไหลอยู่
6. การดำเนินการ
- วงจรของระบบ
- ตัวอย่างโค้ด
import machine
import urequests
class Sensor:
def __init__(self, pin):
self.pin = machine.Pin(pin, machine.Pin.IN, machine.Pin.PULL_UP)
def read(self):
return self.pin.value() == 0 # Active LOW
class Buzzer:
def __init__(self, pin):
self.pin = machine.Pin(pin, machine.Pin.OUT)
self.off()
def on(self):
self.pin.value(1)
def off(self):
self.pin.value(0)
class LineNotify:
def __init__(self, token):
self.token = token
def send(self, message):
url = "https://notify-api.line.me/api/notify"
headers = {"Authorization": "Bearer " + self.token}
data = {"message": message}
urequests.post(url, headers=headers, data=data).close()
class FireSmokeAlarmSystem:
def __init__(self, fire_pin, smoke_pin, buzzer_pin, line_token):
self.fire_sensor = Sensor(fire_pin)
self.smoke_sensor = Sensor(smoke_pin)
self.buzzer = Buzzer(buzzer_pin)
self.line_notify = LineNotify(line_token)
def check_sensors(self):
if self.fire_sensor.read():
self.buzzer.on()
self.line_notify.send("มีไฟเกิดขึ้น!")
elif self.smoke_sensor.read():
self.buzzer.on()
self.line_notify.send("ตรวจพบควัน!")
else:
self.buzzer.off()
เมื่อมีตรวจพบควันจะส่งการแจ้งเตือนไปยังไลน์
7. การทดลอง
การทดลอง | รายละเอียด | ผลการทดลอง |
ครั้งที่ 1 | มีควันหรือไฟเกิดขึ้น | มีการแจ้งเตือนไปยังไลน์ |
ครั้งที่ 2 | ไม่มีควันหรือไฟเกิดขึ้น | ไม่มีการแจ้งเตือนไปยังไลน์ |
อุปกรณ์ที่ทดสอบ | ทำงาน | ไม่ทำงาน |
ควันจากการเผา | ✓ | |
การตรวจสอบไฟ | ✓ | |
การตรวจสอบแก๊ส | ✓ | |
การตรวจจับแฟลชมือถือ | ✓ | |
กลิ่นปาก | ✓ |
8. สรุปผล
จากการทดลองโปรเจคตรวจสอบควันและไฟในห้องครัว ซึ่งใช้เซ็นเซอร์ตรวจจับควัน (MQ-2) และเซ็นเซอร์ตรวจจับเปลวไฟ (IR Flame Sensor) ร่วมกับบอร์ด ESP32 เพื่อควบคุมการทำงานของระบบ พบว่าระบบสามารถตรวจจับควันและเปลวไฟได้อย่างมีประสิทธิภาพ เมื่อมีควันหรือเปลวไฟเกิดขึ้น ระบบจะทำงานโดยมีการทำการแจ้งเตือน 2 รูปแบบคือ 1. การแจ้งด้วย Buzzer 2. การแจ้งเตือนด้วย Line Notify ไปยังผู้ดูแลระบบหรือผู้ใช้งานเพื่อใหห้ทราบถึงการรั่วไหลของแก๊สหรือมีควันและไฟเกิดขึ้นภายในห้องครัว
9. ข้อมูลอ้างอิง
[1] ESP-WROOM-32 https://www.pse-world.com
[2] Infrared IR Flame Detector Sensor Module https://www.cybertice.com
[3] MQ-2 Smoke Gas Sensor https://www.cybertice.com
[4] Standard Passive Speaker Buzzer Module https://www.pse-world.com
[5] ArtronShop LineNotify library https://www.artronshop.co.th
[6] ข้อมูลเพิ่มเติม https://chatgpt.com
10. คลิปอธิบาย