กิจกรรมที่ 5 — จำลองปัญหาและเพิ่มระบบป้องกัน (Failure lab)

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

ใบงาน
เลือก “แก้ได้” เมื่อทดสอบผ่านเกณฑ์ของข้อนั้น
- ข้อ 5.1 ปั๊มหยุดเมื่อเป็น Dry ทั้งกรณีที่สั่ง On ขณะ Dry อยู่แล้ว และกรณียกลูกลอยหลังปั๊มเริ่มเดิน โดยมีข้อความแจ้งเตือน
- ข้อ 5.2 กฎตัดรีเลย์หลังประมาณ 15 วินาทีเมื่อถอดสาย และปั๊มเดินผ่าน 15 วินาทีได้เมื่อต่อสายกลับ
- ข้อ 5.3 Traces แสดงว่ากฎเซนเซอร์หายสั่ง Off พร้อมแจ้งเตือน แม้กฎอื่นจะหยุดปั๊มไปก่อน
- ข้อ 5.4 ปั๊มหยุดหลังประมาณ 30 วินาทีพร้อมแจ้งเตือน
คลิกหัวข้อเพื่อดูวิธีทำ ทำเสร็จแล้วทำเครื่องหมายและบันทึกผล กรอกที่นี่หรือในขั้นตอนด้านล่างก็ได้
- ก่อนจำลองปัญหาทุกข้อ ตรวจว่ากฎรดน้ำสองข้อเปิดอยู่ ·
Pump Auto Modeเปิดอยู่ · กฎไฟสวนและกฎตั้งเวลาปิดไว้ · ลูกลอยอยู่ในแก้วน้ำและแสดง Wet - 5.1 น้ำหมด
- ก่อนเพิ่มกฎ พบอาการ “ลูกลอยเป็น Dry แต่ยังสั่งให้ปั๊มเดินได้” หรือไม่ (เลือก “สำเร็จ” เมื่อพบอาการนี้) · บันทึกสถานะบนจอและอาการจริงของปั๊มที่สังเกตได้
- หลังเพิ่มกฎและทดสอบซ้ำ กฎทำงานผ่านเกณฑ์ของข้อนี้หรือไม่ (เลือก “แก้ได้” เมื่อผ่าน) · หลักฐานหลังแก้ (ระบุการหยุดของปั๊ม เวลา หรือชื่อกฎในแจ้งเตือน/Traces; หากยังไม่ผ่านให้บอกอาการ)
- 5.2 สั่งแล้วปั๊มไม่เดิน
- ก่อนเพิ่มกฎ พบอาการ “รีเลย์เป็น On แต่ปั๊มไม่เดินเมื่อถอดสายปั๊ม” หรือไม่ (เลือก “สำเร็จ” เมื่อพบอาการนี้) · บันทึกสถานะบนจอและอาการจริงของปั๊มที่สังเกตได้
- หลังเพิ่มกฎและทดสอบซ้ำ กฎทำงานผ่านเกณฑ์ของข้อนี้หรือไม่ (เลือก “แก้ได้” เมื่อผ่าน) · หลักฐานหลังแก้ (ระบุการหยุดของปั๊ม เวลา หรือชื่อกฎในแจ้งเตือน/Traces; หากยังไม่ผ่านให้บอกอาการ)
- 5.3 บอร์ดเซนเซอร์ดับ
- ถ้าบอร์ดเซนเซอร์ดับแล้วระบบควบคุมไม่ได้รับค่าความชื้น กลุ่มเลือกให้ปั๊ม เพราะ
- ก่อนเพิ่มกฎ พบอาการ “ค่าความชื้นกลายเป็น unavailable หลังปิดบอร์ด” หรือไม่ (เลือก “สำเร็จ” เมื่อพบอาการนี้) · บันทึกสถานะบนจอและอาการจริงของปั๊มที่สังเกตได้
- หลังเพิ่มกฎและทดสอบซ้ำ กฎทำงานผ่านเกณฑ์ของข้อนี้หรือไม่ (เลือก “แก้ได้” เมื่อผ่าน) · หลักฐานหลังแก้ (ระบุการหยุดของปั๊ม เวลา หรือชื่อกฎในแจ้งเตือน/Traces; หากยังไม่ผ่านให้บอกอาการ)
- 5.4 ปั๊มเดินนานเกินไป
- ก่อนเพิ่มกฎ พบอาการ “ปั๊มยังเดินเมื่อครบเวลาสังเกตก่อนเพิ่มกฎจำกัดเวลา” หรือไม่ (เลือก “สำเร็จ” เมื่อพบอาการนี้) · บันทึกสถานะบนจอและอาการจริงของปั๊มที่สังเกตได้
- หลังเพิ่มกฎและทดสอบซ้ำ กฎทำงานผ่านเกณฑ์ของข้อนี้หรือไม่ (เลือก “แก้ได้” เมื่อผ่าน) · หลักฐานหลังแก้ (ระบุการหยุดของปั๊ม เวลา หรือชื่อกฎในแจ้งเตือน/Traces; หากยังไม่ผ่านให้บอกอาการ)
- 5.5 วางแผนบำรุงรักษา กรอกตารางบำรุงรักษา ใครดูแล บ่อยแค่ไหน ดูอะไร ให้ครบทั้ง 5 รายการ
- คำถามท้ายกิจกรรม ถ้าเราตั้งกฎป้องกันเหล่านี้ไว้แล้ว แต่ Home Assistant เกิดดับหรือส่งคำสั่งไม่ได้ กฎยังช่วยหยุดปั๊มได้หรือไม่ และเราควรเพิ่มการป้องกันไว้ที่ใด

