Project 01 • Smart Irrigation System

ระบบรดน้ำต้นไม้อัจฉริยะ

หน้าเว็บตัวอย่างโครงงาน IoT สำหรับนักศึกษา ตั้งแต่การวิเคราะห์ปัญหา ออกแบบ Requirement เลือกอุปกรณ์ ต่อวงจร เขียนโปรแกรม สร้าง Dashboard ทดสอบระบบ จนถึงการส่งมอบ Prototype ที่ใช้งานได้จริง

2–4 คนขนาดทีมแนะนำ
3–5 สัปดาห์ระยะเวลาพัฒนา
Prototypeใช้ทดสอบจริงได้
Smart Plant Monitor
Soil Moisture Control
AUTO
Soil Moisture

32%

Pump

ON

Last Watering

08:30

Network

Blynk

ดินแห้งกว่าค่ากำหนด • สั่งปั๊มน้ำอัตโนมัติ
Project Overview

แนวคิดโครงงาน

โครงงานนี้พัฒนาระบบตรวจวัดความชื้นในดินแบบต่อเนื่อง และควบคุมการรดน้ำต้นไม้โดยอัตโนมัติ เมื่อค่าความชื้นต่ำกว่าเกณฑ์ที่กำหนด ระบบจะสั่งเปิดปั๊มน้ำผ่านรีเลย์ จากนั้นบันทึกสถานะและเวลาในการรดน้ำ พร้อมแสดงผลผ่าน Dashboard หรือแอปพลิเคชัน เช่น Blynk, ThingSpeak หรือ Web Dashboard

Soil Moisture Relay + Pump ESP32 / Arduino Dashboard

ข้อมูลสรุปโครงงาน

ระดับความยากเริ่มต้น–กลาง
งบประมาณประมาณ 500–1,500 บาท
เหมาะกับPrototype ใช้งานจริง
ผลลัพธ์หลักรดน้ำอัตโนมัติ
ดูรายการส่งงาน
System Infographic

แผนภาพอธิบายการทำงานภาพรวมของระบบ

ภาพด้านล่างแสดงลำดับการทำงานของระบบรดน้ำต้นไม้อัจฉริยะ ตั้งแต่การตรวจวัดความชื้นในดิน การประมวลผลด้วย ESP32/Arduino การสั่งรีเลย์และปั๊มน้ำ ไปจนถึงการแสดงผลบน Dashboard

แผนภาพอธิบายการทำงานภาพรวมของระบบรดน้ำต้นไม้อัจฉริยะ
Prototype Box Design

แบบกล่องควบคุมระบบรดน้ำต้นไม้อัจฉริยะ

ภาพนี้แสดงแนวคิดการออกแบบกล่องต้นแบบสำหรับควบคุมระบบรดน้ำต้นไม้อัจฉริยะ โดยรวมส่วนแสดงผล OLED, ไฟ LED แสดงสถานะ, Buzzer, บอร์ด ESP32/NodeMCU, รีเลย์ และพอร์ตเชื่อมต่อเซ็นเซอร์ความชื้นดินกับปั๊มน้ำ เพื่อให้นักศึกษานำไปใช้เป็นแนวทางออกแบบ Prototype ที่เป็นระเบียบและใช้งานจริงได้

แบบกล่องควบคุมระบบรดน้ำต้นไม้อัจฉริยะ IoT Prototype
ส่วนตรวจวัดความชื้น

เชื่อมต่อ Soil Moisture Sensor จากภายนอกกล่องผ่านพอร์ตเฉพาะ เพื่อวัดค่าความชื้นในดินแบบ Real-time และส่งข้อมูลเข้าสู่บอร์ดควบคุม

ส่วนแสดงผลและแจ้งเตือน

แสดงค่าความชื้น สถานะปั๊มน้ำ และโหมดการทำงานบน OLED พร้อมไฟ LED สีแดง/เหลือง/เขียว และ Buzzer เพื่อแจ้งเตือนสถานะดินแห้ง ปกติ หรือชื้น

ส่วนควบคุมและเชื่อมต่อ Dashboard

