โปรเจกต์ Watering Pump
วิธีการรดน้ำต้นเลมอนด้วย Arduino PRO MINI, RTC และ Pump
วิธีการรดน้ำต้นเลมอนด้วย Arduino PRO MINI, RTC และ Pump
ผมต้องการระบบสำหรับรดน้ำต้นมะนาวของผม โดยมีการปรับตั้งค่าระยะเวลาและความถี่ในการรดน้ำผ่านทางฮาร์ดแวร์
ในตอนแรกผมลองใช้ Moist sensor แต่เนื่องจากกระถางมีขนาดใหญ่มาก ผลลัพธ์จึงออกมาไม่ค่อยดีนัก นอกจากนี้ปัญหาคือการรดน้ำต้นไม้ในช่วงฤดูหนาว ซึ่งเราต้องนำต้นไม้เข้ามาไว้ในบ้านและไม่มีน้ำจากน้ำฝนมาช่วย
ดังนั้นผมจึงตัดสินใจสร้างระบบที่ทำงานตามตารางเวลาการรดน้ำ โดยสั่งงานผ่าน Mini pump ขนาด 12V การตั้งค่าเวลาทำได้ผ่าน Dip-switch และควบคุมตารางเวลาด้วย Real time clock (RTC)
ในการประกอบชิ้นส่วนทั้งหมด ผมเริ่มจากการใช้ Breadboard แต่ในที่สุดผมเลือกที่จะทำ Custom PCB ดังที่แสดงด้านล่างนี้
ข้อควรระวังที่สำคัญ:
1. ตามที่แสดงในรูป ให้วาง Pump (C) ไว้ ต่ำกว่า ระดับน้ำ ไม่เช่นนั้น Pump จะไม่ทำงาน
2. ระดับของปลายท่อระบายน้ำ (A) จะต้องอยู่สูงกว่าระดับน้ำสูงสุดในถัง (B)
3. วางถังน้ำไว้ในกระบะรอง เพื่อที่ว่าหากเกิดข้อผิดพลาดขึ้น น้ำจะได้ไม่ท่วมบ้านของคุณ!!!
แม้ว่าผมจะต้องการใช้ Pump เพียงตัวเดียว แต่ผมได้ออกแบบ PCB ให้มีสองวงจรเพื่อสั่งงาน Pump สองตัวแยกกัน ดังนั้นผมจึงไม่ได้ประกอบชิ้นส่วนสำหรับวงจรที่สอง เช่น MOS FET, Diode, Connector,... ดังที่คุณเห็นในภาพด้านล่าง (มุมมองด้านล่าง)
ในมุมมองด้านบน คุณจะเห็น Display และ DIP switch โดย Display เชื่อมต่อผ่าน Interface I2C
คุณยังสามารถเห็น RTC ซึ่งเชื่อมต่อผ่าน Interface I2C เช่นกัน
ปุ่มกด DISP.ON ต้องเชื่อมต่อกับ Display เพื่อเปิดไฟหน้าจอโดยใช้คู่หน้าสัมผัสที่มีอยู่ คุณยังสามารถเชื่อมต่อคู่ที่สองเพื่อให้หน้าจอติดสว่างตลอดเวลาหรือเชื่อมต่อกับสวิตช์ก็ได้

ผมใช้รูเจาะทั้งสี่รู (4mm) เพื่อยึด Display โดยใช้ Nylon spacers
ทางด้านขวาจะมี Screw terminals สองชุดสำหรับแหล่งจ่ายไฟ 5V= และ 12V= เตรียมไว้สำหรับการขยายระบบในอนาคต
ที่ด้านล่างมี Screw terminals แบบ 4 pins สองชุด ชุดทางด้านซ้ายใกล้กับ Diode D1 ใช้สำหรับเชื่อมต่อ Pump 1 (Arduino Pin D11)
ทางด้านซ้ายมี Screw terminals แบบ 4 pins สองชุด และแบบ 2 pins หนึ่งชุด โดยแบบ 4 pins สองชุดใช้สำหรับเชื่อมต่อ Display และ RTC ในขณะที่ Screw terminal แบบ 2 pins ใช้สำหรับเชื่อมต่อ PCB เข้ากับ Arduino Pin A4 (SDA) และ A5 (SCL) สำหรับการสื่อสารแบบ I2C
นอกจากนี้ยังมี Output สำหรับ Buzzer ซึ่งไม่ได้ใช้ในโปรเจกต์นี้ โดยเชื่อมต่อโดยตรงกับ Pin D10 ของ Arduino
ในภาพถัดไปจะแสดงชิ้นส่วนทั้งหมดที่เชื่อมต่อเข้ากับบอร์ด PCB
แน่นอนว่าหลังจากที่คุณเชื่อมต่อ Arduino Pin A4 และ A5 เข้ากับ Screw terminal แบบ 2 pins แล้ว คุณต้องเสียบบอร์ด Arduino ลงบน PCB ตามที่คุณเห็นในภาพถัดไป ผมใช้ Header ขนาด 12 Positions สองแถวเพื่อเสียบบอร์ด Arduino:

ในการตั้งค่าความถี่และระยะเวลาการรดน้ำ คุณควรใช้ Dip-switch โดยทำตามคำแนะนำที่ระบุไว้ในส่วน Header ของ Code
ตัวอย่างเช่น ในภาพ Lower side view การรดน้ำถูกตั้งค่าไว้ที่ 10 วินาที (J1=0, J2=0, J3=0) ทุกๆ 3 วัน (J4=0, J5=1, J6=0)
ผมใช้สวิตช์เพียง 6 จาก 8 ตัว คุณสามารถใช้สวิตช์ที่เหลืออีกสองตัวสำหรับเงื่อนไขเพิ่มเติม หรือเพื่อตั้งค่า Pump ตัวที่สอง (เพื่อปิด/เปิดการทำงานของ Pump ตัวที่สอง หรือเลือกตัวใดตัวหนึ่งหรือทั้งสองตัว, เพื่อตั้งค่าการหน่วงเวลาระหว่างการทำงานของ Pump ทั้งสองตัว,...)
คุณสามารถใช้โปรเจกต์นี้เพื่อควบคุมไฟ, Motor, Heating resistors หรืออุปกรณ์อื่นๆ ที่ต้องการการตั้งเวลาและแรงดันไฟฟ้ากระแสตรง
ข้อจำกัดเพียงอย่างเดียวคือ MOS-FET โดยผมใช้ IRF520 ซึ่งมีกระแส Drain ต่อเนื่องสูงสุด 9.2A (ภายใต้การระบายความร้อนที่เหมาะสม!!!!) คุณสามารถเพิ่มแรงดันไฟฟ้าได้เช่นกัน โดยแรงดัน Drain-source สูงสุดคือ 100V
แต่คุณต้องระมัดระวังอย่างมาก: แรงดันไฟฟ้าสูง = อันตรายสูง!
นอกจากนี้ คุณต้องตรวจสอบคุณสมบัติของ Voltage regulator เพื่อหลีกเลี่ยงความเสียหายที่จะเกิดกับบอร์ด Arduino และตัว Regulator เอง หากใช้ L7805CV คุณสามารถใช้แรงดันไฟฟ้าได้สูงสุดถึง 24V=
หากคุณต้องการควบคุมอุปกรณ์ด้วยไฟฟ้ากระแสสลับ คุณสามารถเปลี่ยนจาก MOS-FET เป็น TRIAC แทนได้ ที่นี่ คุณจะพบข้อมูลเพิ่มเติม
สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้