ก่อนจำลองปัญหาทุกข้อ
ตรวจความพร้อมก่อนทดสอบ
- ตรวจว่ากฎรดน้ำเปิดอยู่
Pump Auto Modeเปิดอยู่ กฎไฟสวนและกฎตั้งเวลาปิดไว้ - ตรวจว่าปั๊มต่อกับรีเลย์แล้ว ลูกลอยอยู่ในแก้วน้ำและแสดง Wet
- ตรวจว่าบอร์ดทั้งสองแสดงค่าปัจจุบัน เปิดหน้าอุปกรณ์ไว้คนละแท็บ
- ใช้ปุ่มสั่งปั๊มในการทดสอบ ไม่ต้องเปลี่ยนเกณฑ์ความชื้น

5.1น้ำต่ำแต่ปั๊มยังเดิน
จำลองปัญหา
- ยกลูกลอยพ้นน้ำ รอให้แสดง Dry แล้วสั่งปั๊ม On
สังเกตผล
- สังเกตว่าปั๊มยังเดิน (ฟังเสียง) เพราะกฎเดิมดูความชื้นแต่ไม่ตรวจระดับน้ำ จากนั้นสั่ง Off ก่อนแก้กฎ
สร้างกฎป้องกัน
ถ้าน้ำลดต่ำลงจนลูกลอยเป็น Dry แล้วปั๊มยังเดินอยู่ ให้สั่งหยุด และถ้าลูกลอยเป็น Dry อยู่ก่อนแล้วมีคนสั่ง On ก็ต้องหยุดปั๊มด้วย
- สร้างกฎใหม่ ส่วน When กด + Add trigger พิมพ์ ลูกลอย กดที่ สวิตช์ลูกลอย (float switch) เลือก Moisture cleared (ลูกลอยเปลี่ยนเป็น Dry)
- กด + Add trigger อีกครั้ง พิมพ์ รีเลย์ กดที่ รีเลย์ (relay) เลือก Switch turned on
- ส่วน And if กด + Add condition เลือกสวิตช์ลูกลอยแบบเดียวกัน แล้วเลือก Moisture is not detected (Dry)
- ส่วน Then do กด + Add action เลือกรีเลย์ → Turn off switch แล้วเพิ่ม action Send a persistent notification ข้อความ
น้ำในถังต่ำ หยุดปั๊มแล้วบันทึกชื่อFail-safe - น้ำหมด - เปิดกฎ
รดน้ำ - เปิดปั๊มส่วน And if เพิ่ม condition สวิตช์ลูกลอย Moisture is detected (Wet) แล้วบันทึก
ทดสอบให้ผ่านทั้งสองแบบ
- ลูกลอยเป็น Dry แล้วสั่ง On ทั้งจากปุ่มบนบอร์ดและหน้าอุปกรณ์ ปั๊มต้องหยุดและมีแจ้งเตือน
- ลูกลอยเป็น Wet สั่งปั๊มเดิน แล้วยกลูกลอยให้เป็น Dry ปั๊มต้องหยุดเช่นกัน
คืนสภาพลูกลอย
- วางลูกลอยกลับในน้ำ การกลับเป็น Wet อย่างเดียวไม่ได้สั่งปั๊มให้เริ่มใหม่
บันทึกผล
-
ก่อนเพิ่มกฎ พบอาการ “ลูกลอยเป็น Dry แต่ยังสั่งให้ปั๊มเดินได้” หรือไม่ (เลือก “สำเร็จ” เมื่อพบอาการนี้) · บันทึกสถานะบนจอและอาการจริงของปั๊มที่สังเกตได้
หลังเพิ่มกฎและทดสอบซ้ำ กฎทำงานผ่านเกณฑ์ของข้อนี้หรือไม่ (เลือก “แก้ได้” เมื่อผ่าน) · หลักฐานหลังแก้ (ระบุการหยุดของปั๊ม เวลา หรือชื่อกฎในแจ้งเตือน/Traces; หากยังไม่ผ่านให้บอกอาการ)
กฎเปิดปั๊มต้องเห็น Wet จึงจะเริ่มได้ ถ้าสายลูกลอยหลุดแล้วอ่านค่าได้เป็น Dry หรือบอร์ดขาดการเชื่อมต่อแล้วค่าเป็น unavailable ทั้งสองกรณีจะไม่ผ่านเงื่อนไข