ใช้ ESP32/NodeMCU ควบคุมรีเลย์และปั๊มน้ำ พร้อมเชื่อมต่อ Wi‑Fi เพื่อส่งค่าความชื้นและสถานะระบบขึ้น Dashboard สำหรับติดตามผลย้อนหลัง

ปัญหาที่ต้องการแก้ไข

การรดน้ำต้นไม้ด้วยมือมักเกิดปัญหารดน้ำมากเกินไปหรือน้อยเกินไป ผู้ดูแลไม่สามารถเฝ้าดูสภาพดินได้ตลอดเวลา โดยเฉพาะช่วงวันหยุดหรือช่วงที่ไม่มีผู้ดูแล ส่งผลให้พืชขาดน้ำ รากเน่า หรือสิ้นเปลืองน้ำโดยไม่จำเป็น

แนวทางแก้ปัญหา

ใช้เซ็นเซอร์วัดความชื้นในดินเพื่อตรวจวัดค่าจริง แล้วใช้ไมโครคอนโทรลเลอร์ตัดสินใจเปิด–ปิดปั๊มน้ำตามเงื่อนไข พร้อมส่งข้อมูลไปยัง Dashboard เพื่อให้ผู้ใช้ดูสถานะย้อนหลัง ตั้งค่าเกณฑ์ และตรวจสอบการทำงานได้สะดวก

Objectives

วัตถุประสงค์ของโครงงาน

ตรวจวัดความชื้น

อ่านค่าความชื้นในดินแบบต่อเนื่อง และแปลงค่าให้อยู่ในรูปเปอร์เซ็นต์เพื่อเข้าใจง่าย

ควบคุมปั๊มน้ำ

สั่งเปิด–ปิดปั๊มน้ำผ่านรีเลย์ตามเกณฑ์ความชื้นที่กำหนด ลดการรดน้ำผิดเวลา

แสดงผลออนไลน์

แสดงสถานะดิน ปั๊มน้ำ เวลาในการรดน้ำ และกราฟค่าความชื้นผ่าน Dashboard

บันทึกและประเมินผล

เก็บข้อมูลย้อนหลัง วิเคราะห์ความสม่ำเสมอของการรดน้ำ และสรุปผลการทดลอง

Scope

ขอบเขตของโครงงาน

กำหนดขอบเขตให้เหมาะกับเวลาเรียนและงบประมาณ โดยเน้นระบบที่สามารถสาธิตได้จริง วัดค่าได้จริง และมีหลักฐานการทดสอบชัดเจน

รายการรายละเอียดที่ควรทำ
พื้นที่ทดลองกระถางต้นไม้ 1–3 กระถาง หรือแปลงทดลองขนาดเล็ก พร้อมระบุชนิดพืชและสภาพแวดล้อม
ค่าที่วัดค่าความชื้นดินแบบ Raw Analog และค่าที่แปลงเป็นเปอร์เซ็นต์ อาจเพิ่มอุณหภูมิ/ความชื้นอากาศเป็นฟังก์ชันเสริม
เงื่อนไขควบคุมหากความชื้นต่ำกว่าเกณฑ์ เช่น 35% ให้เปิดปั๊มน้ำ 5–10 วินาที แล้วหน่วงเวลาตรวจซ้ำเพื่อป้องกันปั๊มทำงานถี่เกินไป
การแสดงผลแสดงสถานะผ่าน Serial Monitor, จอ LCD/OLED หรือ Dashboard ออนไลน์ เช่น Blynk/ThingSpeak/Web Dashboard
ความปลอดภัยแยกส่วนไฟเลี้ยงปั๊มน้ำกับบอร์ดควบคุม ใช้กล่องกันน้ำ จัดสายไฟให้เรียบร้อย และไม่ให้วงจรสัมผัสน้ำโดยตรง
Hardware & Software

อุปกรณ์และเทคโนโลยีที่ใช้

