แปลงโฉมปั๊มน้ำบาดาลให้เป็นระบบอัตโนมัติ 100% ด้วย Arduino Nano

Automate any Submersible Pump Starter with Arduino

จากปั๊มหอยโข่งพัง สู่ภารกิจอัปเกรดปั๊มบาดาล

เรื่องมีอยู่ว่า ที่บ้านผมเคยใช้ปั๊มหอยโข่ง (Centrifugal pump) ในการสูบน้ำบาดาลขึ้นไปเก็บบนแท็งก์น้ำบนดาดฟ้าครับ แต่พอหน้าร้อนมาเยือน ปั๊มตัวเดิมกลับสูบน้ำไม่ขึ้นซะงั้น! เราเลยตัดสินใจเปลี่ยนไปใช้ปั๊มน้ำแบบจุ่ม หรือ "ปั๊มซับเมอร์ส (Submersible pump)" แทน ซึ่งมันไว้ใจได้มากกว่าในสถานการณ์แบบนี้ เพราะตัวมอเตอร์จะถูกหย่อนลงไปใต้ดินตรงที่มีน้ำเลย แล้วทำหน้าที่ดันน้ำขึ้นมาที่ผิวดิน วิธีนี้เวิร์คมากครับ ทำให้เราผ่านวิกฤตขาดน้ำมาได้

Submersible Pump
View more (ดูรูปกล่องคอนโทรลตัวปัญหา)

ปัญหาคือ ปั๊มตัวเก่าเรามีระบบควบคุมระดับน้ำแบบง่ายๆ ที่ใช้สายไฟ 3 เส้นจุ่มลงไปในแท็งก์เพื่อเช็คระดับน้ำและสั่งเปิด-ปิดปั๊ม (ผมเคยลองวิธีล้ำๆ อย่างการใช้เลเซอร์, กล้อง หรือเซ็นเซอร์อัลตราโซนิกมาแล้ว แต่วิธีเบสิกอย่างการจุ่มสายไฟนี่แหละเสถียรสุด)

Submersible Pump Starter Panel

แต่ปั๊มซับเมอร์สตัวใหม่ของเราดันมาพร้อมกับ "กล่องสตาร์ทเตอร์ภายนอก (External Starter)" เนื่องจากตัวเก็บประจุ (Capacitor) และชิ้นส่วนอื่นๆ ไม่สามารถเอาไปไว้ในตัวปั๊มที่แช่น้ำได้ การเอาวงจรลูกลอยเดิมไปสั่งจ่ายไฟให้กล่องสตาร์ทเตอร์ มันทำได้แค่ตัดไฟตอนน้ำเต็มครับ (Semi-automatic) แต่ตอนที่น้ำหมด มันดันสตาร์ทปั๊มเองไม่ได้! เพราะกล่องนี้ออกแบบมาให้ทำงานแบบแมนนวล คือ ต้องใช้คนเอานิ้วไปกดปุ่มค้างไว้ 2-3 วินาที ปั๊มถึงจะเริ่มทำงาน นี่แหละครับคือความท้าทายของเรา

อุปกรณ์และเครื่องมือที่ต้องใช้ (Hardware & Tools)

ในการทำโปรเจกต์อัปเกรดครั้งนี้ เราจะใช้อุปกรณ์ดังต่อไปนี้ครับ:

  • บอร์ดไมโครคอนโทรลเลอร์ Arduino Nano R3 (1 บอร์ด)
  • โมดูลรีเลย์แบบ 2 ช่อง Seeed Studio Grove - 2-Channel SPDT Relay (1 ชิ้น)
    *สามารถใช้ ESP-01 Relay Module แทนได้ถ้าไม่อยากบัดกรีเยอะ
  • สวิตชิ่งพาวเวอร์ซัพพลาย (SMPS) Digilent 5V 2.5A (1 ตัว)
  • แจ็คเสียบไฟ DC แบบลงปริ้นท์ DC POWER JACK 2.1MM (1 ชิ้น)
  • สายจัมเปอร์ (Jumper wires)
  • ซอฟต์แวร์: Arduino IDE
  • เครื่องมือช่าง: หัวแร้งบัดกรี, คีมปอกสายไฟ/ตัดสายไฟ, ไขควง, ดิจิทัลมัลติมิเตอร์ (มีไว้เช็ควงจรจะดีมากครับ)

วิธีแก้ปัญหา: ให้ Arduino กดปุ่มแทนเรา

จากโครงสร้างการทำงานของกล่องคอนโทรลปั๊ม การกดปุ่มสตาร์ทคือการสั่งปิดวงจร 2 เส้นพร้อมกันครับ เส้นแรกเพื่อดึงไฟจาก Start Capacitor และอีกเส้นเพื่อกระตุ้นการทำงานของแมกเนติกคอนแทคเตอร์ (Contactor)

Pump Starter Circuit Internals

วิธีแก้คือ เราต้องจำลองพฤติกรรมการกดปุ่มนั้นทันทีที่กล่องสตาร์ทเตอร์ได้รับไฟ ซึ่งเราจะใช้ Arduino Nano และโมดูลรีเลย์ 2 ช่อง เข้ามาทำหน้าที่แทน "นิ้วมือ" ของเราครับ

