Arduino: Project Outdoor Exhaust Gas Detector for Townhouse
Arduino: Project Outdoor Exhaust Gas Detector for Townhouse
ปัญหาของบ้านทาวน์เฮาส์
- บ้านโบราณไม่ได้ออกแบบท่อน้ำไว้ จึงต้องวางปั๊มน้ำไว้หน้าบ้าน
- เสียงปิดประตูดัง
- เสียงรีโมทรถกระบะมิตซูบิชิ
- เสียงมอไซร์ที่ชอบมาถึงแล้วก็บีบแตร
- ควันพิษจากรถที่จอดติดเครื่อง โดยเฉพาะพ่อแม่ที่มีลูกสุดที่รัก
ในบทความนี้จะกล่าวถึงเรื่องควันพิษจากรถยนต์ บางบ้านที่โชคร้ายได้อยู่ติดกับบ้านสอนพิเศษ จะมีพวกผู้ปกครองมาจอดติดเครื่องนานๆ เกือบ 100% ถ้าเราไปเตือนก็จะโดนเวี่ยงใส่ คนพวกนี้จะมีนิสัยกักขระอยู่แล้ว เพราะคนดีๆคงไม่ติดเครื่องนานๆเป็นแน่แท้ ส่วนใหญ่จะอ้างว่ามีเด็กเล็กอยู่ในรถ บางคนก็อ้างว่าไม่ใช่หน้าบ้านตัวเองสักหน่อย อีกกรณีคือคนสูงอายุเขาจะมีรถเก่าๆที่ไม่ค่อยได้ขับ มักจะชอบติดเครื่องชาร์ทแบตทุกวัน
และเนื่องจากปัจจุบันนี้ทางเมืองจีนได้มีความเจริญทางด้านอิเล็กทรอนิกส์ มีโมดูลสำเร็จรูปมากมายให้เลือกใช้ อีกทั้งราคาก็ถูกมาก ค่าส่งฟรี ผู้เขียนจึงได้ลองประดิษฐ์เครื่องตรวจจับอากาศมาใช้เตือนควันพิษ
- บ้านโบราณไม่ได้ออกแบบท่อน้ำไว้ จึงต้องวางปั๊มน้ำไว้หน้าบ้าน
- เสียงปิดประตูดัง
- เสียงรีโมทรถกระบะมิตซูบิชิ
- เสียงมอไซร์ที่ชอบมาถึงแล้วก็บีบแตร
- ควันพิษจากรถที่จอดติดเครื่อง โดยเฉพาะพ่อแม่ที่มีลูกสุดที่รัก
ในบทความนี้จะกล่าวถึงเรื่องควันพิษจากรถยนต์ บางบ้านที่โชคร้ายได้อยู่ติดกับบ้านสอนพิเศษ จะมีพวกผู้ปกครองมาจอดติดเครื่องนานๆ เกือบ 100% ถ้าเราไปเตือนก็จะโดนเวี่ยงใส่ คนพวกนี้จะมีนิสัยกักขระอยู่แล้ว เพราะคนดีๆคงไม่ติดเครื่องนานๆเป็นแน่แท้ ส่วนใหญ่จะอ้างว่ามีเด็กเล็กอยู่ในรถ บางคนก็อ้างว่าไม่ใช่หน้าบ้านตัวเองสักหน่อย อีกกรณีคือคนสูงอายุเขาจะมีรถเก่าๆที่ไม่ค่อยได้ขับ มักจะชอบติดเครื่องชาร์ทแบตทุกวัน
และเนื่องจากปัจจุบันนี้ทางเมืองจีนได้มีความเจริญทางด้านอิเล็กทรอนิกส์ มีโมดูลสำเร็จรูปมากมายให้เลือกใช้ อีกทั้งราคาก็ถูกมาก ค่าส่งฟรี ผู้เขียนจึงได้ลองประดิษฐ์เครื่องตรวจจับอากาศมาใช้เตือนควันพิษ
Re: Arduino: Project Outdoor Exhaust Gas Detector for Townhouse
แต่เป็นของจีนเลียนแบบ มาพร้อมกับสาย USB สีฟ้าใสแบบในรูป ช่วงนั้นราคาประมาณ 200 บาท
ตอนแรกจะเอามาทำเครื่องปิดเปิดพัดลมอัตโนมัติ ใช้ตอนนั่งเล่นคอมพิวเตอร์
แต่โมดูล PIR ทำงานไม่แม่นยำ โปรเจคนั้นเป็นอันต้องยกเลิกไป
Re: Arduino: Project Outdoor Exhaust Gas Detector for Townhouse
จึงได้คิดทำเครื่องตรวจสภาพอากาศ
12 JUL 2016 สั่งซื้อโมดูล MQ-2 มาลองศึกษา ราคา $1.09
โมดูลนี้เป็นรุ่น FC-22 จะมีค่า RL = 1 kohm
Re: Arduino: Project Outdoor Exhaust Gas Detector for Townhouse
05 AUG 2016 สั่งซื้อโมดูล LCD 20x4 มาใช้แสดงผล ราคา $4.30
ปกติแล้วโมดูล LCD จะสื่อสารด้วยโปรโตคอลแบบขนานซึ่งจะใช้สายจำนวนมาก ทำให้ไม่สะดวกในการใช้งานจริง
เวลาซื้อให้เลือกแบบมีวงจรแปลงโปรโตคอล I2C (2 wires serial) มาด้วย เมื่อรวมกับไฟเลี้ยงก็จะใช้สายเพียงแค่ 4 เส้น
โมดูล LCD นี้เราต้องมาเขียนโปรแกรมเพื่อจัดตัวอักษรตามตำแหน่งต่างๆเอาเอง
Re: Arduino: Project Outdoor Exhaust Gas Detector for Townhouse
04 SEP 2016 สั่งซื้อโมดูล MQ-135 มาทดลอง ราคา $1.36
Re: Arduino: Project Outdoor Exhaust Gas Detector for Townhouse
MQ-135 ก็วัดได้ค่าที่ไม่แน่นอน ใช้ไม่ได้ผลเหมือนกับ PIR โมดูล
คิดว่าโมดูลต่างๆมีความไม่เสถียร ยากต่องานที่ละเอียดๆ
จึงเลิกวิจัย ณ OCT 2016
คิดว่าโมดูลต่างๆมีความไม่เสถียร ยากต่องานที่ละเอียดๆ
จึงเลิกวิจัย ณ OCT 2016
Re: Arduino: Project Outdoor Exhaust Gas Detector for Townhouse
เวลาผ่านไป 2 ปีประมาณปลายเดือน OCT 2018 ได้กลับมาวิจัยเครื่องวัดควันเหม็นต่อ
ณ เวลานี้มีคนที่ทำเครื่องตรวจอากาศเพิ่มขึ้นจำนวนมาก มีตัวอย่างและการพัฒนามากมาย
ได้พบว่าคนที่สอนคนแรกได้ใช้คำสั่งผิด จาก log10 ดันไปใช้ log ธรรมดา
ทำให้ได้ค่า PPM ที่ไม่ถูกต้อง
ณ เวลานี้มีคนที่ทำเครื่องตรวจอากาศเพิ่มขึ้นจำนวนมาก มีตัวอย่างและการพัฒนามากมาย
ได้พบว่าคนที่สอนคนแรกได้ใช้คำสั่งผิด จาก log10 ดันไปใช้ log ธรรมดา
ทำให้ได้ค่า PPM ที่ไม่ถูกต้อง
Code: Select all
int GetPPM(float RS_RO_Ratio, float *Graph)
{
return (pow(10,(((log10(RS_RO_Ratio)-Graph[1])/Graph[2])+Graph[0])));
}
Re: Arduino: Project Outdoor Exhaust Gas Detector for Townhouse
http://exploreembedded.com/wiki/Interfacing_Gas_Sensor
https://github.com/zesteros/ArduinoAirQualityMonitor
05 NOV 2018 ได้เรียนรู้วิธีใช้สูตรคำนวนค่า PPM จากกราฟใน datasheet
ทำให้สามารถคำนวนได้จากทุกโมดูล MQ series
จัดทำ Excel เพื่อคำนวนหาค่า slope จากกราฟ log10
[ใส่รูปตาราง Excel]
Re: Arduino: Project Outdoor Exhaust Gas Detector for Townhouse
สำหรับควันเหม็นค่า PPM นั้นไม่มีความสำคัญ จึงได้เอาออกจากโปรแกรม
ใช้วิธีเปรียบเทียบระดับสัญญาณ analog ค่าเฉลี่ย 5 นาทีและ 10 วินาที
ถ้าแตกต่างเกิน 5% ให้แจ้งเตือน
ปัญหาต่อมาคือจุดติดตั้ง sensor นั้นอยู่ลึกเกินไป พอควันพิษมาถึงก็จะปิดประตูบ้านไม่ทันแล้ว
จึงได้ทดลองย้ายจุด sensor ไปอยู่ที่ริมถนนเลย แต่เนื่องจาก sensor กินไฟ 130mA
ทำให้ไม่เหมาะที่จะใช้ระบบไร้สาย เพราะต้องเปิดใช้ตั้งแต่เช้ายันค่ำ
ผู้เขียนจึงใช้สายโทรศัพท์เก่าๆที่เป็น 4 คอร์ ยาวประมาณ 30 เมตร
ทดลองแล้วได้ผลดีแต่มักจะทำงานผิดพลาด ค่าสัญญาณชอบแสดงเป็น 1023
ทดลองเปลี่ยนเอาโมดูล MQ-2 มาใช้แทนก็ยังชอบ error 1023
ใช้วิธีเปรียบเทียบระดับสัญญาณ analog ค่าเฉลี่ย 5 นาทีและ 10 วินาที
ถ้าแตกต่างเกิน 5% ให้แจ้งเตือน
ปัญหาต่อมาคือจุดติดตั้ง sensor นั้นอยู่ลึกเกินไป พอควันพิษมาถึงก็จะปิดประตูบ้านไม่ทันแล้ว
จึงได้ทดลองย้ายจุด sensor ไปอยู่ที่ริมถนนเลย แต่เนื่องจาก sensor กินไฟ 130mA
ทำให้ไม่เหมาะที่จะใช้ระบบไร้สาย เพราะต้องเปิดใช้ตั้งแต่เช้ายันค่ำ
ผู้เขียนจึงใช้สายโทรศัพท์เก่าๆที่เป็น 4 คอร์ ยาวประมาณ 30 เมตร
ทดลองแล้วได้ผลดีแต่มักจะทำงานผิดพลาด ค่าสัญญาณชอบแสดงเป็น 1023
ทดลองเปลี่ยนเอาโมดูล MQ-2 มาใช้แทนก็ยังชอบ error 1023
Re: Arduino: Project Outdoor Exhaust Gas Detector for Townhouse
ได้ความว่า เนื่องจากสายที่ยาวและเส้นเล็กทำให้ voltage 5V ลดลงเหลือ 4.5V
10 NOV 2018 ทดลองจ่ายไฟ 12V แล้วค่อยแปลงไฟลงมา 5V ที่จุด sensor
พบปัญหา regulator 7805 ใช้ capacitor เล็กเกินไปจึงได้เพิ่มขนาด
ตอนนี้ได้ผลดีมาก ไม่มีปัญหา error 1023 อีกต่อไป
Re: Arduino: Project Outdoor Exhaust Gas Detector for Townhouse
19 NOV 2018 ศึกษาการแปลงค่า analogRead() ไปเป็น voltage ว่าจะใช้ค่า 1023 หรือ 1024
และทำไมเวลาโปรแกรม error จะแสดงค่า 1023
พบว่ามีคนใช้ผิดจำนวนมาก มีการถกเถียงกันมาอย่างยาวนาน
สรุปได้ความว่า จะต้องใช้ตัวเลข 1024 ในการคำนวน DAC
แต่ใน Arduino จะแสดงค่าได้สูงสุดแค่ 1023 เท่านั้น
และทำไมเวลาโปรแกรม error จะแสดงค่า 1023
พบว่ามีคนใช้ผิดจำนวนมาก มีการถกเถียงกันมาอย่างยาวนาน
สรุปได้ความว่า จะต้องใช้ตัวเลข 1024 ในการคำนวน DAC
แต่ใน Arduino จะแสดงค่าได้สูงสุดแค่ 1023 เท่านั้น
Code: Select all
DAC = analogRead(MQ_PIN);
RS = RL * (1024.0 - DAC) / DAC;
Re: Arduino: Project Outdoor Exhaust Gas Detector for Townhouse
ประสบปัญหาไฟ 5V ไม่เท่ากัน ต้องเปลี่ยนสายไฟและขั้วต่อใหม่
22 NOV 2018 พบปัญหา IC 7805 ร้อนเกินไปเมื่อใช้ input 12V
Re: Arduino: Project Outdoor Exhaust Gas Detector for Townhouse
เพื่อใช้แทน 7805 ที่มีปัญหาความร้อน
เพื่อใช้กับบอร์ด Arduino และไฟเลี้ยงไปยังชุด sensors ริมรั้ว
ใช้ติดตั้งบอร์ดและจอ LCD ลงกล่อง
Re: Arduino: Project Outdoor Exhaust Gas Detector for Townhouse
Re: Arduino: Project Outdoor Exhaust Gas Detector for Townhouse
Re: Arduino: Project Outdoor Exhaust Gas Detector for Townhouse
สามารถตรวจจับควันรถกระบะที่มาจอดส่งของได้
สามารถตรวจจับควันรถมอเตอร์ไซค์ที่มาจอดได้
กลางคืนตรวจจับควันที่ชาวบ้านเผาไม้ไล่ยุงได้
บอร์ด UNO R3 มีขั้วกราวด์น้อยและเป็นแบบ female
เหมาะสำหรับใช้ร่วมกับ breadboard
ถ้าจะเอามาใช้งานจริงต้องทำกราวด์บาร์เพิ่ม
ควรหาบอร์ดที่ดัดแปลงมีขั้ว I/O แบบเข็มเยอะๆ
และ USB ควรจะเป็นแบบ microUSB
ขั้วแบบเข็มจะเตี้ยกว่าเมื่อใช้ร่วมกับ dupont female
Re: Arduino: Project Outdoor Exhaust Gas Detector for Townhouse
ขั้วต่อสาย sensor เยอะได้ใจ สะดวกมาก