หมวดรายการหน้าที่ในระบบทางเลือก/หมายเหตุ
ไมโครคอนโทรลเลอร์ESP32 หรือ Arduino Uno R3อ่านค่าเซ็นเซอร์ ประมวลผลเงื่อนไข และสั่งงานรีเลย์/ปั๊มน้ำแนะนำ ESP32 หากต้องการ Wi‑Fi
เซ็นเซอร์Soil Moisture Sensor แบบ Capacitive หรือ Resistiveวัดความชื้นในดิน โดยค่า Analog เปลี่ยนตามระดับน้ำในดินแบบ Capacitive ทนการกัดกร่อนได้ดีกว่า
อุปกรณ์ควบคุมRelay Module 1 Channel หรือ MOSFET Driverทำหน้าที่เป็นสวิตช์ควบคุมปั๊มน้ำจากบอร์ดตรวจสอบ Active LOW/Active HIGH
อุปกรณ์จ่ายน้ำMini DC Pump, สายยาง, ถังน้ำ, หัวน้ำหยดส่งน้ำจากถังไปยังกระถางเมื่อระบบสั่งรดน้ำใช้ไฟ 5V/12V ตามรุ่นปั๊ม
แหล่งจ่ายไฟAdapter 5V/12V, USB Power, Breadboard Power Supplyจ่ายไฟให้บอร์ดและปั๊มน้ำอย่างเสถียรควรแยกไฟปั๊มกับบอร์ดเมื่อปั๊มกินกระแสสูง
แสดงผลLCD 16x2 I2C หรือ OLED 0.96 นิ้วแสดงค่าความชื้น สถานะดิน และสถานะปั๊มน้ำหน้าชุดทดลองเป็นฟังก์ชันเสริม
DashboardBlynk, ThingSpeak, Google Sheet หรือ Web Dashboardดูข้อมูลออนไลน์ บันทึกประวัติ และแสดงกราฟย้อนหลังเลือกอย่างน้อย 1 ระบบ
เครื่องมือพัฒนาArduino IDE, Serial Monitor, Library WiFi/Blynk/HTTPเขียนโปรแกรม ทดสอบการอ่านค่า และเชื่อมต่อระบบออนไลน์บันทึกเวอร์ชัน Library ในรายงาน
System Architecture

สถาปัตยกรรมระบบ

ระบบแบ่งเป็น 4 ชั้นหลัก ได้แก่ ชั้นตรวจวัด ชั้นประมวลผล ชั้นควบคุมอุปกรณ์ และชั้นแสดงผล/บันทึกข้อมูล

Layer 1
Sensor Layer

Soil Moisture Sensor ตรวจวัดค่าความชื้นดินและส่งค่า Analog ไปยังบอร์ด

Layer 2
Processing Layer

ESP32/Arduino อ่านค่า แปลงเปอร์เซ็นต์ เปรียบเทียบกับ Threshold และตัดสินใจ

Layer 3
Actuator Layer

Relay/MOSFET ควบคุม Mini Pump เพื่อรดน้ำตามเงื่อนไขที่กำหนด

Layer 4
Application Layer

Dashboard แสดงข้อมูลปัจจุบัน กราฟย้อนหลัง สถานะปั๊ม และประวัติการรดน้ำ

Circuit Design

ผังการต่อวงจรและขาอุปกรณ์

อุปกรณ์ขาอุปกรณ์ต่อกับบอร์ดหมายเหตุ
Soil Moisture SensorVCC3V3 หรือ 5VESP32 แนะนำ 3.3V เพื่อลดความเสี่ยงขา Analog
Soil Moisture SensorGNDGNDกราวด์ร่วมกับบอร์ด
Soil Moisture SensorA0 / AOGPIO34 หรือ A0อ่านค่า Analog
Relay ModuleINGPIO26 หรือ D7ใช้ควบคุมเปิด–ปิดปั๊ม
Relay ModuleVCC/GND5V/GNDบางรุ่นใช้ไฟ 5V
Mini Pumpสายไฟ +/−ผ่าน COM/NO ของ Relayห้ามต่อปั๊มเข้าขาบอร์ดโดยตรง

ข้อควรระวังในการต่อวงจร

  • ตรวจสอบว่า Relay เป็น Active LOW หรือ Active HIGH ก่อนเขียนโปรแกรม
  • ปั๊มน้ำกินกระแสมากกว่าขา GPIO จึงต้องควบคุมผ่าน Relay/MOSFET เท่านั้น
  • ควรใช้ไดโอดกันไฟย้อนหรือโมดูลรีเลย์สำเร็จรูปที่มีวงจรป้องกัน
  • แยกบริเวณน้ำออกจาก Breadboard และขั้วต่อไฟฟ้า
  • ทดสอบระบบด้วยไฟเลี้ยงต่ำและเวลาสั้นก่อนนำไปใช้กับน้ำจริง