5.2สั่งแล้วปั๊มไม่เดิน
เตรียมการตรวจจับ
- วางบอร์ด GoGo-IoT ให้แตะตัวปั๊ม หรือวางบนพื้นเดียวกันชิดปั๊ม ให้รับแรงสั่นได้ ลองสั่ง On–Off ตรวจว่า
ปั๊มกำลังทำงานเปลี่ยนตาม หากไม่เปลี่ยน ให้ขยับตำแหน่งหรือเพิ่ม ความไวตรวจจับปั๊ม
จำลองปัญหา
- สั่ง Off และถอดปลั๊กอะแดปเตอร์ก่อนถอดสายปั๊มที่จุดต่อจาก NO เก็บปลายสายไม่ให้แตะขั้วอื่น เสียบปลั๊ก รอให้บอร์ดเชื่อมต่อ แล้วสั่ง On
สังเกตผล
- สังเกตว่ารีเลย์เป็น On แต่ปั๊มเงียบและไม่สั่น สถานะรีเลย์ยืนยันได้เพียงว่าสวิตช์เปิดอยู่
สร้างกฎป้องกัน
ถ้าสั่งเปิดปั๊มแล้วเซนเซอร์ยังตรวจไม่พบการสั่นภายในเวลาที่กำหนด ให้หยุดปั๊มและแจ้งเตือน การสั่นเป็นหลักฐานประกอบ ไม่ได้ยืนยันว่าน้ำไหลถึงแปลง
| entity | บอกอะไร |
|---|---|
ความสั่นสะเทือน (vibration) |
ความแรงของการสั่น หน่วย mg (มิลลิจี) |
ปั๊มกำลังทำงาน (pump running) |
ผลการตรวจจับ เดิน / ไม่เดิน |
- สร้าง automation ชื่อ
Fail-safe - สั่งแล้วไม่เดิน - Trigger: เลือก รีเลย์ (relay) → Switch turned on ช่อง For at least ใส่ 15 วินาที (สั้นกว่ากฎจำกัดเวลาที่จะสร้างในข้อ 5.4 จึงแยกได้ว่ากฎใดเป็นผู้ตัด)
- Condition: กด + Add condition พิมพ์ ปั๊มกำลังทำงาน แล้วกดที่ ปั๊มกำลังทำงาน (pump running) เลือก State ในแผงด้านขวา จากนั้นกดช่อง State แล้วเลือก Off
- Action: เลือกรีเลย์ → Turn off switch และเพิ่ม Send a persistent notification ข้อความ
สั่งปั๊มแล้วแต่ไม่มีการสั่น ตรวจสายและระดับน้ำ
ทดสอบกฎ
- เมื่อสายยังถอดอยู่ สั่ง On กฎต้องปิดรีเลย์และแจ้งเตือนหลังครบประมาณ 15 วินาที
ต่อสายกลับและทดสอบ
- สั่ง Off ถอดปลั๊ก แล้วต่อสายกลับ ขันให้แน่น เสียบปลั๊กและรอให้บอร์ดพร้อม สั่ง On อีกครั้ง ปั๊มต้องเดินผ่าน 15 วินาทีได้ ถ้าถูกตัด ให้ตรวจตำแหน่งบอร์ดและความไว
บันทึกผล
-
ก่อนเพิ่มกฎ พบอาการ “รีเลย์เป็น On แต่ปั๊มไม่เดินเมื่อถอดสายปั๊ม” หรือไม่ (เลือก “สำเร็จ” เมื่อพบอาการนี้) · บันทึกสถานะบนจอและอาการจริงของปั๊มที่สังเกตได้
หลังเพิ่มกฎและทดสอบซ้ำ กฎทำงานผ่านเกณฑ์ของข้อนี้หรือไม่ (เลือก “แก้ได้” เมื่อผ่าน) · หลักฐานหลังแก้ (ระบุการหยุดของปั๊ม เวลา หรือชื่อกฎในแจ้งเตือน/Traces; หากยังไม่ผ่านให้บอกอาการ)

