ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น

Mini Project Arduino Nodemcu แจ้งเตือน น้ำท่วม น้ำล้น ผ่าน Line Notify

โปรเจคนี้พัฒนาโปรแกรมด้วย Arduino IDE เป็นโปรเจคที่แนะนำเกี่ยวกับการใช้ Sensor Water Level และการแจ้งเตือนผ่าน Line เหมาะสำหรับน้องๆที่ศึกษาเกี่ยวกับ Nodemcu การแจ้งเตือนผ่าน Line เป็นเบสิก พื้นฐานสำหรับน้องๆเลยครับ.

ก่อนอื่นน้องๆจะต้องตั้งค่า ID Line ของน้องๆก่อนเลยครับ ลองอ่าน Link นี้ได้เลย

https://www.ab.in.th/b/6

อุปกรณ์มีดังต่อไปนี้ ราคาไม่เกิน 400 บาท 

  • Nodemcu V2
  • Sensor Water Level
  • สายไฟแบบ Female to Female 20 cm 10 เส้น
  • Adapter 5V 2A USB

หรือสั่งซื้อได้ที่ คลิก

การต่อสายวงจร

ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น

ตัวอย่าง Code 

หลักการทำงาน 

Sensor Water Level เป็น Sensor แบบ Analog จะป้อนสัญญาณไปยัง Nodemcu เพื่อให้ Nodemcu ตัดสินใจ โดยเราจะปรับค่าระดับน้ำ ที่ ตัวแปร 

int waterlevel = 300;   //ปรับระดับน้ำ

ปรับได้ตามที่เราต้องการเลยครับให้เหมาะสมกับหน้างานน้องๆ เมื่อเข้าเงือนไขการทำงาน Nodemcu ก็จะทำการส่งข้อมูลไปยัง Server Line Notify จากนั้น ก็จะมีข้อความแจ้งเตือนมายัง ID Line ของน้องๆครับ 

2.1ความสำคัญของ"เครื่องเตือนน้ำล้น"

      จากการที่คณะผู้จัดทำได้จัดทำ"เครื่องเตือนน้ำล้น"ขึ้นมาเพื่อให้เห็นคุณค่าของทรัพยากรน้ำ 

ประโยชน์ของน้ำมีมากมายได้แก่

       -น้ำเป็นสิ่งจำเป็นที่เราใช้สำหรับการดื่มกิน การประกอบอาหาร ชำระร่างกาย ฯลฯ

       -น้ำมีความจำเป็นสำหรับการเพาะปลูกเลี้ยงสัตว์ แหล่งน้ำเป็นที่อยู่อาศัยของปลาและสัตว์น้ำอื่น ๆ

 ซึ่งคนเราใช้เป็นอาหาร

       -ในการอุตสาหกรรม ต้องใช้น้ำในขบวนการผลิตใช้ล้างของเสียใช้หล่อเครื่องจักรและระบายความร้อน ฯลฯ

       -การทำนาเกลือโดยการระเหยน้ำเค็มจากทะเล

       -น้ำเป็นแหล่งพลังงาน พลังงานจากน้ำใช้ทำระหัด ทำเขื่อนผลิตกระแสไฟฟ้าได้

       -แม่น้ำ ลำคลอง ทะเล มหาสมุทร เป็นเส้นทางคมนาคมขนส่งที่สำคัญ

       -ทัศนียภาพของริมฝั่งทะเลและน้ำที่ใสสะอาดเป็นแหล่งท่องเที่ยวของมนุษย์

   หากเราไม่มีน้ำเพื่อใช้ทำสิ่งเหล่านี้บางทีอาจทำให้โลกเปลี่ยนแปลงได้หลายๆอย่างแล้วอาจทำให้เราลำบาก

ได้เพราะฉะนั้นการทำชิ้นงานนี้อาจไม่ได้ทำให้โลกมีทรัพยากรน้ำสะสมได้มากมายแต่อย่างน้อยโครงงานชิ้นนี้

