บทเรียน • SMART FARM IoT

ระบบ Smart Farm ตัดสินใจเปิด–ปิดปั๊มอย่างไร?

บทนี้อธิบายตั้งแต่ Sensor ส่งข้อมูลเข้า ESP32 ไปจนถึง Automation Logic ที่ตรวจฝน ระดับน้ำ และความชื้นดิน ก่อนสั่ง Relay และปั๊มน้ำ เพื่อให้เข้าใจว่า “ปั๊มทำงานเพราะเงื่อนไขของระบบ” ไม่ใช่เพราะผู้เรียนกดปุ่มเปิดปั๊ม

ระดับ ปวช. ภาษาไทย Sensor → ESP32 → Pump เชื่อมกับ IoT Lab 3D
01

LEARNING OBJECTIVES

เรียนบทนี้แล้วควรเข้าใจอะไร

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

เป้าหมาย 01 แยกหน้าที่ของ Sensor

เข้าใจว่า Soil Moisture, Rain, Water Level, Temperature และ Air Humidity มีบทบาทไม่เหมือนกัน

เป้าหมาย 02 เข้าใจ Automation Logic

รู้ลำดับที่ ESP32 ใช้ตรวจเงื่อนไขก่อนส่งคำสั่งไปยัง Relay และปั๊มน้ำ

เป้าหมาย 03 เข้าใจ Safety Interlock

ฝนตกหรือระดับน้ำไม่ปลอดภัยต้องสามารถหยุดปั๊มได้ทันที แม้เงื่อนไขอื่นต้องการน้ำ

เป้าหมาย 04 อ่านผลจาก IoT Lab ได้

เมื่อกดเริ่มการทดลอง สามารถอธิบายได้ว่าทำไม Pump ON หรือ Pump OFF

02

SYSTEM OVERVIEW

ระบบ IoT ของเราทำงานเป็นลำดับอย่างไร

ให้นึกว่าระบบเป็นสายงานหนึ่งเส้น: Sensor ทำหน้าที่ “รับรู้” ESP32 ทำหน้าที่ “คิด” และ Relay กับ Pump ทำหน้าที่ “ลงมือทำ”

01 Sensor วัดสภาพดิน อากาศ ฝน และระดับน้ำ
↓
02 ESP32 อ่านข้อมูลและประมวลผลกฎของระบบ
↓
03 Automation Logic ตรวจ Rain Lock, Water Lock และ Soil Moisture
↓
04 Relay → Pump สั่งเปิดหรือปิดระบบรดน้ำ
จำสั้น ๆ

Sensor → ESP32 → ตรวจเงื่อนไข → Relay → Pump → แสดงผลบน Dashboard / IoT Lab

03

MAIN COMPONENTS

อุปกรณ์หลักในระบบ

SENSOR INPUT

เซนเซอร์

วัดข้อมูลจากสภาพแวดล้อมแล้วส่งค่าให้ Controller เช่น ความชื้นดิน ฝน และระดับน้ำ

หน้าที่: รับข้อมูล
ESP32 CONTROL

ESP32

ไมโครคอนโทรลเลอร์ที่อ่านค่า Sensor ตรวจเงื่อนไข และตัดสินใจว่าจะสั่งอุปกรณ์อย่างไร

หน้าที่: ประมวลผล
RELAY SWITCH

Relay

ทำหน้าที่เหมือนสวิตช์ไฟฟ้าที่ ESP32 ใช้สั่งเปิดหรือปิดวงจรของปั๊มน้ำ

หน้าที่: สวิตช์กำลัง
PUMP OUTPUT

ปั๊มน้ำ

อุปกรณ์ปลายทางที่สูบน้ำจากถังไปยังท่อและหัวจ่ายน้ำเมื่อระบบอนุญาตให้ทำงาน

หน้าที่: ลงมือทำ
04

SENSOR ROLES

Sensor แต่ละตัวมีผลกับปั๊มอย่างไร

จุดนี้สำคัญมาก เพราะ Sensor ทุกตัวไม่ได้มีสิทธิ์สั่งปั๊มเท่ากัน ระบบของเราแบ่งเป็น “ตัวตัดสินหลัก”, “ตัวล็อกความปลอดภัย” และ “ข้อมูลประกอบ”

🌱

Soil Moisture

วัดความชื้นในดิน เป็นตัวหลักที่บอกว่าดินต้องการน้ำหรือมีน้ำเพียงพอแล้ว

ตัวตัดสินหลัก
🌧

Rain Sensor

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

RAIN LOCK
≋

Water Level

ตรวจระดับน้ำในถัง หากน้ำต่ำถึงค่าความปลอดภัย ระบบจะล็อกไม่ให้ปั๊มทำงาน

WATER SAFETY LOCK
🌡

Temperature

อุณหภูมิสูงทำให้การระเหยและการสูญเสียน้ำมีแนวโน้มสูงขึ้น แต่ไม่ใช้เปิดปั๊มโดยตรงใน Lab รุ่นนี้