เราจะเอาวงจรของปุ่มสตาร์ททั้งสองเส้นไปต่อเข้ากับขา NO (Normally Open) ของรีเลย์แต่ละตัว และจ่ายไฟให้ Arduino กับรีเลย์ด้วยพาวเวอร์ซัพพลาย 5V (SMPS) ลอจิกการทำงานจะเป็นแบบนี้ครับ:
ระบบได้รับไฟ -> รอ 2 วินาที -> สั่งรีเลย์ปิดวงจร (กดปุ่ม) เป็นเวลา 2 วินาที -> สั่งรีเลย์เปิดวงจร (ปล่อยปุ่ม)

เพียงเท่านี้พอนำไปใช้คู่กับระบบลูกลอยตัดต่อน้ำเดิม ปั๊มบาดาลของเราก็จะทำงานแบบอัตโนมัติเต็มรูปแบบแล้วครับ! (ลูกลอยจ่ายไฟ -> Arduino กดปุ่มสตาร์ท -> น้ำเต็มลูกลอยตัดไฟ) วิธีนี้สามารถประยุกต์ใช้กับตู้คอนโทรลปั๊มได้ทุกชนิดเลย ไม่ว่าจะเป็นไฟ 1, 2 หรือ 3 เฟส เพราะปุ่มสตาร์ทมีกลไกแบบเดียวกันหมดครับ

การเขียนโปรแกรม (Programming)

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

Arduino Code Screenshot
View more (ดูโค้ดและคัดลอก / Copy Code)

แค่ก๊อปปี้โค้ดภาษา C/C++ ด้านล่างนี้ไปใส่ในโปรแกรม Arduino IDE แล้วกดแฟลชลงบอร์ด Nano ก็เป็นอันเสร็จเรียบร้อยครับ (ผมทำการเพิ่มเครื่องหมาย ; ต่อท้ายการประกาศตัวแปรให้สมบูรณ์แล้วเพื่อกันคอมไพล์ไม่ผ่านครับ)

int RELAY1 = 11; int RELAY2 = 13; void setup() { pinMode(RELAY1, OUTPUT); pinMode(RELAY2, OUTPUT); digitalWrite(RELAY1, LOW); digitalWrite(RELAY2, LOW); delay(2000); digitalWrite(RELAY1, HIGH); digitalWrite(RELAY2, HIGH); delay(2000); digitalWrite(RELAY1, LOW); digitalWrite(RELAY2, LOW); } void loop() {}

การต่อวงจรไฟฟ้า (Circuit)

🚨 คำเตือนเรื่องความปลอดภัย: โปรดใช้ความระมัดระวังขั้นสูงสุดขณะประกอบวงจรนี้ เพราะคุณกำลังยุ่งกับไฟบ้าน (AC) ครับ การแค่สับเบรกเกอร์ปิดไฟอาจไม่เพียงพอ เพราะคาปาซิเตอร์ลูกใหญ่ในกล่องยังคงเก็บประจุไฟที่รุนแรงเอาไว้ได้ ต้องทำการคายประจุ (Discharge) ให้เรียบร้อยก่อนลงมือทำเสมอ

Relay Connection Point
View more (ดูแผนผังวงจรและภาพประกอบเพิ่มเติม)

คุณสามารถดูภาพวาดประกอบด้านล่างนี้เพื่อเป็นแนวทางในการต่อสายไฟครับ สิ่งสำคัญคือ ต้องจ่ายไฟให้โมดูลรีเลย์ผ่านพาวเวอร์ซัพพลาย (SMPS) โดยตรง ห้ามดึงไฟจากขา 5V ของบอร์ด Arduino Nano เด็ดขาด เพราะกระแสไฟของบอร์ดมีจำกัดและไม่พอที่จะขับรีเลย์ครับ โดยให้นำสายไฟฝั่ง AC ของ SMPS ไปต่อเข้ากับเทอร์มินอล P (ผ่าน MCB) และ N ภายในกล่องสตาร์ทเตอร์ได้เลย

Microcontroller Circuit Doodle

เมื่อประกอบทุกอย่างเสร็จเรียบร้อย ภายในกล่องสตาร์ทเตอร์ของคุณจะมีหน้าตาประมาณภาพด้านล่างนี้ครับ

Inside the Submersible Pump Starter

บทสรุป (Conclusion)

Final Setup Outside

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

สร้างระบบ Smart Home & Automation ของคุณเอง!

หากคุณชื่นชอบการนำบอร์ดอิเล็กทรอนิกส์มาแก้ปัญหาในบ้านแบบนี้ หรือกำลังมองหาอุปกรณ์สำหรับทำโปรเจกต์ใหม่ๆ แวะมาพูดคุยและหาของเล่นสาย Tech กับเราได้เลยครับ!

คำเตือน: เนื้อหานี้เป็นการสรุปและเรียบเรียงจากบทความต้นฉบับภาษาอังกฤษ ข้อมูลฉบับภาษาไทยอาจมีความคลาดเคลื่อนบางประการจากการตีความหรือย่อเนื้อหา โปรดอ้างอิงข้อมูลการเดินสายไฟจาก Schematic ของต้นฉบับ
อ้างอิงจาก (References):

แท็ก


Blog posts

เข้าสู่ระบบ

ลืมรหัสผ่านใช่ไหม?

ยังไม่มีบัญชีใช่ไหม?
สร้างบัญชี