ก็ทำให้เราไม่ใช้น้ำเปลืองไปอย่างไร้ค่า

2.2ข้อมูลของ"เครื่องเตือนน้ำล้น"

เครื่องเตือนน้ำล้นนี้มีลักษณะคล้ายกล่องสีเหลืองมีสายห้อยลงมาเพื่อที่จะจับเซนเตอร์เมื่อมีน้ำล้นเกินออกมา

จากถังน้ำแล้วจึงดังขึ้น

ในส่วนของวงจร วงจรเตือนน้ำล้น เป็นวงจรตรวจจับน้ำโดยใช้น้ำเป็นสื่อนำไฟฟ้าเพื่อเปิดการทำงาน

ของวงจร แสดงผลการทำงานของวงจรด้วยเสียงและไฟจาก LED

ข้อมูลทางเทคนิค

- ใช้ไฟเลี้ยง 9 โวลท์ดีซี

- กินกระแสขณะทำงาน 28 mA.

- ขนาดแผ่นวงจรพิมพ์ 2 x 1.5 นิ้ว

โครงงาน เครื่องเตือนน้ำขาดน้ำล้นผ่าน SMS LINE

เสนอต่อ

มูลนิธิเทคโนโลยีสารสนเทศตามพระราชดำริ

สมเด็จพระเทพรัตนราชสุดา ฯ สยามบรมราชกุมารี

ได้รับการสนับสนุนทุนทำโครงงาน

ในโครงงานสนับสนุนทำโครงงานของนักเรียนในชนทบ

ประจำปีการศึกษา ๒๕๖๐

โดย

สามเณร ไพบูลย์ แก้วมงคล ระดับชั้นมัธยมศึกษาปีที่ ๕

สามเณรพิชญุตม์ อินตะจักร์ ระดับชั้นมัธยมศึกษาปีที่ ๖

อาจารย์ที่ปรึกษา

อาจารย์ ศิวรรจน์ สวัจฉัตว์

อาจารย์ สุนินาท พุฒจันทร์

โรงเรียนพระปริยัติธรรมเกียรติแก้ววิทยา

ตำบลศรีแก้ว อำเภอศรีรัตนะ จังหวัดศรีสะเกษ

บทคัดย่อ

               โรงเรียนพระปริยัติธรรมเกียรติแก้ววิทยา เป็นโรงเรียนในโครงการพระราชดำริของสมเด็จพระเทพรัตนราชสุดาฯสยามบรมราชกุมารี ได้มีโอกาสมาทำสิ่งที่พัฒนาตนเองให้มีความรู้ความเข้าใจในด้านคอมพิวเตอร์อิเล็กทรอนิกซ์มากขึ้น จึงได้มีโอกาสทำโครงงานประกวนแข่งขัน ปีนี้ก็ได้นำโครงงานข้าแข่งขันเช่นกัน เป็นเครื่องเตือนน้ำขาดน้ำล้นผ่าน SMS ที่จะช่วยแก้ปัญหาในหลายๆด้านของการเปิดน้ำน้ำทิ้งเฉยๆ นี้ก็เลยเป็นอุบายในการทำโครงงานนี้ครับ

จากการดำเนินการในการจัดทำโครงงานสรุปผลการทดลองได้ดังนี้

เครื่องเตือนน้ำขาดน้ำล้นผ่าน SMS LINE  สามารถทำงานได้อย่างมีประสิทธิภาพและใช้ประโยชน์ได้จริง เนื่องในที่ว่า แท๊งค์น้ำตามบ้านหรือแท๊งค์น้ำปะปาเวลาปั๊มน้ำไปยังแท๊งค์ เราไม่รู้ว่าน้ำจะเต็มแท๊งค์เมื่อใด หรือน้ำจะหมดจากแท๊งค์เมื่อใดเช่นกัน เครื่องนี้สามารถเตือนผู้ควบคุมปั๊มมา เปิด-ปิด ได้ทันที

