- เซนเซอร์แก๊ส MQ-series
- การเตรียมฮาร์ดแวร์ของคุณ:
- แนวทางในการวัด PPM จากเซนเซอร์แก๊ส MQ:
- การคำนวณค่า Ro ที่ Clean Air:
- วัดมูลค่าของ Rs:
- เกี่ยวข้องกับอัตราส่วน Rs / Ro กับ PPM:
- โปรแกรมคำนวณ PPM โดยใช้เซ็นเซอร์ MQ:
- แสดงค่า PPM บนฮาร์ดแวร์ด้วย Arduino และ MQ-137:
นับจากยุคอุตสาหกรรมมนุษย์เรามีการพัฒนาอย่างรวดเร็ว ในทุกๆความก้าวหน้าเรายังก่อให้เกิดมลพิษต่อสิ่งแวดล้อมและทำให้สิ่งแวดล้อมเสื่อมโทรม ขณะนี้ภาวะโลกร้อนเป็นภัยคุกคามที่น่ากลัวและแม้แต่อากาศที่เราหายใจก็เข้าขั้นวิกฤต ดังนั้นการตรวจสอบคุณภาพอากาศจึงเริ่มได้รับความสำคัญเช่นกัน ดังนั้นในบทความนี้เราจะเรียนรู้วิธีใช้เซ็นเซอร์ก๊าซซีรีส์ MQ กับ Arduinoและแสดงเอาต์พุตเป็นPPM (ส่วนต่อล้าน) PPM ยังแสดงเป็นมิลลิกรัมต่อลิตร (mg / L) เซ็นเซอร์เหล่านี้มีจำหน่ายทั่วไปและยังเชื่อถือได้สำหรับการวัดก๊าซประเภทต่างๆที่แสดงด้านล่าง
เซนเซอร์แก๊ส MQ-series
- คาร์บอนไดออกไซด์ (CO2): MG-811
- คาร์บอนมอนอกไซด์ (CO): MQ-9
- สารประกอบอินทรีย์ที่ระเหยได้ทั้งหมด (TVOCs): CCS811
- คาร์บอนไดออกไซด์เทียบเท่า (eCO2): CCS811
- โลหะออกไซด์ (MOX): CCS811
- แอมโมเนีย: MQ-137
- คุณภาพอากาศ: MQ-135
- ก๊าซหุงต้มแอลกอฮอล์ควัน: MQ2
เราได้ใช้ MQ2 สำหรับการตรวจจับควันและ MQ-135 สำหรับโครงการตรวจสอบคุณภาพอากาศแล้ว นี่ฉันจะใช้เซ็นเซอร์ MQ-137จาก sainsmart การวัดแอมโมเนียใน ppm มีเซ็นเซอร์ในมือฉันเดินผ่านทุกบทเรียนที่มีอยู่และพบว่ามีไม่มีเอกสารที่ถูกต้องเกี่ยวกับวิธีการวัดก๊าซในมิลลิกรัมต่อลิตรบทแนะนำส่วนใหญ่จะจัดการเฉพาะค่าอนาล็อกหรือแนะนำค่าคงที่บางส่วนซึ่งไม่น่าเชื่อถือสำหรับการวัดก๊าซทุกประเภท ดังนั้นหลังจากเล่นซอออนไลน์เป็นเวลานานในที่สุดฉันก็พบวิธีใช้เซ็นเซอร์ก๊าซซีรีส์ MQ เหล่านี้เพื่อวัด ppm โดยใช้ Arduino ฉันกำลังอธิบายสิ่งต่างๆจากด้านล่างโดยไม่มีไลบรารีใด ๆ เพื่อให้คุณสามารถใช้บทความนี้สำหรับเซ็นเซอร์ก๊าซที่มีอยู่กับคุณ
การเตรียมฮาร์ดแวร์ของคุณ:
เซ็นเซอร์ก๊าซ MQ สามารถซื้อเป็นโมดูลหรือเป็นเซ็นเซอร์เพียงอย่างเดียวก็ได้ หากจุดประสงค์ของคุณคือการวัดเฉพาะ ppm คุณควรซื้อเซ็นเซอร์เพียงอย่างเดียวเนื่องจากโมดูลนั้นดีสำหรับการใช้พินดิจิทัลเท่านั้น ดังนั้นหากคุณซื้อโมดูลไปแล้วคุณต้องทำการแฮ็คขนาดเล็กซึ่งจะกล่าวถึงต่อไป ตอนนี้สมมติว่าคุณซื้อเซ็นเซอร์แล้ว หมุดและการเชื่อมต่อของเซ็นเซอร์แสดงอยู่ด้านล่าง
อย่างที่คุณเห็นคุณต้องต่อปลายด้านหนึ่งของ 'H' เพื่อจ่ายและปลายอีกด้านของ 'H' เข้ากับกราวด์ จากนั้นรวมทั้ง A และ B ทั้งสองเข้าด้วยกัน เชื่อมต่อชุดหนึ่งเพื่อจ่ายแรงดันไฟฟ้าและอีกชุดหนึ่งเข้ากับพินอนาล็อกของคุณ ตัวต้านทาน R Lมีบทบาทสำคัญมากในการทำให้เซ็นเซอร์ทำงาน ดังนั้นให้จดบันทึกว่าคุณกำลังใช้ค่าใดขอแนะนำให้ใช้ค่า 47k
หากคุณซื้อโมดูลไปแล้วคุณควรติดตามร่องรอย PCB ของคุณเพื่อค้นหาค่า R Lของคุณในบอร์ด Grauonline ได้ทำงานนี้ให้เราแล้วและแผนภาพวงจรของบอร์ดเซ็นเซอร์ก๊าซ MQ แสดงไว้ด้านล่าง
ดังที่คุณเห็นตัวต้านทาน R L (R2) เชื่อมต่อระหว่างพิน Aout และกราวด์ดังนั้นหากคุณมีโมดูลค่า R Lสามารถวัดได้โดยใช้มัลติมิเตอร์ในโหมดความต้านทานผ่านขา Vout และขา Vcc ของ โมดูล ในเซ็นเซอร์ก๊าซ sainsmart MQ-137ของฉันค่า RL คือ 1Kและอยู่ที่นี่ดังแสดงในภาพด้านล่าง
อย่างไรก็ตามการเรียกร้องเว็บไซต์ที่จะให้หม้อตัวแปร R Lซึ่งไม่เป็นความจริงตามที่คุณสามารถเห็นได้ชัดเจนในแผนภาพวงจรหม้อจะใช้ในการตั้งแรงดันไฟฟ้าตัวแปรสำหรับสหกรณ์แอมป์และมีอะไรจะทำอย่างไรกับ R L ดังนั้นเราต้องบัดกรีตัวต้านทาน SMD (1K) ที่แสดงด้านบนด้วยตนเองและเราต้องใช้ตัวต้านทานของเราเองบนกราวด์และขา Vout ซึ่งจะทำหน้าที่เป็น RL ค่าที่ดีที่สุดสำหรับ RL คือ 47K ตามที่แนะนำโดยแผ่นข้อมูลดังนั้นเราจะใช้สิ่งเดียวกัน
แนวทางในการวัด PPM จากเซนเซอร์แก๊ส MQ:
ตอนนี้เรารู้ค่า R L แล้วมาดูวิธีการวัด ppm จากเซ็นเซอร์เหล่านี้กัน เช่นเดียวกับเซ็นเซอร์ทั้งหมดจุดเริ่มต้นคือแผ่นข้อมูล เอกสารข้อมูล MQ-137 มีให้ที่นี่ แต่ตรวจสอบให้แน่ใจว่าคุณพบแผ่นข้อมูลที่ถูกต้องสำหรับเซ็นเซอร์ของคุณ ภายในแผ่นข้อมูลเราต้องการเพียงกราฟเดียวที่จะใช้กับ (Rs / Ro) VS PPM ซึ่งเป็นกราฟที่เราต้องการสำหรับการคำนวณของเรา ดังนั้นอย่าลืมเก็บไว้ในที่ที่มีประโยชน์ หนึ่งสำหรับเซ็นเซอร์ของฉันแสดงอยู่ด้านล่าง
ปรากฎว่าเซ็นเซอร์ MQ137 สามารถวัดNH3, C2H6O และแม้กระทั่ง CO แต่ที่นี่ฉันสนใจเฉพาะค่าของ NH3 อย่างไรก็ตามคุณสามารถใช้วิธีเดียวกันนี้ในการคำนวณ ppm สำหรับเซ็นเซอร์ที่คุณต้องการ กราฟนี้เป็นแหล่งเดียวที่เราจะหาค่าของ ppm และถ้าเราสามารถคำนวณปันส่วนของ Rs / Ro (แกน X) ได้เราสามารถใช้กราฟนี้เพื่อหาค่าของ ppm (แกน Y) ในการหาค่า Rs / Ro เราต้องหาค่า Rs และค่า Ro โดยที่ Rs คือความต้านทานของเซนเซอร์ที่ความเข้มข้นของก๊าซและ Ro คือความต้านทานของเซ็นเซอร์ใน Clean Sir
ใช่… นี่คือแผนมาดูกันว่าเราจะหนีไปได้อย่างไร….
การคำนวณค่า Ro ที่ Clean Air:
โปรดทราบว่าในค่ากราฟของ Rs / Ro เป็นค่าคงที่สำหรับอากาศ (เส้นสีน้ำเงินหนา) ดังนั้นเราจึงสามารถใช้สิ่งนี้เพื่อประโยชน์ของเราและบอกว่าเมื่อเซ็นเซอร์ทำงานในที่ที่มีอากาศบริสุทธิ์ค่าของ Rs / Ro จะเท่ากับ 3.6 อ้างอิงภาพ ด้านล่าง
Rs / Ro = 3.6
จากแผ่นข้อมูลเราจะมีสูตรสำหรับคำนวณค่าของ Rs สูตรดังแสดงด้านล่าง หากคุณสนใจที่จะทราบว่าสูตรนี้ได้มาอย่างไรคุณสามารถอ่านผ่านระบบ jay con ฉันขอให้เครดิตพวกเขาในการช่วยฉันในการแยกแยะสิ่งนี้
ในสูตรนี้ค่าของ Vc คือแรงดันไฟฟ้าของเรา (+ 5V) และค่าของ R Lคือค่าที่เราคำนวณไว้แล้ว (47K สำหรับเซ็นเซอร์ของฉัน) หากเราเขียนโปรแกรม Arduino ขนาดเล็กเราก็สามารถหาค่าของ V RLและคำนวณค่าของ Rs ได้ในที่สุด ฉันให้โปรแกรม Arduinoด้านล่างซึ่งอ่านแรงดันอนาล็อก (V RL) ของเซ็นเซอร์และคำนวณค่าของ Rsโดยใช้สูตรนี้และในที่สุดก็แสดงในจอภาพอนุกรม โปรแกรมได้รับการอธิบายอย่างดีในส่วนความคิดเห็นดังนั้นฉันจึงข้ามคำอธิบายที่นี่เพื่อให้บทความนี้สั้น
/ * * โปรแกรมวัดค่า R0 สำหรับทราบ RL ที่สภาวะอากาศบริสุทธิ์ * โปรแกรมโดย: บีอัศวินราช * เว็บไซต์: www.circuitdigest.com * วันที่: 28-12-2017 * // โปรแกรมนี้ทำงานได้ดีที่สุด ในห้องที่มีอากาศบริสุทธิ์อุณหภูมิ Temp: 20 ℃, ความชื้น: 65%, ความเข้มข้นของ O2 21% และเมื่อค่า Rl เท่ากับ 47K #define RL 47 // ค่าของตัวต้านทาน RL คือ 47K เป็นโมฆะการตั้งค่า () // รันเท่านั้น หนึ่งครั้ง {Serial.begin (9600); // เริ่มต้น Serial COM เพื่อแสดงค่า} void loop () {float analog_value; ลอย VRL; ลอย Rs; ลอย Ro; สำหรับ (int test_cycle = 1; test_cycle <= 500; test_cycle ++) // อ่านเอาต์พุตอนาล็อกของเซ็นเซอร์เป็นเวลา 200 ครั้ง {analog_value = analog_value + analogRead (A0); // เพิ่มค่าสำหรับ 200} analog_value = analog_value / 500.0; // ใช้ค่าเฉลี่ย VRL = analog_value * (5.0 / 1023.0);// แปลงค่าอนาล็อกเป็นแรงดันไฟฟ้า // RS = ((Vc / VRL) -1) * RL คือสูตรที่เราได้รับจากแผ่นข้อมูล Rs = ((5.0 / VRL) -1) * RL; // RS / RO เท่ากับ 3.6 ตามที่เราได้รับจากกราฟของแผ่นข้อมูล Ro = Rs / 3.6; Serial.print ("Ro ที่อากาศบริสุทธิ์ ="); Serial.println (Ro); // แสดงการหน่วงเวลา Ro ที่คำนวณได้ (1,000); // ล่าช้า 1 วินาที}
หมายเหตุ:ค่าของ Ro จะแตกต่างกันปล่อยให้เซ็นเซอร์ทำความร้อนล่วงหน้าอย่างน้อย 10 ชั่วโมงจากนั้นใช้ค่า Ro
ฉันสรุปค่า Ro เป็น30 KΩสำหรับเซ็นเซอร์ของฉัน (เมื่อ R Lคือ47kΩ) ของคุณอาจแตกต่างกันเล็กน้อย
วัดมูลค่าของ Rs:
ตอนนี้เรารู้ค่า Ro แล้วเราสามารถคำนวณค่าของ Rs ได้อย่างง่ายดายโดยใช้สองสูตรข้างต้น โปรดทราบว่าค่า Rs ที่คำนวณก่อนหน้านี้ใช้สำหรับสภาพอากาศบริสุทธิ์และจะไม่เท่ากันเมื่อมีแอมโมเนียอยู่ในอากาศ การคำนวณค่า Rs ไม่ใช่เรื่องใหญ่ซึ่งเราสามารถดูแลได้โดยตรงในโปรแกรมสุดท้าย
เกี่ยวข้องกับอัตราส่วน Rs / Ro กับ PPM:
ตอนนี้เรารู้วิธีวัดค่าของ Rs และ Ro แล้วเราจะสามารถหาอัตราส่วน (Rs / Ro) ได้ จากนั้นเราสามารถใช้แผนภูมิ (แสดงด้านล่าง) เพื่อเชื่อมโยงกับค่าที่สอดคล้องกันของ PPM
แม้ว่าเส้น NH3 (สีฟ้า) ดูเหมือนจะเป็นเส้นตรง แต่ก็ไม่ได้เป็นเส้นตรง ลักษณะที่ปรากฏเป็นเพราะมีการแบ่งมาตราส่วนอย่างไม่สม่ำเสมอสำหรับลักษณะที่ปรากฏ ดังนั้นความสัมพันธ์ระหว่าง Rs / Ro และ PPM จึงเป็นลอการิทึมซึ่งสามารถแทนได้ด้วยสมการด้านล่าง
log (y) = m * log (x) + bโดยที่ y = ratio (Rs / Ro) x = PPM m = ความชันของเส้น b = จุดตัด
ในการหาค่า m และ b เราต้องพิจารณาสองจุด (x1, y1) และ (x2, y2) บนสายแก๊สของเรา ที่นี่เรากำลังทำงานกับแอมโมเนียดังนั้นสองจุดที่ฉันได้พิจารณาคือ (40,1) และ (100,0.8) ดังที่แสดงในภาพด้านบน (ทำเครื่องหมายเป็นสีแดง) โดยมีเครื่องหมายสีแดง
m = / m = log (0.8 / 1) / log (100/40) m = -0.243
ในทำนองเดียวกันสำหรับ (b) มาหาค่าจุดกึ่งกลาง (x, y) จากกราฟซึ่งเป็น (70,0.75) ดังแสดงในภาพด้านบน
b = log (y) - m * log (x) b = log (0.75) - (-0.243) * log (70) b = 0.323
ตอนนี้เราได้คำนวณค่าของ m และ b แล้วเราสามารถหาค่า (Rs / Ro) เป็น PPM ได้โดยใช้สูตรด้านล่าง
PPM = 10 ^ {/ m}
โปรแกรมคำนวณ PPM โดยใช้เซ็นเซอร์ MQ:
โปรแกรมที่สมบูรณ์ในการคำนวณโดยใช้เซ็นเซอร์ PPM MQ จะได้รับด้านล่าง มีการอธิบายบรรทัดสำคัญสองสามข้อด้านล่าง
ก่อนที่จะดำเนินการตามโปรแกรมเราจำเป็นต้องป้อนค่าความต้านทานต่อการรับน้ำหนัก (RL), ความลาดชัน (ม.), การสกัดกั้น (b) และค่าความต้านทานในอากาศบริสุทธิ์ (Ro) ขั้นตอนในการรับค่าเหล่านี้ได้อธิบายไว้แล้วดังนั้นเรามาป้อนข้อมูลในตอนนี้
#define RL 47 // ค่าของตัวต้านทาน RL คือ 47K #define m -0.263 // ป้อนค่า Slope ที่คำนวณได้ #define b 0.42 // ป้อนค่าการสกัดกั้นที่คำนวณ #define Ro 30 // ป้อนค่า Ro ที่พบ
จากนั้นอ่านแรงดันตกคร่อมเซ็นเซอร์ (VRL) และแปลงเป็นแรงดันไฟฟ้า (0V ถึง 5V) เนื่องจากการอ่านแบบอะนาล็อกจะส่งคืนค่าจาก 0 ถึง 1024 เท่านั้น
VRL = analogRead (MQ_sensor) * (5.0 / 1023.0); // วัดแรงดันตกและแปลงเป็น 0-5V
ตอนนี้เมื่อคำนวณค่า VRL แล้วคุณสามารถใช้สูตรที่กล่าวถึงข้างต้นเพื่อคำนวณค่าของ Rsและอัตราส่วน (Rs / Ro)
อัตราส่วน = Rs / Ro; // หาอัตราส่วน Rs / Ro
สุดท้ายเราสามารถคำนวณ PPM ด้วยสูตรลอการิทึมของเราและแสดงบนมอนิเตอร์อนุกรมของเราดังที่แสดงด้านล่าง
ppm คู่ = pow (10, ((log10 (อัตราส่วน) -b) / m)); // ใช้สูตรคำนวณ ppm Serial.print (ppm); // แสดง ppm
แสดงค่า PPM บนฮาร์ดแวร์ด้วย Arduino และ MQ-137:
จากทฤษฎีทั้งหมดให้เราสร้างวงจรง่ายๆด้วยเซ็นเซอร์และ LCD เพื่อแสดงค่าของก๊าซใน PPM ที่นี่เซ็นเซอร์ที่ฉันใช้คือ MQ137 ซึ่งวัดแอมโมเนียแผนภาพวงจรสำหรับการตั้งค่าของฉันแสดงอยู่ด้านล่าง
เชื่อมต่อเซ็นเซอร์และ LCD ของคุณตามที่แสดงในแผนภาพวงจรและอัปโหลดรหัสที่ระบุไว้ในตอนท้ายของโปรแกรม คุณต้องแก้ไขค่า Ro ตามที่อธิบายไว้ข้างต้น ทำการเปลี่ยนแปลงค่าพารามิเตอร์ด้วยหากคุณใช้ตัวต้านทานอื่นเป็น RL นอกเหนือจาก 4.7K
ปล่อยให้การตั้งค่าของคุณเปิดเครื่องอย่างน้อย 2 ชั่วโมงก่อนที่คุณจะอ่านค่าใด ๆ (แนะนำให้ใช้ 48 ชั่วโมงเพื่อให้ได้ค่าที่แม่นยำยิ่งขึ้น) เวลานี้เรียกว่าเวลาทำความร้อนซึ่งเป็นช่วงที่เซ็นเซอร์อุ่นขึ้น หลังจากนี้คุณจะสามารถเห็นค่า PPM และแรงดันไฟฟ้าที่แสดงบนหน้าจอ LCD ของคุณดังที่แสดงด้านล่าง
ตอนนี้เพื่อให้แน่ใจว่าค่าเกี่ยวข้องกับการมีอยู่ของแอมโมเนียจริงหรือไม่ให้วางการตั้งค่านี้ไว้ในภาชนะปิดและส่งก๊าซแอมโมเนียเข้าไปข้างในเพื่อตรวจสอบว่าค่าเพิ่มขึ้นหรือไม่ ฉันไม่มีเครื่องวัด PPM ที่เหมาะสมกับฉันในการสอบเทียบและจะดีมากถ้าใครสักคนที่มีมิเตอร์สามารถทดสอบการตั้งค่านี้และแจ้งให้ฉันทราบ
คุณสามารถดูวิดีโอด้านล่างเพื่อตรวจสอบว่าค่าที่อ่านแตกต่างกันอย่างไรโดยพิจารณาจากการมีอยู่ของแอมโมเนีย หวังว่าคุณจะเข้าใจแนวคิดและสนุกกับการเรียนรู้ หากคุณมีข้อสงสัยโปรดทิ้งไว้ในส่วนความคิดเห็นหรือหากต้องการความช่วยเหลือเพิ่มเติมโปรดใช้ฟอรัมที่นี่