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

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

บ่อเก็บน้ำเกือบแห้งและปั๊มหยุดทำงาน โดยมีไฟแจ้งเตือนที่ตู้ควบคุม

55 นาที

อุปกรณ์ที่ใช้ ระบบรดน้ำทำงานอยู่ ปั๊มต่อกับรีเลย์และเดินแห้ง สวิตช์ลูกลอยในแก้วน้ำ

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

ใบงาน

เลือก “แก้ได้” เมื่อทดสอบผ่านเกณฑ์ของข้อนั้น

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

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

ก่อนจำลองปัญหาทุกข้อ

ตรวจความพร้อมก่อนทดสอบ

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

5.1น้ำต่ำแต่ปั๊มยังเดิน

จำลองปัญหา

  1. ยกลูกลอยพ้นน้ำ รอให้แสดง Dry แล้วสั่งปั๊ม On

สังเกตผล

  1. สังเกตว่าปั๊มยังเดิน (ฟังเสียง) เพราะกฎเดิมดูความชื้นแต่ไม่ตรวจระดับน้ำ จากนั้นสั่ง Off ก่อนแก้กฎ

สร้างกฎป้องกัน

ถ้าน้ำลดต่ำลงจนลูกลอยเป็น Dry แล้วปั๊มยังเดินอยู่ ให้สั่งหยุด และถ้าลูกลอยเป็น Dry อยู่ก่อนแล้วมีคนสั่ง On ก็ต้องหยุดปั๊มด้วย

  1. สร้างกฎใหม่ ส่วน When กด + Add trigger พิมพ์ ลูกลอย กดที่ สวิตช์ลูกลอย (float switch) เลือก Moisture cleared (ลูกลอยเปลี่ยนเป็น Dry)
  2. กด + Add trigger อีกครั้ง พิมพ์ รีเลย์ กดที่ รีเลย์ (relay) เลือก Switch turned on
  3. ส่วน And if กด + Add condition เลือกสวิตช์ลูกลอยแบบเดียวกัน แล้วเลือก Moisture is not detected (Dry)
  4. ส่วน Then do กด + Add action เลือกรีเลย์ → Turn off switch แล้วเพิ่ม action Send a persistent notification ข้อความ น้ำในถังต่ำ หยุดปั๊มแล้ว บันทึกชื่อ Fail-safe - น้ำหมด
  5. เปิดกฎ รดน้ำ - เปิดปั๊ม ส่วน And if เพิ่ม condition สวิตช์ลูกลอย Moisture is detected (Wet) แล้วบันทึก

ทดสอบให้ผ่านทั้งสองแบบ

  1. ลูกลอยเป็น Dry แล้วสั่ง On ทั้งจากปุ่มบนบอร์ดและหน้าอุปกรณ์ ปั๊มต้องหยุดและมีแจ้งเตือน
  2. ลูกลอยเป็น Wet สั่งปั๊มเดิน แล้วยกลูกลอยให้เป็น Dry ปั๊มต้องหยุดเช่นกัน

คืนสภาพลูกลอย

  1. วางลูกลอยกลับในน้ำ การกลับเป็น Wet อย่างเดียวไม่ได้สั่งปั๊มให้เริ่มใหม่

บันทึกผล

  1. ก่อนเพิ่มกฎ พบอาการ “ลูกลอยเป็น Dry แต่ยังสั่งให้ปั๊มเดินได้” หรือไม่ (เลือก “สำเร็จ” เมื่อพบอาการนี้) · บันทึกสถานะบนจอและอาการจริงของปั๊มที่สังเกตได้

    หลังเพิ่มกฎและทดสอบซ้ำ กฎทำงานผ่านเกณฑ์ของข้อนี้หรือไม่ (เลือก “แก้ได้” เมื่อผ่าน) · หลักฐานหลังแก้ (ระบุการหยุดของปั๊ม เวลา หรือชื่อกฎในแจ้งเตือน/Traces; หากยังไม่ผ่านให้บอกอาการ)

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