คณะผู้จัดทำ

ที่มาและความสำคัญ

โลกของเราประกอบขึ้นด้วยพื้นดินและพื้นน้ำ โดยส่วนที่เป็นฝืนน้ำนั้น มีอยู่ประมาณ 3 ส่วน (75%) และเป็นพื้นดิน 1 ส่วน (25%) น้ำมีความสำคัญอย่างยิ่งกับชีวิตของพืชและสัตว์บนโลกรวมทั้งมนุษย์เราด้วยน้ำเป็นทรัพยากรที่สามารถเกิดหมุนเวียนได้เรื่อย ๆ ไม่มีวันหมดสิ้น เมื่อแสงแดดส่องมาบนพื้นโลก น้ำจากทะเลและมหาสมุทรก็จะระเหยเป็นไอน้ำลอยขึ้นสู่เบื้องบนเนื่องจากไอน้ำมีความเบากว่าอากาศ เมื่อไอน้ำลอยสู่เบื้องบนแล้ว จะได้รับความเย็นและกลั่นตัวกลายเป็นละอองน้ำเล็ก ๆ ลอยจับตัวกันเป็นกลุ่มเฆม เมื่อจับตัวกันมากขึ้นและกระทบความเย็นก็จะกลั่นตัวกลายเป็นหยดน้ำตกลงสู่พื้นโลก น้ำบนพื้นโลกจะระเหยกลายเป็นไอน้ำอีกเมื่อได้รับความร้อนจากดวงอาทิตย์ ไอน้ำจะรวมตัวกันเป็นเมฆและกลั่นตัวเป็นหยดน้ำกระบวนการเช่นนี้ เกิดขึ้นเป็นวัฏจักรหมุนเวียนต่อเนื่องกันตลอดเวลา เรียกว่า วัฏจักรน้ำทำให้มีน้ำเกิดขึ้นบนผิวโลกอยู่สม่ำเสมอ