5.3บอร์ดเซนเซอร์ดับ

ใช้สวิตช์ ON / OFF ปิดบอร์ด ไม่ใช่ปุ่ม BOOT การถอด USB อย่างเดียวอาจไม่ดับเพราะมีถ่านในบอร์ด
จำลองปัญหา
- สั่งปั๊ม On แล้วปิดสวิตช์ GoGo-IoT ดูว่าเมื่อใดค่าความชื้นเปลี่ยนเป็น unavailable และปั๊มหยุดด้วยกฎใด จากนั้นเปิดบอร์ดกลับ
กฎ
Fail-safe - สั่งแล้วไม่เดินจากข้อ 5.2 อาจหยุดปั๊มก่อนระบบตรวจพบว่าบอร์ดหาย ให้ดูชื่อกฎในแจ้งเตือนหรือ Traces อย่าตัดสินจากการหยุดของปั๊มอย่างเดียว
เลือกวิธีรับมือ
- หากบอร์ดเซนเซอร์ดับแล้วระบบควบคุมไม่ได้รับค่าความชื้น กลุ่มคิดว่าปั๊มควรเปิด ปิด หรือคงสถานะเดิม เพราะอะไร
บันทึกผล
- กลุ่มเลือกให้ปั๊ม เพราะ
สร้างกฎหยุดปั๊มเมื่อเซนเซอร์หาย
กฎตัวอย่างนี้หยุดปั๊มเพื่อป้องกันการสูบน้ำต่อโดยไม่มีข้อมูล
- สร้าง automation ชื่อ
Fail-safe - เซนเซอร์หาย - Trigger: กด + Add trigger พิมพ์ ความชื้นอากาศ แล้วกดที่ ความชื้นอากาศ (humidity) ในแผงด้านขวาเลือก State changed ช่อง To เลือก Unavailable แล้วเพิ่ม Unknown อีกค่าในช่องเดียวกัน
- Action: เลือกรีเลย์ → Turn off switch และเพิ่ม Send a persistent notification ข้อความ
ไม่ได้รับค่าจากเซนเซอร์ หยุดปั๊มเพื่อความปลอดภัย
ทดสอบกฎ
- รอให้บอร์ดกลับมาแสดงค่า แล้วสั่งปั๊ม On และปิดบอร์ดอีกครั้ง ตรวจใน Traces ว่ากฎ
Fail-safe - เซนเซอร์หายทำงานเมื่อค่าเป็น unavailable และสั่ง Off พร้อมแจ้งเตือน แม้กฎอื่นจะหยุดปั๊มไปก่อน จากนั้นเปิดบอร์ดกลับ
บันทึกผล
-
ก่อนเพิ่มกฎ พบอาการ “ค่าความชื้นกลายเป็น unavailable หลังปิดบอร์ด” หรือไม่ (เลือก “สำเร็จ” เมื่อพบอาการนี้) · บันทึกสถานะบนจอและอาการจริงของปั๊มที่สังเกตได้
หลังเพิ่มกฎและทดสอบซ้ำ กฎทำงานผ่านเกณฑ์ของข้อนี้หรือไม่ (เลือก “แก้ได้” เมื่อผ่าน) · หลักฐานหลังแก้ (ระบุการหยุดของปั๊ม เวลา หรือชื่อกฎในแจ้งเตือน/Traces; หากยังไม่ผ่านให้บอกอาการ)