↑ กลับไปที่ใบงาน

5.2สั่งแล้วปั๊มไม่เดิน

เตรียมการตรวจจับ

  1. วางบอร์ด GoGo-IoT ให้แตะตัวปั๊ม หรือวางบนพื้นเดียวกันชิดปั๊ม ให้รับแรงสั่นได้ ลองสั่ง On–Off ตรวจว่า ปั๊มกำลังทำงาน เปลี่ยนตาม หากไม่เปลี่ยน ให้ขยับตำแหน่งหรือเพิ่ม ความไวตรวจจับปั๊ม

จำลองปัญหา

  1. สั่ง Off และถอดปลั๊กอะแดปเตอร์ก่อนถอดสายปั๊มที่จุดต่อจาก NO เก็บปลายสายไม่ให้แตะขั้วอื่น เสียบปลั๊ก รอให้บอร์ดเชื่อมต่อ แล้วสั่ง On

สังเกตผล

  1. สังเกตว่ารีเลย์เป็น On แต่ปั๊มเงียบและไม่สั่น สถานะรีเลย์ยืนยันได้เพียงว่าสวิตช์เปิดอยู่

สร้างกฎป้องกัน

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

entity บอกอะไร
ความสั่นสะเทือน (vibration) ความแรงของการสั่น หน่วย mg (มิลลิจี)
ปั๊มกำลังทำงาน (pump running) ผลการตรวจจับ เดิน / ไม่เดิน
  1. สร้าง automation ชื่อ Fail-safe - สั่งแล้วไม่เดิน
  2. Trigger: เลือก รีเลย์ (relay) → Switch turned on ช่อง For at least ใส่ 15 วินาที (สั้นกว่ากฎจำกัดเวลาที่จะสร้างในข้อ 5.4 จึงแยกได้ว่ากฎใดเป็นผู้ตัด)
  3. Condition: กด + Add condition พิมพ์ ปั๊มกำลังทำงาน แล้วกดที่ ปั๊มกำลังทำงาน (pump running) เลือก State ในแผงด้านขวา จากนั้นกดช่อง State แล้วเลือก Off
  4. Action: เลือกรีเลย์ → Turn off switch และเพิ่ม Send a persistent notification ข้อความ สั่งปั๊มแล้วแต่ไม่มีการสั่น ตรวจสายและระดับน้ำ

ทดสอบกฎ

  1. เมื่อสายยังถอดอยู่ สั่ง On กฎต้องปิดรีเลย์และแจ้งเตือนหลังครบประมาณ 15 วินาที

ต่อสายกลับและทดสอบ

  1. สั่ง Off ถอดปลั๊ก แล้วต่อสายกลับ ขันให้แน่น เสียบปลั๊กและรอให้บอร์ดพร้อม สั่ง On อีกครั้ง ปั๊มต้องเดินผ่าน 15 วินาทีได้ ถ้าถูกตัด ให้ตรวจตำแหน่งบอร์ดและความไว

บันทึกผล

  1. ก่อนเพิ่มกฎ พบอาการ “รีเลย์เป็น On แต่ปั๊มไม่เดินเมื่อถอดสายปั๊ม” หรือไม่ (เลือก “สำเร็จ” เมื่อพบอาการนี้) · บันทึกสถานะบนจอและอาการจริงของปั๊มที่สังเกตได้

    หลังเพิ่มกฎและทดสอบซ้ำ กฎทำงานผ่านเกณฑ์ของข้อนี้หรือไม่ (เลือก “แก้ได้” เมื่อผ่าน) · หลักฐานหลังแก้ (ระบุการหยุดของปั๊ม เวลา หรือชื่อกฎในแจ้งเตือน/Traces; หากยังไม่ผ่านให้บอกอาการ)

↑ กลับไปที่ใบงาน

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

