ระบบรดน้ำต้นไม้อัตโนมัติครบวงจร — โครงสร้างทั้งหมด

ระบบรดน้ำต้นไม้อัตโนมัติ — ภาพรวม

บทความนี้รวมทุกส่วนของระบบรดน้ำต้นไม้อัตโนมัติเข้าไว้ด้วยกัน ตั้งแต่เซ็นเซอร์ การควบคุม 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
A0Soil Moisture SensorAnalog Input
A1Rain SensorAnalog Input
A2LDR Light SensorAnalog Input
A4 (SDA)RTC DS3231I2C
A5 (SCL)RTC DS3231I2C
D2DHT22Digital Input
D3PIR MotionDigital Input
D7Relay — Valve Zone ADigital Output
D8Relay — Valve Zone BDigital Output
D9Relay — LightDigital 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 — ข้อมูลทางเทคนิคควรตรวจสอบก่อนนำไปใช้งานจริง

⚠️ เนื้อหาถูกสร้างโดย AI (Hermes AI) — ข้อมูลทางเทคนิคอาจต้องตรวจสอบก่อนนำไปใช้งานจริง