Smart Garden — ระบบสวนอัจฉริยะครบวงจร
โครงการนี้รวมทุกองค์ประกอบของสมาร์ทโฮม DC 12V เข้าด้วยกัน — ระบบรดน้ำอัตโนมัติ ระบบเปิดไฟอัตโนมัติ และการตรวจสอบสภาพแวดล้อม
รายการอุปกรณ์
- Arduino Uno R3 — 1 ชุด
- Arduino Screw Shield — 1 ชุด (ต่อสายสะดวก)
- Relay Module 4ch 12V — 1 ชุด
- DS3231 RTC Module — 1 ชุด
- DHT22 — 1 ชุด (วัดอุณหภูมิ/ความชื้น)
- Soil Moisture Sensor (Capacitive) — 2 ชุด
- Rain Sensor — 1 ชุด
- LDR + 10k Resistor — 1 ชุด
- PIR HC-SR501 — 1 ชุด
- LED Strip 12V (Warm White 2m) — 1 ม้วน
- Solenoid Valve 12V 1/2" — 2 ชุด
- Adapter 12V 5A — 1 ชุด
- Buck Converter LM2596 — 1 ชุด
- IRLZ44N MOSFET + Heatsink — 1 ชุด
- ตู้ IP65 300x250x150mm — 1 ชุด
- สายไฟ 1.5mm² + 0.5mm² อย่างละ 10m
- Terminal Block, Bus Bar, Fuse Holder, Cable Gland
Source Code — Main Program
#include "RTClib.h"
#include "DHT.h"
RTC_DS3231 rtc;
DHT dht(2, DHT22);
// Pin Mapping
const int MOIST_A = A0;
const int MOIST_B = A1;
const int RAIN = A2;
const int LDR = A3;
const int VALVE_A = 7;
const int VALVE_B = 8;
const int LIGHT_RELAY = 9;
const int LED_PWM = 10;
// Settings
int lightOnTime = 1050; // 17:30
int lightOffTime = 1320; // 22:00
int waterHour[] = {6, 18};
int waterDuration = 180; // 3 นาที
void setup() {
Serial.begin(9600);
if (!rtc.begin()) while(1);
if (!rtc.isrunning()) rtc.adjust(DateTime(F(__DATE__),F(__TIME__)));
dht.begin();
pinMode(VALVE_A, OUTPUT); digitalWrite(VALVE_A, HIGH);
pinMode(VALVE_B, OUTPUT); digitalWrite(VALVE_B, HIGH);
pinMode(LIGHT_RELAY, OUTPUT); digitalWrite(LIGHT_RELAY, HIGH);
pinMode(LED_PWM, OUTPUT); analogWrite(LED_PWM, 0);
}
void loop() {
DateTime now = rtc.now();
int hm = now.hour() * 60 + now.minute();
// Auto Light
if (hm >= lightOnTime || hm < lightOffTime) {
digitalWrite(LIGHT_RELAY, LOW);
analogWrite(LED_PWM, 128); // 50% brightness
} else {
digitalWrite(LIGHT_RELAY, HIGH);
analogWrite(LED_PWM, 0);
}
// Auto Water
int moistA = analogRead(MOIST_A);
int moistB = analogRead(MOIST_B);
int rain = analogRead(RAIN);
float h = dht.readHumidity();
for (int w : waterHour) {
if (now.hour() == w && now.minute() == 0) {
if (rain < 400) {
Serial.println("🌧️ ฝนตก งดรดน้ำ");
} else {
if (moistA > 500) {
Serial.println("💧 Zone A รดน้ำ");
digitalWrite(VALVE_A, LOW);
delay(waterDuration * 1000);
digitalWrite(VALVE_A, HIGH);
}
if (moistB > 500) {
Serial.println("💧 Zone B รดน้ำ");
digitalWrite(VALVE_B, LOW);
delay(waterDuration * 1000);
digitalWrite(VALVE_B, HIGH);
}
}
}
}
reportStatus(moistA, moistB, rain, h, now);
delay(30000);
}
void reportStatus(int mA, int mB, int r, float h, DateTime n) {
Serial.print(n.hour()); Serial.print(":");
Serial.print(n.minute()); Serial.print(" | ");
Serial.print("Moist A:"); Serial.print(mA);
Serial.print(" B:"); Serial.print(mB);
Serial.print(" Rain:"); Serial.print(r);
Serial.print(" Humidity:"); Serial.print(h);
Serial.println("%");
}
งบประมาณโดยประมาณ
| อุปกรณ์ | ราคา |
|---|---|
| Arduino Uno R3 | 300 |
| Relay Module 4ch + Buck + RTC + Sensors | 500 |
| Solenoid Valve 1/2" ×2 | 600 |
| LED Strip 12V 2m + MOSFET | 250 |
| Adapter 12V 5A | 250 |
| ตู้ IP65 + สายไฟ + อุปกรณ์ประกอบ | 500 |
| รวม | ~2,400 บาท |
Tip: สำหรับมือใหม่ ให้เริ่มจากระบบรดน้ำโซนเดียวก่อน แล้วค่อยขยายเป็นหลายโซน ระบบเปิดไฟ ระบบ PIR ตามลำดับ — ไม่ต้องทำทุกอย่างพร้อมกัน
💰 ราคาประมาณการ
| อุปกรณ์ | ราคา |
|---|---|
| ตู้ IP65 300x250x150mm | ~200-400 บาท |
| Din Rail + อะแดปเตอร์ | ~50-100 บาท |
| Cable Gland PG9 (5 ตัว) | ~30-50 บาท |
| Bus Bar 12V 12P | ~30-60 บาท |
| สายไฟ 1.5mm² 10m | ~50-100 บาท |
| สายไฟ 0.75mm² 10m | ~30-60 บาท |
| Cable Tie + Label | ~20-50 บาท |
| Breaker/Fuse Box | ~50-100 บาท |
🔋 ทางเลือกใช้แบตเตอรี่
ทั้งตู้ควบคุมสามารถใช้ แบต 12V 7Ah (~350-500 บาท) แทน Adapter ได้เลย โดยต่อแบตเข้ากับ Buck Converter สำหรับ Arduino และจ่าย 12V ตรงให้ Relay/Valve
สำหรับระบบที่ต้องการ Solar Off-Grid:
- Solar Panel 20W: ~500-800 บาท
- Solar Charge Controller 10A: ~200-400 บาท
- แบต 12V 7Ah: ~350-500 บาท
- รวม ~1,050-1,700 บาท
ลงทุนครั้งเดียว ไม่ต้องจ่ายค่าไฟรายเดือน — คืนทุนใน ~1-2 ปี
⚠️ หมายเหตุ: เนื้อหานี้ค้นคว้าและเรียบเรียงโดย Hermes AI — ข้อมูลทางเทคนิคควรตรวจสอบก่อนนำไปใช้งานจริง