ตำแหน่งสวิตช์ ON/OFF ทางซ้ายของบอร์ด GoGo-IoT ใกล้ช่อง USB-C และกลุ่มเซนเซอร์ทางขวา

ใช้สวิตช์ ON / OFF ปิดบอร์ด ไม่ใช่ปุ่ม BOOT การถอด USB อย่างเดียวอาจไม่ดับเพราะมีถ่านในบอร์ด

จำลองปัญหา

  1. สั่งปั๊ม On แล้วปิดสวิตช์ GoGo-IoT ดูว่าเมื่อใดค่าความชื้นเปลี่ยนเป็น unavailable และปั๊มหยุดด้วยกฎใด จากนั้นเปิดบอร์ดกลับ

กฎ Fail-safe - สั่งแล้วไม่เดิน จากข้อ 5.2 อาจหยุดปั๊มก่อนระบบตรวจพบว่าบอร์ดหาย ให้ดูชื่อกฎในแจ้งเตือนหรือ Traces อย่าตัดสินจากการหยุดของปั๊มอย่างเดียว

เลือกวิธีรับมือ

  1. หากบอร์ดเซนเซอร์ดับแล้วระบบควบคุมไม่ได้รับค่าความชื้น กลุ่มคิดว่าปั๊มควรเปิด ปิด หรือคงสถานะเดิม เพราะอะไร

บันทึกผล

  1. กลุ่มเลือกให้ปั๊ม เพราะ

สร้างกฎหยุดปั๊มเมื่อเซนเซอร์หาย

กฎตัวอย่างนี้หยุดปั๊มเพื่อป้องกันการสูบน้ำต่อโดยไม่มีข้อมูล

  1. สร้าง automation ชื่อ Fail-safe - เซนเซอร์หาย
  2. Trigger: กด + Add trigger พิมพ์ ความชื้นอากาศ แล้วกดที่ ความชื้นอากาศ (humidity) ในแผงด้านขวาเลือก State changed ช่อง To เลือก Unavailable แล้วเพิ่ม Unknown อีกค่าในช่องเดียวกัน
  3. Action: เลือกรีเลย์ → Turn off switch และเพิ่ม Send a persistent notification ข้อความ ไม่ได้รับค่าจากเซนเซอร์ หยุดปั๊มเพื่อความปลอดภัย

ทดสอบกฎ

  1. รอให้บอร์ดกลับมาแสดงค่า แล้วสั่งปั๊ม On และปิดบอร์ดอีกครั้ง ตรวจใน Traces ว่ากฎ Fail-safe - เซนเซอร์หาย ทำงานเมื่อค่าเป็น unavailable และสั่ง Off พร้อมแจ้งเตือน แม้กฎอื่นจะหยุดปั๊มไปก่อน จากนั้นเปิดบอร์ดกลับ

บันทึกผล

  1. ก่อนเพิ่มกฎ พบอาการ “ค่าความชื้นกลายเป็น unavailable หลังปิดบอร์ด” หรือไม่ (เลือก “สำเร็จ” เมื่อพบอาการนี้) · บันทึกสถานะบนจอและอาการจริงของปั๊มที่สังเกตได้

    หลังเพิ่มกฎและทดสอบซ้ำ กฎทำงานผ่านเกณฑ์ของข้อนี้หรือไม่ (เลือก “แก้ได้” เมื่อผ่าน) · หลักฐานหลังแก้ (ระบุการหยุดของปั๊ม เวลา หรือชื่อกฎในแจ้งเตือน/Traces; หากยังไม่ผ่านให้บอกอาการ)

↑ กลับไปที่ใบงาน

5.4ปั๊มเดินนานเกินไป

จำลองปัญหา

  1. สั่งปั๊ม On รอ 1 นาทีโดยรักษาความชื้นให้คงที่

