โปรเจคนี้มันอาจจะดูยากนิดนึง แต่พี่จะอธิบายให้เข้าใจง่ายๆ แบบเด็กช่างนะ
มุมมองของโปรเจค
Automatic Water Pump Controller เป็นเลย์เอาท์ที่ทั้งใช้งานได้จริงและสนุกสุดๆ สำหรับใครที่อยากเริ่มทำโปรเจค Home Automation สักชิ้น ด้วยการใช้เซ็นเซอร์วัดระยะอัลตราโซนิกและรีเลย์โมดูล เราจะได้ระบบอัตโนมัติที่เปิด-ปิดปั๊มน้ำตามระดับน้ำในถังหรือภาชนะ
มันทำงานยังไง ?
Arduino จะสั่งให้ปั๊มน้ำเปิดหรือปิดโดยการคำนวณข้อมูลจาก Ultrasonic Distance Sensor ถ้าระยะที่วัดได้ (ในโค้ด - นิ้ว) น้อยกว่าค่าที่ตั้งไว้ Arduino ก็จะสั่งให้ปั๊มน้ำทำงาน พอปั๊มทำงานแล้ว มันก็จะตรวจสอบอีกที ถ้าระยะที่วัดได้ (ในโค้ด - นิ้ว) มากกว่าค่าที่ตั้งไว้ Arduino ก็จะสั่งให้ปั๊มน้ำหยุด
ด้านเทคนิค
เราใช้พอร์ตดิจิตอลอินพุต/เอาต์พุตของ Arduino Uno ในการอ่านค่าจากเซ็นเซอร์อัลตราโซนิกและควบคุม Relay Module ตัวรีเลย์ทำหน้าที่เหมือนสวิตช์อิเล็กทรอนิกส์สำหรับปั๊มน้ำ ทำให้สัญญาณแรงดันต่ำจาก Arduino สามารถควบคุมอุปกรณ์ที่ใช้ไฟสูงได้อย่างปลอดภัย
วิธีทำโปรเจคนี้ของพี่
พี่เคยมีปัญหาน้ำในถังล้นบ่อยๆ เสียน้ำไปเยอะเลย เลยเริ่มคิดหาทางแก้ พี่ก็เลยปิ๊งไอเดียทำระบบควบคุมปั๊มน้ำขึ้นมา
พี่เริ่มคิดแบบเน้นปฏิบัติและเขียนโค้ดด้วยตรรกะ แต่แล้วข่าวร้ายก็มา - "มันไม่ทำงานตามที่คิด!"
พี่เลยหยิบมือถือขึ้นมาเสิร์ชหาโปรเจคแบบนี้ หลังจากเสิร์ชไปพักนึงก็เจอบทความหนึ่งในยูทูป ต้องบอกก่อนว่าโปรเจคนี้ไม่ใช่ของพี่นะ มันเป็นของช่อง Kiyani's Lab
โค้ดของโปรเจคนี้พี่ได้มาจากวิดีโอของเขา
อุปกรณ์ที่ต้องใช้ :-
- Arduino Uno
- จอ LCD 16 x 2
- เซ็นเซอร์อัลตราโซนิก (HCSR-04)
- บอร์ดทดลอง (เบรดบอร์ด)
- โพเทนชิโอมิเตอร์ (10k)
- สายจัมเปอร์ (Female - Male)
- ตัวต้านทาน 1k
- รีเลย์โมดูล
- ปุ่มกด (Push Button)
- สวิตช์ SPST
โครงสร้างฮาร์ดแวร์
- Arduino Uno: ตัวควบคุมหลักสำหรับตรรกะการทำงานของปั๊มน้ำและข้อมูลจากเซ็นเซอร์
- เซ็นเซอร์อัลตราโซนิก (HCSR-04): ให้ข้อมูลระยะห่างตามระดับน้ำในภาชนะ
- รีเลย์โมดูล: แยกวงจรปั๊มน้ำที่ใช้แรงดัน/กระแสสูงออกจาก Arduino เพื่อความปลอดภัยและการควบคุม
- จอ LCD 16x2: แสดงสถานะของระบบและข้อมูลระดับน้ำ
- สายจัมเปอร์: ใช้เชื่อมต่ออุปกรณ์ทั้งหมดเข้าด้วยกัน
แผนภาพวงจร
ในรูปนี้ใช้ Arduino Nano แต่น้องจะใช้บอร์ด Arduino รุ่นไหนก็ได้นะ
การต่อ Ultrasonic Sensor เข้ากับ Arduino Uno :-
ขา gnd (Ground/Cathode) ของ Ultrasonic Sensor ต่อกับขา gnd ของ Arduino Uno ขา Vcc (5v/Anode) ของมันต่อกับขา 5v ของ Arduino Uno
ขา Trig (อินพุต) ต่อกับขา D8 ของ Arduino Uno และขา Echo (เอาต์พุต) ต่อกับขา D9 ของ Arduino Uno
ต่อจอ LCD เข้ากับ Arduino Uno :-