5.4ปั๊มเดินนานเกินไป
จำลองปัญหา
- สั่งปั๊ม On รอ 1 นาทีโดยรักษาความชื้นให้คงที่
ถ้าทดลองแล้วปั๊มถูกตัดที่ราว 15 วินาที แปลว่ากฎ
Fail-safe - สั่งแล้วไม่เดินจากข้อ 5.2 ทำงาน ให้ตรวจตำแหน่งบอร์ดและ ความไวตรวจจับปั๊ม แล้วจำลองใหม่
สังเกตผล
- สังเกตว่าปั๊มยังเดิน เพราะความชื้นไม่ข้ามเกณฑ์ปิด สั่ง Off ก่อนสร้างกฎ
สร้างกฎจำกัดเวลา
- สร้าง automation ชื่อ
Fail-safe - จำกัดเวลาเปิดปั๊ม - Trigger: เลือก รีเลย์ (relay) → Switch turned on ช่อง For at least ตั้ง 30 วินาที (ใช้สำหรับการทดลองนี้ และยาวกว่ากฎสั่งแล้วไม่เดิน 15 วินาที)
- Action: เลือกรีเลย์ → Turn off switch และเพิ่ม Send a persistent notification ข้อความ
ปั๊มเดินเกินเวลา ตัดการทำงานแล้ว โปรดตรวจสอบ
ทดสอบการหยุดตามเวลา
- กดปุ่มให้ปั๊มเดินอีกครั้ง ปั๊มต้องหยุดเองที่ราว 30 วินาที พร้อมข้อความแจ้งเตือน
บันทึกผล
-
ก่อนเพิ่มกฎ พบอาการ “ปั๊มยังเดินเมื่อครบเวลาสังเกตก่อนเพิ่มกฎจำกัดเวลา” หรือไม่ (เลือก “สำเร็จ” เมื่อพบอาการนี้) · บันทึกสถานะบนจอและอาการจริงของปั๊มที่สังเกตได้
หลังเพิ่มกฎและทดสอบซ้ำ กฎทำงานผ่านเกณฑ์ของข้อนี้หรือไม่ (เลือก “แก้ได้” เมื่อผ่าน) · หลักฐานหลังแก้ (ระบุการหยุดของปั๊ม เวลา หรือชื่อกฎในแจ้งเตือน/Traces; หากยังไม่ผ่านให้บอกอาการ)
เมื่อตัดปั๊มแล้ว ให้ตรวจสาเหตุก่อนเริ่มใหม่ กฎรดน้ำจะเริ่มอีกครั้งเมื่อความชื้นข้ามเกณฑ์เปิด ไม่ใช่ทันทีที่ปัญหาหมดไป

5.5วางแผนบำรุงรักษา
จากปัญหาที่จำลองมาทั้งสี่ข้อ อุปกรณ์ใดเสี่ยงเสียก่อน ต้องตรวจอะไรเป็นประจำ และใครเป็นคนตรวจ
บันทึกผล
- วางแผนสำหรับการใช้งานในฟาร์มจริง: ระบุผู้รับผิดชอบเป็นบทบาท เช่น เจ้าของฟาร์มหรือช่าง ระบุความถี่ เช่น ทุกวันหรือทุกเดือน และบอกว่าจะตรวจอะไรพร้อมวิธีตรวจ ไม่ต้องใส่ชื่อสมาชิกในกลุ่ม แล้วกรอกให้ครบทั้ง 5 รายการ
| รายการ | ใครควรตรวจ | ตรวจบ่อยแค่ไหน | สิ่งที่ต้องตรวจ |
|---|---|---|---|
| เซนเซอร์บนบอร์ด | |||
| สวิตช์ลูกลอย | |||
| ปั๊มและท่อ | |||
| รีเลย์และตู้ควบคุม | |||
| เครือข่ายและ Home Assistant |
คำถามท้ายกิจกรรม ถ้าเราตั้งกฎป้องกันเหล่านี้ไว้แล้ว แต่ Home Assistant เกิดดับหรือส่งคำสั่งไม่ได้ กฎยังช่วยหยุดปั๊มได้หรือไม่ และเราควรเพิ่มการป้องกันไว้ที่ใด
ก่อนจบช่วงที่ 2
- เปิด Home Assistant และแล็ปท็อปไว้ ไม่ให้เครื่องพักการทำงาน เพื่อเก็บข้อมูลต่อสำหรับช่วงที่ 3
- ปิดกฎ
รดน้ำ - เปิดปั๊มแล้วสั่งรีเลย์ Off ตรวจว่าปั๊มหยุด - จ่ายไฟให้บอร์ดทั้งสองตามเดิม และกด ดาวน์โหลดคำตอบ สำรองคำตอบของกลุ่ม
ต่อไป: ช่วงที่ 3 — โครงสร้างระบบ IoT: การสื่อสาร คลาวด์ แดชบอร์ด และการออกแบบระบบ