Working Process

กระบวนการทำงานของระบบ

กระบวนการหลักของระบบเริ่มจากอ่านค่าเซ็นเซอร์ ประมวลผลตามเกณฑ์ สั่งงานปั๊มน้ำ บันทึกเหตุการณ์ และแสดงผลให้ผู้ใช้ตรวจสอบ

เริ่มต้นระบบ

เชื่อมต่อ Wi‑Fi ตรวจสอบสถานะเซ็นเซอร์ รีเลย์ และกำหนดค่าเริ่มต้น เช่น Threshold = 35%

อ่านค่าความชื้นดิน

อ่านค่า Analog หลายครั้งแล้วเฉลี่ย เพื่อลด Noise จากเซ็นเซอร์ จากนั้นแปลงเป็นเปอร์เซ็นต์

ประเมินสถานะดิน

จำแนกเป็น ดินแห้ง / ปกติ / ชื้น ตามช่วงค่าที่กำหนด เช่น ต่ำกว่า 35% คือดินแห้ง

ควบคุมการรดน้ำ

ถ้าดินแห้งให้เปิดปั๊มตามระยะเวลาที่กำหนด แล้วปิดปั๊มและพักระบบก่อนตรวจซ้ำ

ส่งข้อมูลไปยัง Dashboard

ส่งค่าความชื้น สถานะปั๊ม เวลา และข้อความแจ้งเตือนไปยัง Blynk/ThingSpeak/Web API

บันทึกและแจ้งเตือน

บันทึกประวัติการรดน้ำและแจ้งเตือนเมื่อดินแห้งมาก ปั๊มทำงานผิดปกติ หรือถังน้ำหมดถ้ามีเซ็นเซอร์เสริม

Example Logic

แนวทางเขียนโปรแกรม

ตัวอย่างนี้เป็นโค้ดแนวคิดสำหรับ ESP32/Arduino นักศึกษาสามารถปรับขา อัตราการอ่านค่า และการส่งข้อมูลขึ้น Dashboard ตามอุปกรณ์จริงที่ใช้

หลักการสำคัญ
  • อ่านค่าเฉลี่ยจากเซ็นเซอร์หลายครั้ง
  • แปลงค่า Analog เป็นเปอร์เซ็นต์
  • ใช้ Threshold และ Delay ป้องกันปั๊มทำงานถี่
  • บันทึกเวลาและสถานะทุกครั้งที่รดน้ำ
// ตัวอย่าง Logic ระบบรดน้ำต้นไม้อัจฉริยะ const int soilPin = 34; // ขา Analog สำหรับ ESP32 const int relayPin = 26; // ขารีเลย์ควบคุมปั๊มน้ำ const int threshold = 35; // เกณฑ์ความชื้นขั้นต่ำ (%) const int pumpTime = 7000; // เปิดปั๊ม 7 วินาที // ค่าคาลิเบรตตัวอย่าง ต้องวัดจากเซ็นเซอร์จริง const int dryValue = 3200; // ค่าเมื่อดินแห้ง const int wetValue = 1200; // ค่าเมื่อดินชื้นมาก void setup() { Serial.begin(115200); pinMode(relayPin, OUTPUT); digitalWrite(relayPin, HIGH); // รีเลย์บางรุ่น Active LOW: HIGH = ปิด } int readSoilPercent() { long total = 0; for (int i = 0; i < 10; i++) { total += analogRead(soilPin); delay(50); } int raw = total / 10; int percent = map(raw, dryValue, wetValue, 0, 100); return constrain(percent, 0, 100); } void loop() { int moisture = readSoilPercent(); Serial.print("Soil Moisture: "); Serial.print(moisture); Serial.println("%"); if (moisture < threshold) { Serial.println("Status: DRY - Pump ON"); digitalWrite(relayPin, LOW); // เปิดปั๊ม กรณี Active LOW delay(pumpTime); digitalWrite(relayPin, HIGH); // ปิดปั๊ม Serial.println("Pump OFF - Wait for soil absorption"); delay(30000); // พักให้ดินดูดซึมน้ำก่อนตรวจซ้ำ } else { Serial.println("Status: NORMAL - Pump OFF"); digitalWrite(relayPin, HIGH); delay(5000); } // เพิ่มคำสั่งส่งข้อมูลไปยัง Blynk / ThingSpeak / Web API ได้ที่นี่ }
Dashboard Design

