ระบบรดน้ำต้นไม้อัตโนมัติ — ภาพรวม
บทความนี้รวมทุกส่วนของระบบรดน้ำต้นไม้อัตโนมัติเข้าไว้ด้วยกัน ตั้งแต่เซ็นเซอร์ การควบคุม Source Code จนถึงตู้ควบคุม
แผนผังระบบ
┌──────────────────────┐
│ 12V DC Adapter 5A │
└────────┬─────────────┘
│
┌────┴────┐
│ Bus Bar │
│ 12V + │
└────┬────┘
│
├──── [Step-Down 12V→5V] ── [Arduino Uno]
│ │
├──── [Relay 1] ─── [Solenoid Valve 1 (Zone A)]
│ │
├──── [Relay 2] ─── [Solenoid Valve 2 (Zone B)]
│ │
├──── [Relay 3] ─── [LED Strip 12V]
│
┌────┴────┐
│ Bus Bar │
│ GND │
└─────────┘
Arduino Pin Usage
| Pin | อุปกรณ์ | Type |
|---|---|---|
| A0 | Soil Moisture Sensor | Analog Input |
| A1 | Rain Sensor | Analog Input |
| A2 | LDR Light Sensor | Analog Input |
| A4 (SDA) | RTC DS3231 | I2C |
| A5 (SCL) | RTC DS3231 | I2C |
| D2 | DHT22 | Digital Input |
| D3 | PIR Motion | Digital Input |
| D7 | Relay — Valve Zone A | Digital Output |
| D8 | Relay — Valve Zone B | Digital Output |
| D9 | Relay — Light | Digital Output |
Source Code — Full System
#include "RTClib.h"
#include "DHT.h"
RTC_DS3231 rtc;
DHT dht(2, DHT22);
const int MOISTURE = A0;
const int RAIN = A1;
const int LDR_PIN = A2;
const int VALVE_A = 7;
const int VALVE_B = 8;
const int LIGHT = 9;
int moistureDry = 700, moistureWet = 250;
int lightOnThreshold = 400;
int rainDryThreshold = 600;
void setup() {
Serial.begin(9600);
if (!rtc.begin()) while(1);
dht.begin();
pinMode(VALVE_A, OUTPUT); digitalWrite(VALVE_A, HIGH);
pinMode(VALVE_B, OUTPUT); digitalWrite(VALVE_B, HIGH);
pinMode(LIGHT, OUTPUT); digitalWrite(LIGHT, HIGH);
}
void loop() {
DateTime now = rtc.now();
int moist = analogRead(MOISTURE);
int rain = analogRead(RAIN);
int light = analogRead(LDR_PIN);
float h = dht.readHumidity();
float t = dht.readTemperature();
// Auto Light
if (light < lightOnThreshold) digitalWrite(LIGHT, LOW);
else digitalWrite(LIGHT, HIGH);
// Watering logic
int moistPct = map(moist, moistureDry, moistureWet, 0, 100);
moistPct = constrain(moistPct, 0, 100);
bool isRaining = (rain < 400);
int hourMin = now.hour() * 60 + now.minute();
// รดน้ำเฉพาะเวลา 6:00 และ 18:00 เท่านั้น
if ((hourMin == 360 || hourMin == 1080) && moistPct < 40 && !isRaining) {
digitalWrite(VALVE_A, LOW);
delay(180000); // 3 นาที
digitalWrite(VALVE_A, HIGH);
}
delay(60000); // loop ทุก 1 นาที
}
ตู้ควบคุม DC 12V
- ใช้ กล่องพลาสติกกันน้ำ IP65 ขนาด 300x250x150mm
- ติดตั้ง Din Rail สำหรับ Relay Module, Terminal Block, Bus Bar
- เจาะรูระบายอากาศ พร้อมพัดลม DC 12V ระบายความร้อน
- เดินสายด้วย Cable Gland PG9/PG11 เข้า-ออกตู้
Safety: ติดตั้ง Breaker/Fuse ก่อนทุกวงจรย่อย ใช้ Cable Tie จัดระเบียบสายไฟภายในตู้ ติด Label ทุกเส้น
💰 ราคาประมาณการ
| อุปกรณ์ | ราคา |
|---|---|
| Solenoid Valve 1/2" 12V | ~250-400 บาท |
| Solenoid Valve 3/4" 12V | ~300-500 บาท |
| ปั๊ม Diaphragm 12V | ~300-600 บาท |
| ปั๊ม Submersible 12V | ~150-300 บาท |
| RTC DS3231 | ~40-80 บาท |
| ท่อPVC 1/2" + ข้อต่อ | ~100-300 บาท |
| หัวพ่นน้ำ/สายน้ำหยด | ~50-200 บาท |
| Adapter 12V 5A (รดน้ำ) | ~200-300 บาท |
🔋 ทางเลือกใช้แบตเตอรี่
ระบบรดน้ำใช้ไฟมากสุดตอนเปิดวาล์ว/ปั๊ม (~1-2A) เหมาะกับ แบต 12V 7Ah (~350 บาท) + Solar Panel 20W (~500 บาท) — ใช้ได้ 2-3 วันต่อการชาร์จ 1 ครั้ง
หรือใช้ แบต LiFePO4 12V 10Ah (~1,000 บาท) — น้ำหนักเบา อายุใช้งานยาวนานกว่าแบตตะกั่วกรด
คำนวณง่ายๆ: ถ้ารดน้ำวันละ 30 นาที กระแส 2A → ใช้ไฟ 1Ah/วัน แบต 7Ah อยู่ได้ 5-7 วัน
⚠️ หมายเหตุ: เนื้อหานี้ค้นคว้าและเรียบเรียงโดย Hermes AI — ข้อมูลทางเทคนิคควรตรวจสอบก่อนนำไปใช้งานจริง