เราไม่ต่อขา (D0, D1, D2, D3) ของจอ LCD เพราะเราใช้โหมด 4 บิตในการแสดงข้อบนจอ งานเบาๆ แค่นี้ก็พอแล้วน้อง
D4 - ต่อกับ D4 (Arduino Uno/Nano/Mega/บอร์ดอื่นๆ) D5 - ต่อกับ D5 (Arduino Uno/Nano/Mega/บอร์ดอื่นๆ) D6 - ต่อกับ D6 (Arduino Uno/Nano/Mega/บอร์ดอื่นๆ) D7 - ต่อกับ D7 (Arduino Uno/Nano/Mega/บอร์ดอื่นๆ) Led Anode [ตัวย่อ - A] / (LED +) - ต่อกับ 5v (Arduino Uno)
หมายเหตุ: อย่าลืมต่อตัวต้านทาน (Resistor) อนุกรมเข้าไปด้วยนะ (พี่ใช้ 1k) ไม่งั้นไฟ LED อาจจะพังเพราะแรงดันเกินได้ ⚠. ห้ามช็อตนะตัวนี้!
Led Cathode [ตัวย่อ - K] / (LED -) - ต่อกับ Gnd (Arduino Uno)
ต่อรีเลย์ (Relay) เข้ากับ Arduino Uno :- ต่อขา IN (Signal/INPUT) ของโมดูลรีเลย์ เข้ากับขา D12 ของ Arduino Uno ต่อ Gnd ของรีเลย์เข้ากับ Gnd ของ Arduino และต่อขา 5v ของรีเลย์เข้ากับ 5v ของ Arduino
ต่อสวิตช์โหมด (AUTO/MANUAL) เข้ากับ Arduino :- ต่อขาสวิตช์ด้านหนึ่งเข้ากับ Gnd ของ Arduino และอีกด้านเข้ากับขา D11 ของ Arduino Uno
ต่อสวิตช์ปั๊มน้ำ (ON/OFF | ตั้งค่าระดับ) เข้ากับ Arduino :- ต่อขาสวิตช์ปุ่มกดด้านหนึ่งเข้ากับ Gnd ของ Arduino และอีกด้านเข้ากับขา D10
การควบคุมสัญญาณและตรรกะ
โค้ด Arduino ใช้ค่าที่อ่านได้จากเซ็นเซอร์วัดระยะ (Ultrasonic Sensor) เพื่อตรวจสอบระดับน้ำ เมื่อระดับน้ำต่ำกว่าค่าที่ตั้งไว้ โค้ดจะสั่งให้รีเลย์ทำงานเพื่อเปิดปั๊มน้ำ ON พอระดับน้ำขึ้นถึงความสูงที่ต้องการ รีเลย์ก็จะหยุดทำงาน ปิดปั๊มน้ำ OFF เรียบร้อย
การแสดงผลและเอาต์พุต
ระบบนี้ใช้จอ LCD 16x2 แสดงระดับน้ำปัจจุบันและสถานะของปั๊มน้ำ ทำให้เห็นข้อมูลชัดเจน เข้าใจง่าย ใช้งานได้ลื่นไหล
แนวทางการพัฒนาต่อ
- ใช้จอ OLED: เปลี่ยนจากจอ LCD มาเป็นจอ OLED ขนาดเล็กเพื่อให้ภาพคมชัดขึ้น แสดงระดับน้ำและสถานะปั๊มได้สวยงาม
- เพิ่มการเชื่อมต่อไร้สาย: ใส่โมดูล Bluetooth หรือ WiFi เพื่อให้สามารถตรวจสอบและควบคุมปั๊มน้ำจากมือถือได้จากระยะไกล
- ตรวจสอบถังน้ำสองถัง: ใช้เซ็นเซอร์หลายตัวเพื่อตรวจสอบและควบคุมการไหลของน้ำระหว่างถังสองถัง
- เพิ่มระบบจับเวลา: ใส่ฟังก์ชันตั้งเวลาเพื่อป้องกันไม่ให้ปั๊มทำงานนานเกินไปและประหยัดพลังงาน
โปรเจค Automatic Water Pump Controller Using Arduino Uno นี้เหมาะมากสำหรับคนที่ชอบเล่นอิเล็กทรอนิกส์และอยากได้เครื่องมืออัตโนมัติในบ้านที่ใช้งานได้จริงและสนุก! ไปลองทำกันเลย สู้งานนะน้อง!
วิดีโอการทำงาน:-
หวังว่าน้องๆ จะสนุกกับโปรเจคนี้และได้ความรู้ไปปรับใช้กันนะครับ