ถ้าทดลองแล้วปั๊มถูกตัดที่ราว 15 วินาที แปลว่ากฎ Fail-safe - สั่งแล้วไม่เดิน จากข้อ 5.2 ทำงาน ให้ตรวจตำแหน่งบอร์ดและ ความไวตรวจจับปั๊ม แล้วจำลองใหม่

สังเกตผล

  1. สังเกตว่าปั๊มยังเดิน เพราะความชื้นไม่ข้ามเกณฑ์ปิด สั่ง Off ก่อนสร้างกฎ

สร้างกฎจำกัดเวลา

  1. สร้าง automation ชื่อ Fail-safe - จำกัดเวลาเปิดปั๊ม
  2. Trigger: เลือก รีเลย์ (relay) → Switch turned on ช่อง For at least ตั้ง 30 วินาที (ใช้สำหรับการทดลองนี้ และยาวกว่ากฎสั่งแล้วไม่เดิน 15 วินาที)
  3. Action: เลือกรีเลย์ → Turn off switch และเพิ่ม Send a persistent notification ข้อความ ปั๊มเดินเกินเวลา ตัดการทำงานแล้ว โปรดตรวจสอบ

ทดสอบการหยุดตามเวลา

  1. กดปุ่มให้ปั๊มเดินอีกครั้ง ปั๊มต้องหยุดเองที่ราว 30 วินาที พร้อมข้อความแจ้งเตือน

บันทึกผล

  1. ก่อนเพิ่มกฎ พบอาการ “ปั๊มยังเดินเมื่อครบเวลาสังเกตก่อนเพิ่มกฎจำกัดเวลา” หรือไม่ (เลือก “สำเร็จ” เมื่อพบอาการนี้) · บันทึกสถานะบนจอและอาการจริงของปั๊มที่สังเกตได้

    หลังเพิ่มกฎและทดสอบซ้ำ กฎทำงานผ่านเกณฑ์ของข้อนี้หรือไม่ (เลือก “แก้ได้” เมื่อผ่าน) · หลักฐานหลังแก้ (ระบุการหยุดของปั๊ม เวลา หรือชื่อกฎในแจ้งเตือน/Traces; หากยังไม่ผ่านให้บอกอาการ)

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

↑ กลับไปที่ใบงาน

5.5วางแผนบำรุงรักษา

จากปัญหาที่จำลองมาทั้งสี่ข้อ อุปกรณ์ใดเสี่ยงเสียก่อน ต้องตรวจอะไรเป็นประจำ และใครเป็นคนตรวจ

บันทึกผล

  1. วางแผนสำหรับการใช้งานในฟาร์มจริง: ระบุผู้รับผิดชอบเป็นบทบาท เช่น เจ้าของฟาร์มหรือช่าง ระบุความถี่ เช่น ทุกวันหรือทุกเดือน และบอกว่าจะตรวจอะไรพร้อมวิธีตรวจ ไม่ต้องใส่ชื่อสมาชิกในกลุ่ม แล้วกรอกให้ครบทั้ง 5 รายการ
รายการ ใครควรตรวจ ตรวจบ่อยแค่ไหน สิ่งที่ต้องตรวจ
เซนเซอร์บนบอร์ด
สวิตช์ลูกลอย
ปั๊มและท่อ
รีเลย์และตู้ควบคุม
เครือข่ายและ Home Assistant

↑ กลับไปที่ใบงาน

คำถามท้ายกิจกรรม ถ้าเราตั้งกฎป้องกันเหล่านี้ไว้แล้ว แต่ Home Assistant เกิดดับหรือส่งคำสั่งไม่ได้ กฎยังช่วยหยุดปั๊มได้หรือไม่ และเราควรเพิ่มการป้องกันไว้ที่ใด

ก่อนจบช่วงที่ 2

ต่อไป: ช่วงที่ 3 — โครงสร้างระบบ IoT: การสื่อสาร คลาวด์ แดชบอร์ด และการออกแบบระบบ