หน้าจอแสดงผลที่ควรมี

Dashboard ควรทำให้ผู้ใช้เข้าใจสถานะของระบบได้ทันที ทั้งค่าปัจจุบัน ประวัติการรดน้ำ และการแจ้งเตือน

Current ValuePump StatusHistoryAlert
Smart Irrigation Dashboard

กระถางต้นไม้ A

Online
ความชื้นดิน32%
สถานะดิน

ดินแห้ง

สถานะปั๊มน้ำ

ON 7 sec

รดน้ำล่าสุด

08:30 น.

แจ้งเตือน: ค่าความชื้นต่ำกว่าเกณฑ์ ระบบสั่งเปิดปั๊มน้ำแล้ว
ข้อมูลที่ควรแสดงตัวอย่างรูปแบบประโยชน์
ค่าความชื้นดินปัจจุบันตัวเลขเปอร์เซ็นต์ + Gaugeช่วยให้ผู้ใช้รู้ทันทีว่าดินแห้งหรือชื้น
สถานะปั๊มน้ำON/OFF พร้อมเวลาที่ทำงานตรวจสอบว่าระบบสั่งงานอุปกรณ์ถูกต้อง
ประวัติการรดน้ำตารางวันเวลาและระยะเวลาปั๊มทำงานใช้วิเคราะห์ความถี่และพฤติกรรมการรดน้ำ
กราฟย้อนหลังLine Chart รายชั่วโมง/รายวันแสดงแนวโน้มความชื้นก่อนและหลังรดน้ำ
การตั้งค่าSlider หรือ Input กำหนด Thresholdผู้ใช้ปรับเกณฑ์ตามชนิดพืชได้
Testing Plan

แผนการทดสอบระบบ

ควรมีหลักฐานการทดสอบทั้ง Sensor, Relay, Pump, Dashboard และการทำงานแบบรวมระบบ

กรณีทดสอบขั้นตอนผลที่คาดหวังหลักฐานที่ควรเก็บ
ทดสอบเซ็นเซอร์ดินแห้งนำเซ็นเซอร์วัดในดินแห้งหรือวัสดุปลูกแห้งค่าเปอร์เซ็นต์ต่ำกว่าเกณฑ์ และระบบแสดงสถานะ “ดินแห้ง”ภาพ Serial Monitor / Dashboard
ทดสอบเซ็นเซอร์ดินชื้นรดน้ำดินให้ชื้นแล้ววัดซ้ำค่าเปอร์เซ็นต์เพิ่มขึ้น และปั๊มน้ำไม่ทำงานตารางเปรียบเทียบก่อน–หลังรดน้ำ
ทดสอบรีเลย์และปั๊มสั่งเปิดปิดปั๊มจากโปรแกรมปั๊มเปิดและปิดตรงตามเวลาที่กำหนดวิดีโอสาธิต
ทดสอบระบบอัตโนมัติตั้ง Threshold แล้วปล่อยให้ระบบตัดสินใจเองเมื่อดินแห้ง ระบบเปิดปั๊ม และหลังรดน้ำค่าความชื้นเพิ่มขึ้นกราฟค่าความชื้นและ Log การรดน้ำ
ทดสอบ Dashboardเชื่อมต่อ Wi‑Fi แล้วส่งข้อมูลต่อเนื่องDashboard แสดงค่าปัจจุบันและประวัติได้ถูกต้องภาพหน้าจอ Dashboard
ทดสอบความปลอดภัยตรวจสอบสายไฟ แหล่งจ่าย และตำแหน่งน้ำไม่มีน้ำสัมผัสวงจร ไม่มีสายหลวม และระบบไม่ร้อนผิดปกติภาพการจัดวางอุปกรณ์
Development Plan

