Smart Farm เริ่มต้นง่ายๆ: ทำไมต้องระบบรดน้ำอัตโนมัติ?
การให้น้ำแก่พืชอย่างแม่นยำถือเป็นหัวใจสำคัญของ การทำเกษตรแม่นยำ (Precision Agriculture) ปัญหาคลาสสิกของเกษตรกรและผู้ปลูกต้นไม้คือ การรดน้ำน้อยเกินไปจนพืชเหี่ยวเฉา หรือรดน้ำมากเกินไปจนดินแน่น รากเน่า และสิ้นเปลืองน้ำโดยใช่เหตุ
บทความนี้จะพาลงมือสร้าง ระบบรดน้ำอัตโนมัติขนาดเล็ก (Smart Watering System) ด้วยไมโครคอนโทรลเลอร์ Arduino และเซนเซอร์วัดความชื้นในดิน เหมาะสำหรับแปลงผักสวนครัว โรงเรือนขนาดเล็ก หรือไม้กระถาง โดยใช้งบประมาณเริ่มต้นเพียง 300 - 500 บาทเท่านั้น
1. รายการอุปกรณ์ที่ต้องใช้และงบประมาณ
| อุปกรณ์ | สเปกที่แนะนำ | บทบาทหน้าที่ | ราคาโดยประมาณ |
|---|---|---|---|
| Arduino Board | Arduino Uno R3 หรือ Nano | หน่วยประมวลผลกลางควบคุมระบบ | 120 - 180 บาท |
| เซนเซอร์วัดความชื้นดิน | Capacitive Soil Moisture Sensor v1.2 | วัดความชื้นในดิน (ทนการสึกกร่อน ไม่เป็นสนิม) | 35 - 50 บาท |
| Relay Module | 5V 1-Channel (พร้อม Optocoupler) | สวิตช์ตัด-ต่อไฟเลี้ยงปั๊มน้ำ | 25 - 40 บาท |
| ปั๊มน้ำขนาดเล็ก | Submersible Mini Pump 5V หรือ 12V | ปั๊มจุ่มส่งน้ำไปยังโคนต้นพืช | 40 - 70 บาท |
| สายยางและหัวน้ำหยด | สายไมโคร PE 4/7 มม. | ส่งน้ำจากปั๊มไปยังแปลงปลูก | 30 บาท |
| บอร์ดทดลองและสายไฟ | Breadboard + Jumper Wires (M2M, M2F) | สำหรับเชื่อมต่อวงจร | 40 บาท |
| แหล่งจ่ายไฟ | Adapter 5V 2A หรือ Power Bank | จ่ายไฟให้อุปกรณ์ทั้งหมด | 80 - 120 บาท |
💡 ข้อแนะนำเรื่องเซนเซอร์:
หลีกเลี่ยงเซนเซอร์ความชื้นดินแบบขั้วทองแดงสัมผัส (Resistive) เพราะเมื่อแช่ในดินที่มีกระแสไฟฟ้าไหลผ่าน ขั้วโลหะจะเกิดปฏิกิริยาออกซิเดชันผุกร่อนพังในเวลา 1-2 สัปดาห์ ให้เลือกใช้แบบ Capacitive ซึ่งวัดค่าความเหนี่ยวนำประจุ จึงทนทานต่อสารเคมีและแร่ธาตุในดินได้ยาวนานหลายปี
2. แผนผังการเชื่อมต่อวงจร (Wiring Diagram)
การต่อวงจรแบ่งเป็น 2 ส่วนหลัก คือ วงจรควบคุม (5V) และ วงจรกำลัง (Load ปั๊มน้ำ)
+-------------------------------------------------------------+
| ARDUINO BOARD |
| |
| 5V -----> VCC (Soil Sensor) & VCC (Relay) |
| GND -----> GND (Soil Sensor) & GND (Relay) |
| A0 <----- AOUT (Signal จาก Soil Moisture Sensor) |
| D7 -----> IN (Signal สั่งงาน Relay Switch) |
+-------------------------------------------------------------+
วงจร Relay & ปั๊มน้ำ
[ไฟบวก 5V/12V] --------> Relay Pin COM
Relay Pin NO --------> [ขั้วบวก (+) ปั๊มน้ำ]
[ไฟลบ/GND แหล่งจ่าย] ------------------------> [ขั้วลบ (-) ปั๊มน้ำ]
การตั้งค่าขั้ว Relay:
- ต่อสายไฟเข้าที่ช่อง COM (Common) และ NO (Normally Open) เพื่อให้วงจรเปิดปกติ และจะจ่ายไฟให้ปั๊มทำงานเฉพาะตอนที่ Arduino ส่งสัญญาณสั่งเปิดเท่านั้น
3. โค้ด Arduino Sketch ฉบับสมบูรณ์
คัดลอกโค้ดนี้ลงโปรแกรม Arduino IDE และอัปโหลดลงบอร์ดได้ทันที:
/*
Smart Farm DIY: Automatic Soil Watering System
บอร์ด: Arduino Uno / Nano
เซนเซอร์: Capacitive Soil Moisture Sensor (Analog A0)
รีเลย์: 5V Relay Module (Digital Pin 7)
*/
const int sensorPin = A0; // ขาสัญญาณจากเซนเซอร์ความชื้น
const int relayPin = 7; // ขาสั่งงานรีเลย์เปิด-ปิดปั๊ม
// ค่า Calibration ที่ได้จากการทดสอบเซนเซอร์
const int AIR_VALUE = 580; // ค่าที่อ่านได้เมื่อแห้งสนิทในอากาศ (ความชื้น 0%)
const int WATER_VALUE = 260; // ค่าที่อ่านได้เมื่อจุ่มน้ำ (ความชื้น 100%)
// เกณฑ์ความชื้นสำหรับสั่งรดน้ำ (%)
const int DRY_THRESHOLD = 40; // ต่ำกว่า 40% ให้เปิดปั๊มรดน้ำ
const int WET_THRESHOLD = 70; // รดจนถึง 70% จึงสั่งหยุด
void setup() {
Serial.begin(9600);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, HIGH); // รีเลย์ส่วนใหญ่เป็น Active LOW (HIGH = ปิด)
Serial.println("=== Smart Farm Watering System Started ===");
}
void loop() {
int rawValue = analogRead(sensorPin);
// แปลงค่า Raw Analog เป็นเปอร์เซ็นต์ความชื้น (0 - 100%)
int moisturePercent = map(rawValue, AIR_VALUE, WATER_VALUE, 0, 100);
moisturePercent = constrain(moisturePercent, 0, 100);
Serial.print("Raw Value: ");
Serial.print(rawValue);
Serial.print(" | Moisture: ");
Serial.print(moisturePercent);
Serial.println("%");
// ตรรกะควบคุมการรดน้ำ
if (moisturePercent < DRY_THRESHOLD) {
Serial.println(">>> ดินแห้งเกินไป: กำลังเปิดปั๊มรดน้ำ...");
digitalWrite(relayPin, LOW); // สั่งเปิดรีเลย์ (ปั๊มทำงาน)
delay(5000); // รดน้ำต่อเนื่อง 5 วินาที
digitalWrite(relayPin, HIGH);// หยุดพักเพื่อให้น้ำซึมลงดิน
} else if (moisturePercent >= WET_THRESHOLD) {
Serial.println(">>> ดินมีความชื้นพอเหมาะ: ปิดปั๊มน้ำ");
digitalWrite(relayPin, HIGH); // สั่งปิดรีเลย์
}
// หน่วงเวลาตรวจสอบทุกๆ 10 วินาที เพื่อยืดอายุการใช้งานของเซนเซอร์
delay(10000);
}
4. วิธีคาลิเบรต (Calibration) หาค่าความชื้นที่แท้จริง
เซนเซอร์แต่ละตัวมีค่าความต้านทานที่คลาดเคลื่อนกันเล็กน้อย ก่อนนำไปปักลงดินควร Calibrate 2 จุดเสมอ:
- หาค่าแห้งสุด (Air Value): ถือเซนเซอร์ไว้ในอากาศแห้ง สังเกตค่า
rawValueบน Serial Monitor (มักจะอยู่ระหว่าง 520 - 620) - หาค่าเปียกสุด (Water Value): นำส่วนปลายเซนเซอร์จุ่มลงในแก้วน้ำเปล่า (ระวังอย่าให้โดนแผงวงจรด้านบน) สังเกตค่าบนหน้าจอ (มักจะอยู่ระหว่าง 240 - 300)
- นำค่าทั้งสองไปใส่ในตัวแปร
AIR_VALUEและWATER_VALUEในโค้ด
5. ข้อแนะนำในการติดตั้งใช้งานจริงในแปลงเกษตร
- การกันน้ำแผงวงจร: ควรติดตั้ง Arduino และ Relay ใน กล่องพักสายไฟกันน้ำ (Waterproof Junction Box IP65) เจาะรูร้อยสายไฟออกด้านล่างเพื่อกันน้ำฝนไหลย้อน
- ตำแหน่งปักเซนเซอร์: ปักเซนเซอร์ลงไปในดินประมาณ 2/3 ของความยาวแผ่น ห่างจากโคนต้นประมาณ 5 - 10 ซม. และต้องไม่อยู่ใต้หัวหยดน้ำโดยตรง เพื่อให้วัดค่าความชื้นของเนื้อดินแท้จริง
- การอัปเกรดเป็น IoT ในอนาคต: สามารถเปลี่ยนบอร์ดเป็น ESP32 หรือ ESP8266 (NodeMCU) เพื่อส่งข้อความแจ้งเตือนสถานะการรดน้ำเข้า LINE Notify หรือดูผ่านแดชบอร์ดมือถือได้แบบเรียลไทม์
สรุป
ระบบรดน้ำอัตโนมัติด้วย Arduino เป็นโปรเจกต์ Smart Farm พื้นฐานที่คุ้มค่า ช่วยให้พืชได้รับน้ำในปริมาณที่เหมาะสมตลอดเวลา ไม่ต้องกังวลเมื่อต้องเดินทางไกล และยังเป็นรากฐานสำคัญในการต่อยอดไปสู่ระบบสมาร์ตฟาร์มเต็มรูปแบบ เช่น การควบคุมการให้ปุ๋ยไปพร้อมระบบน้ำ และการควบคุมอุณหภูมิโรงเรือนต่อไป