กลับไปหน้ารวมไฟล์
automatic-water-pump-controller-using-arduino-uno-a5e018.md

โปรเจคนี้มันอาจจะดูยากนิดนึง แต่พี่จะอธิบายให้เข้าใจง่ายๆ แบบเด็กช่างนะ

มุมมองของโปรเจค

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: แสดงสถานะของระบบและข้อมูลระดับน้ำ
  • สายจัมเปอร์: ใช้เชื่อมต่ออุปกรณ์ทั้งหมดเข้าด้วยกัน

แผนภาพวงจร

CIRCUIT DIAGRAM
ให้ต่อสายตามแผนภาพวงจรนี้เลยน้อง

ในรูปนี้ใช้ 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 :-

แผนภาพขาของจอแสดงผล 16x2
VSS - ต่อกับ GND VCC - ต่อกับ 5v VEE/VO - ต่อกับขากลางของโพเทนชิโอมิเตอร์ (Potentiometer) ส่วนขาอีกสองข้างของโพเทนชิโอมิเตอร์ให้ต่อข้างนึงกับ 5v ของ Arduino Uno และอีกข้างกับ Gnd RS - ต่อกับ D2 RW - ต่อกับ Gnd E - ต่อกับ D3 D0 - ต่อกับ Gnd/ไม่ต้องต่อก็ได้ D1 - ต่อกับ Gnd/ไม่ต้องต่อก็ได้ D2 - ต่อกับ Gnd/ไม่ต้องต่อก็ได้ D3 - ต่อกับ Gnd/ไม่ต้องต่อก็ได้

เราไม่ต่อขา (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 นี้เหมาะมากสำหรับคนที่ชอบเล่นอิเล็กทรอนิกส์และอยากได้เครื่องมืออัตโนมัติในบ้านที่ใช้งานได้จริงและสนุก! ไปลองทำกันเลย สู้งานนะน้อง!

วิดีโอการทำงาน:-

Kiyani's Lab

หวังว่าน้องๆ จะสนุกกับโปรเจคนี้และได้ความรู้ไปปรับใช้กันนะครับ

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "1x Arduino IDE"
author: "shassandanish1"
category: "Home Automation"
components:
  - "1x Arduino UNO"
  - "1x Wire Stripper & Cutter, 18-10 AWG / 0.75-4mm² Capacity Wires"
  - "1x Jumper wires (generic)"
  - "1x Slide Switch"
  - "1x Solder Wire, Lead Free"
  - "1x Tactile Switch, Top Actuated"
  - "1x RGB LCD Shield Kit, 16x2 Character Display"
  - "1x Ultrasonic Sensor - HC-SR04 (Generic)"
  - "1x Breadboard (generic)"
  - "1x Soldering iron (generic)"
  - "1x Resistor 1k ohm"
description: "ระบบนี้จะสั่งเปิด/ปิดปั๊มน้ำอัตโนมัติโดยคำนวณจากข้อมูลระยะทางจาก Ultrasonic Sensor แบบตึงๆ แล้วแสดงสถานะปั๊มและโหมดการทำงานบนหน้าจอ LCD ให้เห็นชัดๆ งานเทพๆ วัยรุ่นจัดไป!"
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles:
  - "https://projects.arduinocontent.cc/c3c8c9af-80bb-49ac-b2eb-a749c7d971f2.ino"
encryptedPayload: "U2FsdGVkX1/iqJR8lzytNq0PAAbLQSozFnqWark5ClWbeul37xtNX2mQ+1fVFK58ZYjpe0JUafJpn4irYBBfNle5P1vfSF0PEVFF0xQpYfo="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/automatic-water-pump-controller-using-arduino-uno-a5e018_cover.jpg"
lang: "en"
likes: 1
passwordHash: "880523556d8f7ac7e557262ae1b295f08b02c9e8b131d417821db5cbc5ffef09"
price: 1120
seoDescription: "Automatic Water Pump Controller project using Arduino Uno and Ultrasonic Sensor to monitor pump status and MODE on an LCD Screen."
tags:
  - "project"
  - "water"
  - "arduino"
  - "home automation"
  - "smart appliances"
  - "tracking"
  - "pump"
  - "tech"
  - "kids"
  - "communication"
  - "data collection"
  - "lcd"
  - "monitoring"
  - "science project"
title: "ระบบสั่งงานปั๊มน้ำอัตโนมัติด้วย Arduino Uno งานง่ายแต่หล่อ!"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/bUqXqDCKpgI"
views: 23644