หน้าแรก ดูโปรเจกต์ทั้งหมด
Intermediate

โปรเจกต์ Air Analyzer ที่ใช้ MQ Sensors เกือบทุกชนิด

Air monitor ที่สามารถวัดค่าความเข้มข้นของ CO, CO2, H2, CH4, NH3, Alcohol, Bangene, Acetone, Hexane, Toluene, Smoke และ Flammable gas

โปรเจกต์ Air Analyzer ที่ใช้ MQ Sensors เกือบทุกชนิด

วิดีโอสาธิต

Video

▶ กดเพื่อดูวิดีโอสาธิตโปรเจกต์

56,413 การดู
25 ถูกใจ

รายการอุปกรณ์และเครื่องมือ

1x Breadboard, 830 Tie Points
🛒 สั่งซื้อ
1x I2C 16x2 Arduino LCD Display Module
🛒 สั่งซื้อ

แอปพลิเคชันและแพลตฟอร์ม

รายละเอียดและวิธีทำ

เป็นเวลานานแล้วที่ผมอยากจะมอนิเตอร์ส่วนประกอบต่างๆ ในอากาศโดยใช้เพียง MQ sensors ราคาประหยัด ดังนั้นผมจึงสั่งชุด MQ sensors มา 9 ตัวและทำโปรเจกต์นี้ขึ้นมา ซึ่งผมสามารถวัดความเข้มข้นของ gas หลายประเภทในอากาศได้โดยใช้เพียง MQ sensors บางตัวเท่านั้น Sensor ประเภทนี้อาจจะไม่แม่นยำมากนักและต้องมีการ calibrate อย่างมาก แต่พวกมันเป็น gas sensors ราคาถูกที่ดีที่สุดเท่าที่มี คุณสามารถหาซื้อชุด gas sensors 9 ตัวได้ในราคาเพียง $6 ถึง $7 ในโปรเจกต์ของผม ผมใช้ 6 ตัวและวัดความเข้มข้นของ gas ได้ถึง 12 ชนิด

เริ่มกันเลย!

เดี๋ยวก่อน!!! ก่อนที่จะเริ่มทำงานใดๆ คุณควรจ่ายไฟให้ sensor ของคุณและปล่อยให้มัน burn อย่างน้อย 24 ชั่วโมง ขั้นตอนนี้สำคัญมากเนื่องจาก MQ sensors มักจะมาพร้อมกับสิ่งสกปรกปนเปื้อน และการ burn จะช่วยให้พวกมันทำความสะอาดตัวเองได้ คุณต้องจ่ายไฟให้ sensors ด้วยแรงดัน 5V และวางไว้ในที่ที่สะอาด

MQ sensors จะส่งเอาต์พุตเป็น analog voltage ที่เปลี่ยนแปลงตามความเข้มข้นของ gas บางชนิดที่เลือกไว้ ดังนั้นเราจึงสามารถอ่านค่า analog ผ่าน Arduino ADC และหาค่าความเข้มข้นของ gas ในอากาศได้

ผมใช้ 6 MQ sensor (MQ3, MQ4, MQ7, MQ8, MQ9 และ MQ135)

การใช้งานของ sensors

MQ3 สำหรับวัด Alcohol, Benzene, และ Hexane
MQ4 สำหรับวัด Methane และ smoke
MQ135 สำหรับวัด CO2, NH4, Toluene, และ Acetone
MQ7 สำหรับวัด CO
MQ8 สำหรับวัด H2
MQ9 สำหรับวัด flammable gas

การเชื่อมต่อ

ผมเชื่อมต่อพวกมันเข้ากับ Arduino nano เพราะมันมี 8 ADC ซึ่งผมจำเป็นต้องใช้ โดยใช้ 6 ADC สำหรับ sensors และอีก 2 ADC สำหรับการสื่อสารแบบ I2C กับ LCD

เชื่อมต่อ Arduino กับ sensors ดังนี้-

  • MQ3 Ao - Arduino A0
  • MQ4 Ao - Arduino A1
  • MQ135 Ao - Arduino A2
  • MQ7 Ao - Arduino A3
  • MQ8 Ao - Arduino A6
  • MQ9 Ao - Arduino A7

เชื่อมต่อ Arduino และ LCD ดังนี้-

  • Arduino A4 - LCD SDA
  • Arduino A5 - LCD SCL

ทีนี้ก็ถึงความท้าทายครั้งใหญ่!!!

การเชื่อมต่อ hardware และการอ่านค่า analog value นั้นเป็นเรื่องง่าย แต่สิ่งที่ยากที่สุดคือการ calibrate sensors และการคำนวณค่า ppm (parts per million) สำหรับ gas เฉพาะเจาะจง หลังจากค้นหาในอินเทอร์เน็ตมานาน ผมก็ได้พบ library สำหรับ sensors เหล่านี้ และเมื่อเปรียบเทียบการคำนวณกับ datasheet ของ sensors แล้ว ดูเหมือนว่าจะใช้งานได้ดีทีเดียว

ผมพบบทความที่อธิบายการทำงานและการคำนวณสำหรับ MQ sensor ได้ที่นี่- UNDERSTANDING A GAS SENSOR.

ผมใช้ library และเขียน code เพื่อใช้ sensors ทั้ง 6 ตัวกับ Arduino nano และแสดงค่าความเข้มข้นของ gas ต่างๆ ในอากาศ

คุณสามารถหา library ได้ที่นี่ - MQUnifiedsensor library

สำหรับการเขียน code, อันดับแรกผมรวม library LiquidCrystal_I2C และ MQUnifiedsensor เข้ามา จากนั้นจึงกำหนดค่า display parameter และ Input PIN สำหรับ sensors ต่อมาในส่วนของ setup ผมได้ทำการ initialize ตัวแสดงผลและ sensors รวมถึงตั้งค่า R0 สำหรับทุก sensor คุณต้องทำการ calibrate sensors ของคุณเพื่อหาค่า R0 นี้ โดยการยกเลิกคอมเมนต์ (uncomment) ในส่วนหนึ่งของฟังก์ชัน setup และ upload code ไปยัง Arduino ของคุณโดยที่ต่อ sensors ที่ผ่านการ pre-burned แล้วไว้ จากนั้นคุณจะพบค่า R0 ของทุก sensor ใน serial monitor ให้จดบันทึกค่าเหล่านั้นและนำไปแก้ไขในฟังก์ชัน setup ขอแนะนำให้ calibrate sensors ในสภาพแวดล้อมที่สะอาดเพียงครั้งเดียวแล้วตั้งค่า R0 ส่วนที่ต้องยกเลิกคอมเมนต์มีการระบุไว้ใน code แล้ว

และในฟังก์ชัน loop ผมได้ตั้งค่า A และ B สำหรับสมการ exponential สำหรับ gas ต่างๆ โดยค่า A และ B สำหรับ PPM = A*ratio^B ซึ่งค่าเหล่านี้จะแตกต่างกันไปตามชนิดของ gas ในแต่ละ sensors

หลังจากนั้น ผมจะแสดงค่าความเข้มข้นของ gas บน LCD โดยแสดงหน้าละสองค่า และมีการหน่วงเวลา 3 วินาทีในทุกๆ หน้า

คลิปวิดีโอสำหรับโปรเจกต์นี้

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: air-analyzer-using-almost-all-kinds-of-mq-sensors-d527c8
2450 บาท
PromptPay QR Code