น้ำที่พากันใช้บนพื้นโลกใบนี้ส่วนใหญ่เป็นน้ำที่ไม่สะอาดที่ตกมาจากฟ้าเรียกน้ำฝนตกไปยังบึง หนอง
ลำธารหรือสถานที่ต่างๆที่เป็นที่กักเก็บน้ำ มนุษย์เราก็พยายามหาวิธีทางในการนำน้ำเหล่านั้นมาใช้ประโยชน์ ก็เลยมีการผลิตปั๊มน้ำปะปามาเพื่อทำการสูบน้ำจากบ่อหรือบึงหนองต่างๆ มาขัดกรองทำความสะอาดจากดิน สัตว์ตัวเล็กต่างๆที่ยังหลงเหลือออกทำให้เป็นน้ำที่สะอาดพร้อมที่จะใช้ในการทำอาหาร อาบน้ำ หรือทำกิจต่างๆที่เกี่ยวกับการใช้น้ำ แต่ที่สำคัญการใช้น้ำหรือเวลาที่สูบน้ำขึ้นไปทำความสะอาดนั้น เราไม่รู้ว่าน้ำจะหมดแท๊งค์เมื่อใด น้ำจะเต็มแท๊งค์เมื่อใด จำต้องมีคนมาเปิด-ปิดเพื่อเป็นการประหยัดน้ำที่ล้นแท๊งค์และเพื่อเปิดน้ำที่ใกล้จะหมดแท๊งค์เพื่อการใช้น้ำอย่างไม่ติดขัดต่อไป
เนื่องในโรงเรียนหรือวัดที่สาธารณะต่างๆมีแท็งค์น้ำหรือน้ำปะปาเพื่อสำหรับกรองน้ำในการจ่ายน้ำให้ใช้กัน ปัญหาก็มีอยู่ว่า เวลาสูบน้ำ จากบ่อบาดาลเพื่อให้เข้าไปสู่แท็งค์กักน้ำ ในการสูบน้ำก็ใช้ในการเสียบปลั๊กไฟเอาในการจ่ายพอสูบน้ำในปริมาณมากจนล้น ทำให้น้ำที่เราสูบขึ้นมาเต็มและก็ล้นทำให้ เปลืองทรัพย์พยากรณ์น้ำเป็นจำนวนมาก เพระไม่รู้ว่าน้ำมันจะเต็มเมื่อไร จะได้รีบปีดน้ำทันทวงที เราจึงได้คิดค้นเครื่องเตือนน้ำขาดน้ำล้นผ่าน SMS Line ขึ้นมาเพื่อแจ้งน้ำขาดหรือน้ำเต็มแท็งค์แล้ว กับคนผู้คุมการเปิดปิด การสูบน้ำ มาปิดเครื่อง เพื่อจะได้ไม่เปลื่องทรัพย์กรณ์น้ำ และจะสะดวกต่อการรับรู้ น้าเป็นสิ่งจำเป็นที่เราใช้สำหรับการดื่มกิน การประกอบอาหาร ชำระร่างกาย น้ำมีความจำเป็นสำหรับการเพาะปลูกเลี้ยงสัตว์ แหล่งน้ำเป็นที่อยู่อาศัยของปลาและสัตว์น้ำอื่น ๆ ซึ่งคนเราใช้เป็นอาหาร  น้ำเป็นแหล่งกำเนิดชีวิตของสัตว์และพืชคนเรามีชีวิตอยู่โดยขาดน้ำได้ไม่เกิน 3 วัน และน้ำยังมีความจำเป็นทั้งในภาคเกษตรกรรมและอุตสาหกรรม ซึ่งมีความสำคัญอย่างยิ่งในการพัฒนาประเทศ ประโยชน์ของน้ำ

วัตถุประสงค์ของการทำโครงงาน

1.เพื่อประหยัดน้ำ

2.เพื่อประหยัดไฟฟ้าที่สูบน้ำ

3.เพื่อจะได้เปิด-ปิดเครื่องสูบน้ำได้อย่างทันทวงที

4.ผู้ก็จะได้มีเวลาไปทำกิจอย่าง

แนวคิดและทฤษฏี

โปรแกรมจะทำงานโดยการเขียนโค้ดควบคุมโดยมีหลักการทำงานดังนี้ ผู้จัดทำเขียนโค้ดโปรแกรมควบคุมเพื่อเป็นการทำงานอย่างมีประสิทธิภาพในการเตือนน้ำขาดน้ำล้นแก่ผู้คุม

เป้าหมายของการทำโครงงาน

1.เพื่อจะไม่เปลืองทรัพย์พยากรณ์น้ำ

2.เพื่อจะได้ไม่บ่นว่าน้ำไม่ไหล น้ำใช้ได้ไม่ต่อเนื่อง

3.เพื่อประหยัดพลังงานไฟฟ้าในการใช้ปั๊มน้ำ

อุปกรณ์ที่ต้องใช้ในการทำโครงงาน

1. Arduino  WIFI ESP3266 2. Rain Sensor Module
 
ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น
 
ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น
3.สายจั๊มเปอร์ต่างๆ 4.บอร์ดทดลอง
 
ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น
 
ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น
5.สาย USB 6.โทรศัพท์มือถือ
 
ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น
 
ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น

ขั้นตอนการทำและการดำเนินการ

  1. วางแผนการทำงานต่างๆ
  2. เรียนรู้การต่อวงจรของโครงงานที่ทำ
  3. ศึกษาอุปกรณ์ที่ต้องการ
  4. ดำเนินงานการเข้าอบรมและต่แผงวงจรตามที่ออกแบบไว้
  5. ทดสอบเครื่องเพื่อวัดผลการทำงาน
  6. บันทึกการทดสอบ ระบุปัญหาที่เกิดขึ้นเพื่อแก้ไข
  7. สรุปผล