ข้อมูลประกอบ Water Demand
💧

Air Humidity

ความชื้นอากาศต่ำมักสัมพันธ์กับการระเหยที่มากขึ้น จึงใช้ช่วยอธิบายสภาพแวดล้อมและความต้องการน้ำ

ข้อมูลประกอบ Water Demand
⚙

Pump Status

ไม่ใช่ Sensor แต่เป็นผลลัพธ์ของการตัดสินใจ ถ้าเงื่อนไขผ่านจึง ON ถ้ามี Lock หรือดินชื้นพอจึง OFF

ผลลัพธ์ของระบบ
อุณหภูมิ + ความชื้นในอากาศจำเป็นไหม?

ระบบรดน้ำพื้นฐานสามารถทำงานได้โดยไม่มีสองค่านี้ แต่มีไว้เพื่อให้ผู้เรียนเข้าใจสภาพแวดล้อม และสามารถต่อยอดเป็นระบบคำนวณ Water Demand ที่ฉลาดขึ้นในอนาคต

05

DECISION LOGIC

ลำดับการตัดสินใจที่ถูกต้อง

ระบบไม่ควรเช็กทุกค่าแบบสุ่ม แต่ต้องจัดลำดับความสำคัญ โดย Safety Interlock ต้องมีสิทธิ์หยุดปั๊มก่อนเงื่อนไขการรดน้ำ

STEP 01 • HARD INTERLOCK ฝนตกหรือไม่?

ถ้าฝนตก → RAIN LOCK → Pump OFF ทันทีทุกโหมด

IF rain = YES → PUMP OFF
STEP 02 • HARD INTERLOCK ระดับน้ำในถังปลอดภัยหรือไม่?

ถ้าน้ำต่ำกว่าหรือเท่ากับ Safety Level → WATER SAFETY LOCK → Pump OFF

IF water_level ≤ safe_level → PUMP OFF
STEP 03 • PRIMARY CONDITION ความชื้นดินต่ำกว่าเกณฑ์เริ่มหรือไม่?

ถ้าฝนไม่ตก น้ำปลอดภัย และดินแห้งกว่าค่าที่กำหนด ระบบจึงสามารถเปิดปั๊มได้

IF soil < start_threshold → PUMP ON
STEP 04 • STOP CONDITION ความชื้นดินถึงเกณฑ์หยุดหรือยัง?

เมื่อปั๊มทำงานแล้ว จะทำงานต่อจน Soil Moisture ถึง Stop Threshold หรือเกิด Hard Interlock

IF soil ≥ stop_threshold → PUMP OFF
ลำดับสั้นที่สุด

Rain Lock → Water Safety Lock → Soil Moisture → Relay → Pump

06

EXAMPLE SCENARIOS

ลองอ่านสถานการณ์เหมือน ESP32

สถานการณ์ A

ดินแห้งและระบบพร้อมรดน้ำ

Soil 35% Start 40% Rain NO Water 82%
ผลลัพธ์: Pump ON

ฝนไม่ตก น้ำปลอดภัย และดินต่ำกว่า Start Threshold จึงเปิดปั๊มได้

สถานการณ์ B

ดินแห้ง แต่ฝนกำลังตก

Soil 30% Rain YES Water 82%
ผลลัพธ์: Pump OFF

RAIN LOCK มีสิทธิ์สูงกว่า Soil Moisture จึงปิดปั๊มทันทีแม้ดินยังแห้ง

สถานการณ์ C

ดินแห้ง แต่น้ำในถังต่ำ

Soil 30% Rain NO Water 10% Safe 10%
ผลลัพธ์: Pump OFF

Water Safety Lock ป้องกันไม่ให้ปั๊มทำงานเมื่อระดับน้ำไม่ปลอดภัย

สถานการณ์ D

อากาศร้อน แต่ดินยังชื้น

Temp 36°C Air RH 45% Soil 60% Rain NO
ผลลัพธ์: Pump OFF

Temperature และ Air Humidity ไม่ใช่คำสั่งเปิดปั๊มโดยตรง ถ้าดินยังชื้นพอ ระบบไม่ควรรดน้ำเพิ่ม

สถานการณ์ E

ปั๊มทำงานอยู่ที่ Soil 43%

Start 40% Stop 45% Soil 43% Rain NO
ผลลัพธ์: Pump ยัง ON

ปั๊มทำงานต่อจนถึง Stop Threshold 45% เพื่อป้องกันการเปิด–ปิดถี่

สถานการณ์ F

ตรวจพบฝนระหว่างที่ปั๊มกำลังทำงาน

Pump ON Rain → YES
ผลลัพธ์: Pump OFF ทันที

RAIN LOCK ต้องตัดสถานะปั๊มทันที ไม่ต้องรอให้ Soil Moisture ถึง Stop Threshold

07

HYSTERESIS