แผนพัฒนาโครงงาน

แบ่งงานเป็นรอบสั้น ๆ เพื่อให้ทีมตรวจความคืบหน้าได้ต่อเนื่องและลดความเสี่ยงตอนรวมระบบ

ช่วงเวลากิจกรรมผลลัพธ์ที่ต้องได้
สัปดาห์ที่ 1วิเคราะห์ปัญหา กำหนด Requirement และออกแบบผังระบบเอกสาร Requirement, รายการอุปกรณ์, Block Diagram
สัปดาห์ที่ 2ต่อวงจร อ่านค่าเซ็นเซอร์ และคาลิเบรตค่าดินแห้ง/ดินชื้นค่าทดสอบ Sensor และตาราง Calibration
สัปดาห์ที่ 3เขียนโปรแกรมควบคุม Relay/Pump และทดสอบเงื่อนไขอัตโนมัติFirmware ที่เปิด–ปิดปั๊มตาม Threshold ได้
สัปดาห์ที่ 4เชื่อมต่อ Dashboard และบันทึกข้อมูลย้อนหลังDashboard แสดงค่าและ Log ได้
สัปดาห์ที่ 5ทดสอบรวมระบบ ปรับปรุงกล่อง/สายไฟ และเตรียมนำเสนอPrototype พร้อมวิดีโอ รายงาน และสไลด์
Deliverables

รายการส่งงานและเกณฑ์ประเมิน

สิ่งที่ต้องส่ง

  • ไฟล์รายงานโครงงาน ประกอบด้วย บทนำ ปัญหา วัตถุประสงค์ ขอบเขต อุปกรณ์ วิธีดำเนินงาน ผลการทดสอบ และสรุป
  • ผังการต่อวงจร พร้อมตารางระบุขา Pin ของอุปกรณ์
  • Source Code ที่คอมเมนต์อธิบายส่วนสำคัญ
  • ภาพถ่าย Prototype และภาพหน้าจอ Dashboard
  • วิดีโอสาธิตไม่เกิน 5 นาที แสดงการทำงานตั้งแต่ดินแห้งจนระบบรดน้ำ
  • สไลด์นำเสนอ 8–12 หน้า พร้อมสรุปปัญหา วิธีทำ ผลลัพธ์ และข้อเสนอแนะ
หัวข้อประเมินรายละเอียดคะแนน
Requirement & Designโจทย์ชัด ขอบเขตเหมาะสม ผังระบบเข้าใจง่าย15%
Hardware Integrationต่อวงจรถูกต้อง ปลอดภัย และจัดวางอุปกรณ์เรียบร้อย20%
Programmingอ่านค่า ควบคุมปั๊ม จัดการเงื่อนไข และอธิบายโค้ดได้20%
Connectivityส่งข้อมูลไป Dashboard หรือระบบบันทึกข้อมูลได้15%
Testingมีแผนทดสอบ ผลทดสอบ และหลักฐานก่อน–หลังปรับปรุง15%
Documentation & Demoรายงานครบ วิดีโอชัด และนำเสนอเข้าใจง่าย15%
Optional Extensions

แนวทางต่อยอดเพื่อเพิ่มคะแนน

ตรวจระดับน้ำในถัง

เพิ่ม Ultrasonic Sensor หรือ Float Switch เพื่อแจ้งเตือนเมื่อน้ำใกล้หมด

พยากรณ์อากาศ

เชื่อมต่อ API สภาพอากาศ เพื่อลดการรดน้ำเมื่อมีฝนหรือความชื้นสูง

แจ้งเตือนมือถือ

ส่ง Notification เมื่อดินแห้งมาก ปั๊มทำงาน หรือถังน้ำหมด

วิเคราะห์ข้อมูลย้อนหลัง

ทำกราฟรายวันและสรุปจำนวนครั้ง/ปริมาณเวลาในการรดน้ำ

พร้อมพัฒนา Prototype ระบบรดน้ำต้นไม้อัจฉริยะ

ใช้หน้านี้เป็นแนวทางสำหรับวางแผนโครงงาน เขียนรายงาน ทำสไลด์ และสาธิตผลงานปลายภาคในรายวิชา IoT