หลักการทำงาน

ลำดับแรกทำการเชื่อมต่อไปยังArduino WIFI โดยการเขียนชื่อและรหัสผ่านไว้ที่โค้ดแล้วเช็ตเข้าเครื่องจากนั้น
เชื่อมต่อกับ LINE โดยเชื่อมต่อที่ LINE Notify แล้ว Coby โค้ด จากของ LINE มาเขียนใส่ที่โค้ดหลัก เพื่อเป็นการ
ส่งข้อความมา และอีกอย่างหนึ่ง ตัวข้อความ ต้องไปแปลงค่าเป็นโค้ดที่เว็บไซค์URL Decoder/Encoder จากนั้นนำมาเขียนโค้ดใส่ที่โค้ดหัวข้อ Message Line กี่ข้อความก็ได้ตามที่ต้องการ ส่วนตัวเซนเซอร์ต้องตั้งค่าโค้ดและตัวต้านทานให้เป็น Hight And Low ที่กำหนดเป็น Hight บน หรือ Low ล่าง

ทำการติดตั้งเครื่องที่แท๊งค์น้ำและเชื่อมต่อไฟที่ 5 w. ติดตั้งเซนเซอร์ที่1คือ Hight ไว้บนแท๊งค์น้ำ เซนเซอร์ที่ 2
คือ Low ไว้ล่าง พอน้ำล้นแท๊งค์น้ำ ก็จะโดนเซนเซอร์จากนั้นก็จะทำการเตือนไปยัง Message Line ว่า น้ำเต็มหรือน้ำเกินแท็งค์ ส่วนน้ำที่ขาดหรือใกล้จะหมดแท๊งค์ พอน้ำไม่ได้ถูกเซนเซอร์หรือน้ำแห้ง ตัวเครื่องก็จะส่งข้อความเตือนว่า น้ำหมดหรือน้ำไกล้หมด จะได้มาเปิดหรือปิดเครื่องปั้นน้ำอย่างทันที เพื่อจำด้ไม่เปลื่องน้ำที่ล้นออกจากแท๊งค์ และจะได้ใช้น้ำอย่างไม่ติดขัด

เมื่อน้ำถูกใช่ในปริมาณเกินที่กำหนด ที่เซนเซอร์ถูกตั้งไว้มันจะทำการเตือนหรือส่งข้อความมาทาง  Line ว่าน้ำกำลังจะหมด และถ้าน้ำถูกสูบมาใช้ทำความสะอาดในปริมาณมากกว่ากำหนด ระบบก็จะแจ้งเตือนหรือส่งข้อความมาทาง Line ว่าน้ำกำลังจะเต็ม ระบบจะทำการส่งข้อความทันที เมื่อได้รับการแสดงผลจากเซนเซอร์ที่ติดตั้งไว้กับแท๊งค์น้ำเป็นอย่างดี

สรุปผล

โครงงานเครื่องเตือนน้ำขาดน้ำล้นผ่าน SMS LINE  จากการที่เราได้กระทำโครงงานนี้ขึ้นมา สรุปผลได้ว่า เป็นการประดิษฐ์ชิ้นงานที่เป็นไปตามความคิดที่ได้พากันวางแผนไว้ สามารถทำการแจ้งเตือนอย่างมีประสิทธิภาพ ทั้งตอนที่น้ำนั้นเอ่อท้วมแท๊งค์น้ำและน้ำใกล้หรือหมดแท๊งค์ ก็ทำการแจ้งตามที่เราได้ตั้งค่าเขียนโปรแกรมโค้ดไว้เป็นอย่างดีและสามารถใช้งานได้จริงตามสถานที่ต่างๆ เนื่องจากที่ได้ทำการทดลองใช้เครื่องมา