ทำไมเกณฑ์เริ่มกับเกณฑ์หยุดต้องไม่เท่ากัน

ถ้าใช้ค่าเดียว เช่น 40% เป็นทั้งจุดเปิดและปิด ค่า Sensor ที่แกว่งอยู่แถว 39–41% อาจทำให้ปั๊มสลับ ON/OFF ถี่เกินไป จึงใช้แนวคิด Hysteresis แยกสองเกณฑ์ออกจากกัน

Start 40% Stop 45%
ดินแห้ง ช่วง Hysteresis ชื้นเพียงพอ

ตัวอย่าง: เมื่อ Soil < 40% ระบบเริ่มรดน้ำ และเมื่อเริ่มแล้วจะทำงานต่อจน Soil ≥ 45% เว้นแต่มี RAIN LOCK หรือ WATER SAFETY LOCK เกิดขึ้นก่อน

หมายเหตุ

ค่า 40% และ 45% เป็นค่าจำลองสำหรับการฝึก ไม่ใช่ค่ามาตรฐานที่ใช้ได้กับพืชทุกชนิด

08

CONTROL MODES

AUTO กับ MANUAL ต่างกันอย่างไร

AUTO — ระบบตัดสินใจเอง

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

  • Rain Lock ต้องผ่าน
  • Water Safety Lock ต้องผ่าน
  • Soil Moisture เป็นตัวตัดสินหลัก
  • เมื่อปั๊มทำงาน ใช้ Stop Threshold เป็นจุดหยุด

MANUAL — ใช้สำหรับทดสอบคำสั่ง

ผู้เรียนสามารถทดลองสั่ง Pump ON/OFF ด้วยตนเองเพื่อศึกษาการตอบสนองของระบบ แต่ยังไม่สามารถข้าม Hard Interlock ได้

  • ฝนตก → RAIN LOCK → Manual ON ถูกปฏิเสธ
  • น้ำต่ำ → WATER SAFETY LOCK → Manual ON ถูกปฏิเสธ
  • ใช้ทดสอบการสั่ง Relay / Pump เมื่อระบบอยู่ในสภาพปลอดภัย
09

IOT LAB EXPERIMENT

ปุ่ม “เริ่มการทดลอง” หมายถึงอะไร

จุดที่ผู้เรียนมักเข้าใจผิด

กด “เริ่มการทดลอง” ≠ กดเปิดปั๊ม

ปุ่มนี้มีหน้าที่ เริ่ม Simulation และให้ระบบตรวจเงื่อนไข หลังจากกดแล้ว ESP32 จำลองจะอ่านค่า Rain, Water Level และ Soil Moisture จากนั้น Logic จึงตัดสินใจว่า Pump ควร ON หรือ OFF

ก่อนกดเริ่ม ระบบอยู่ในสถานะพร้อมทดลอง

ผู้เรียนสามารถปรับค่าความชื้นดิน ฝน ระดับน้ำ และ Threshold ได้โดยที่ปั๊มยังไม่จำเป็นต้องทำงาน

เมื่อกดเริ่ม ระบบเริ่มอ่านและตรวจเงื่อนไข

ถ้าฝนไม่ตก น้ำปลอดภัย และดินต่ำกว่า Start Threshold → Pump ON

ระหว่างทดลอง ค่าของระบบเปลี่ยนตาม Simulation

น้ำในถังลดลง ความชื้นดินเพิ่มขึ้น และ 3D จะแสดงน้ำจากหัวสปริงเกอร์เมื่อ Pump ON

ถ้าเกิดเหตุระงับ Hard Interlock หยุดปั๊มทันที

ถ้าฝนเริ่มตกหรือระดับน้ำถึง Safety Level → Pump OFF โดยไม่ต้องรอ Stop Threshold

ภาพ 3D ต้องสื่อให้ตรงกับ Logic

ฝนจริงตกจากด้านบนและทำให้ RAIN LOCK ส่วน “น้ำจากปั๊ม” ต้องออกจากหัวจ่ายใกล้แปลง เพื่อให้ผู้เรียนแยกสองเหตุการณ์ออกจากกันได้ชัดเจน

10

SUMMARY

สรุปก่อนเข้า IoT Lab

🌱

Soil Moisture

ตัวตัดสินหลักว่าดินต้องการน้ำหรือไม่

🌧

Rain

Hard Interlock — ฝนตกต้อง Pump OFF

≋

Water Level

Safety Interlock — น้ำไม่พอต้องล็อกปั๊ม

🌡

Temperature + Air Humidity

ข้อมูลประกอบ Water Demand ไม่ใช่คำสั่งเปิดปั๊มโดยตรง

จำประโยคนี้ไว้

“ปั๊มไม่ได้ ON เพราะเรากดเริ่ม — ปั๊ม ON เพราะเงื่อนไขผ่าน”

นี่คือหัวใจของ Automation ในระบบ Smart Farm IoT