ข้อเสนอแนะโครงงาน

เราจะพัฒนาให้สามารถวัดปริมาณน้ำว่ามีเท่าเหลือเท่าไร และสามารถเปิด-ปิด ปั้มน้ำแบบอัตโนมัติได้ โดยใช่แอปในสมาร์ทโฟน แบบเป็นระยะไกลได้ จะได้สะดวกต่อการทำอย่างอื่นมากขึ้น และจะได้ไม่ต้องกังวนในการเสียน้ำทิ้งไปเชยๆอีกต่อไป

การทำงานของ เครื่องเตือนน้ำขาดน้ำล้นผ่าน SMS LINE

ภาพวาดจำลองการทำงาน

 

ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น

 
ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น
 
ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น
 
ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น
 
ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น
 
ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น
 
ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น
 
ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น
 
ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น
 
ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น
 
ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น
 
ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น
 
ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น
 
ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น
ออกแบบ กระบวนการ แก่ ปัญหา ระบบ เตือนน้ำล้น

ตัวอย่าง โค้ดการทำงานของโครงงานเปลี่ยนแค่ 2 ที่ก็พอ คือ

1.ใส่ชื่อและรหัส WIFI

-#define WIFI_SSID “AndroidAP”

-#define WIFI_PASSWORD “22222222”

2.ใส่โค้ด LINE เว็บ

-#define LINE_TOKEN “BMJw5EFPiemtQkgdGkLczpjyG3QM8DoX2EzJLEaJJnN”

void Line_Notify(String message) ;

#include <ESP8266WiFi.h>

const int bottomPin = D1;

const int topPin = D2;

// Config connect WiFi

#define WIFI_SSID “AndroidAP”

#define WIFI_PASSWORD “22222222”

// Line config

#define LINE_TOKEN “BMJw5EFPiemtQkgdGkLczpjyG3QM8DoX2EzJLEaJJnN”

String messageL = “water%20Empty”;

String messageH = “water%20over%20flow”;

void setup()

{

pinMode(bottomPin, INPUT);

pinMode(topPin, INPUT);

Serial.begin(9600);

WiFi.mode(WIFI_STA);

// connect to wifi.

WiFi.begin(WIFI_SSID, WIFI_PASSWORD);

Serial.print(“connecting”);

int i = 0;

do {

Serial.print(“.”);

delay(500);

i++;

Serial.print(i);

} while ((WiFi.status() != WL_CONNECTED) && (i < 10));

Serial.println();

Serial.print(“connected: “);

Serial.println(WiFi.localIP());

}

void loop()

{

if (digitalRead(bottomPin) == HIGH)

{

Line_Notify(messageL);

Serial.println(“Low water level”);

delay(5000);

}

if (digitalRead(topPin) == LOW)

{

Line_Notify(messageH);

Serial.println(“High water level”);

delay(5000);

}

}

void Line_Notify(String message) {

WiFiClientSecure client;

if (!client.connect(“notify-api.line.me”, 443)) {

Serial.println(“connection failed”);

return;

}

String req = “”;

req += “POST /api/notify HTTP/1.1\r\n”;

req += “Host: notify-api.line.me\r\n”;

req += “Authorization: Bearer ” + String(LINE_TOKEN) + “\r\n”;

req += “Cache-Control: no-cache\r\n”;

req += “User-Agent: ESP8266\r\n”;

req += “Connection: close\r\n”;

req += “Content-Type: application/x-www-form-urlencoded\r\n”;

req += “Content-Length: ” + String(String(“message=” + message).length()) + “\r\n”;

req += “\r\n”;

req += “message=” + message;

// Serial.println(req);

client.print(req);

delay(20);

// Serial.println(“————-“);

while (client.connected()) {

String line = client.readStringUntil(‘\n’);

if (line == “\r”) {

break;

}

//Serial.println(line);

}

// Serial.println(“————-“);

}