กลับไปบทความทั้งหมด
EP.15 ให้ IoT สั่งงานได้อย่างปลอดภัย: รีเลย์ MOSFET มอเตอร์ และ Fail-safe
IoT

EP.15 ให้ IoT สั่งงานได้อย่างปลอดภัย: รีเลย์ MOSFET มอเตอร์ และ Fail-safe

SPV Tech Solutions11 พฤศจิกายน 25693 min
#iot-product-design#actuators#relay#mosfet

📘 ซีรีส์ออกแบบ IoT Product · EP.15/70 · บทที่ 2: พื้นฐานฮาร์ดแวร์และการเลือกชิ้นส่วน

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

ทำไมห้ามต่อโหลดเข้าขา MCU ตรง ๆ

ขา GPIO (ขาสัญญาณอเนกประสงค์) ของไมโครคอนโทรลเลอร์จ่ายกระแสได้น้อยมาก ปกติแค่หลักมิลลิแอมป์ถึงราวสิบกว่ามิลลิแอมป์ (ค่าจริงต้องดู datasheet ของชิปที่ใช้) พอไว้ขับ LED หรือ buzzer ตัวเล็กเท่านั้น ส่วน ปั๊ม พัดลม โซลินอยด์วาล์ว กินกระแสหลักร้อยมิลลิแอมป์ถึงหลายแอมป์ ต่อตรงเมื่อไรขาพังหรือบอร์ดรีเซ็ตเอง

ทางออกคือใช้ขา MCU เป็นแค่ "สวิตช์สั่ง" แล้วให้อุปกรณ์อีกตัวรับภาระกระแสแทน:

  • ทรานซิสเตอร์ / MOSFET (สวิตช์อิเล็กทรอนิกส์) สำหรับโหลดไฟตรง (DC) เช่นปั๊ม 12V พัดลม 12V · เลือก MOSFET แบบ logic-level ที่เปิดเต็มที่ด้วยแรงดันขา MCU (3.3V) ได้ ไม่งั้นจะร้อนจัด
  • ตัวต้านทาน pull-down ที่ขา gate ให้ MOSFET ปิดแน่นอนตอนบูตเครื่อง
  • ไดโอดกันไฟย้อน (flyback diode) คร่อมขดลวดทุกชนิด (มอเตอร์ รีเลย์ โซลินอยด์) ตอนตัดไฟ ขดลวดจะเตะแรงดันย้อนกลับสูงกว่าแรงดันจ่ายหลายเท่า ไม่มีไดโอดรับไว้ MOSFET หรือ MCU จะพังแบบสุ่ม
  • กระแสกระชาก (inrush) มอเตอร์และปั๊มช่วงเริ่มหมุนดึงกระแสสูงกว่าตอนหมุนปกติหลายเท่า เลือกอุปกรณ์สวิตช์ ฟิวส์ และแหล่งจ่ายให้รับช่วงนี้ได้ (เรื่องแหล่งจ่ายลงลึกใน EP.16)

รีเลย์ธรรมดา vs SSR vs คอนแทคเตอร์

ถ้าโหลดเป็น ไฟบ้าน 220V AC ต้องใช้อุปกรณ์ที่แยกฝั่งไฟแรงสูงออกจากวงจรเราจริง ๆ

อุปกรณ์หลักการเหมาะกับข้อควรรู้
รีเลย์ธรรมดาขดลวดดูดหน้าสัมผัสเหล็กโหลดเล็ก–กลาง เปิดปิดไม่ถี่มีเสียงคลิก หน้าสัมผัสสึกตามจำนวนครั้ง
SSR (Solid State Relay)สวิตช์สารกึ่งตัวนำ ไม่มีชิ้นส่วนขยับเปิดปิดถี่ เงียบร้อน ต้องมีแผ่นระบายความร้อน มีกระแสรั่วตอนปิด
คอนแทคเตอร์รีเลย์ตัวใหญ่สำหรับงานกำลังมอเตอร์/ปั๊มขนาดใหญ่ ตู้ควบคุมใช้ร่วมกับเบรกเกอร์และอุปกรณ์ป้องกันในตู้

ดูพิกัดหน้าสัมผัสให้ตรง ชนิดโหลด ไม่ใช่แค่ตัวเลขแอมป์ เพราะโหลดมอเตอร์หนักกับหน้าสัมผัสกว่าฮีตเตอร์ที่กระแสเท่ากัน

ส่วนที่ต่อกับไฟบ้าน (สายเมน เบรกเกอร์ เครื่องตัดไฟรั่ว การต่อลงดิน) ควรให้ช่างไฟที่มีความรู้เป็นผู้ติดตั้ง และใช้อุปกรณ์ที่ผ่านมาตรฐาน — ถ้าจะขายเป็นสินค้า ต้องตรวจสอบมาตรฐานความปลอดภัยทางไฟฟ้าที่เกี่ยวข้องกับหน่วยงานรับรอง (ไม่ใช่คำแนะนำทางกฎหมาย)

มอเตอร์ วาล์ว ปั๊ม และการแยกวงจร

มอเตอร์ DC ที่ต้อง กลับทิศหรือปรับความเร็ว ใช้ไดรเวอร์มอเตอร์ (H-bridge) แทน MOSFET ตัวเดียว ถ้าแค่เปิด/ปิด MOSFET ตัวเดียวพอ

การแยกวงจร (isolation) คือกันไฟฝั่งกำลังไม่ให้ถึงฝั่ง MCU ด้วย optocoupler (ส่งสัญญาณด้วยแสง) หรือรีเลย์/SSR ที่มีฉนวนแยกในตัว บวกกับ ระยะห่างบนแผ่นวงจร ระหว่างลายทองแดงฝั่งไฟบ้านกับฝั่งไฟต่ำ ฝั่งกำลังมีปัญหาเมื่อไร ความเสียหายต้องจบอยู่ฝั่งนั้น ไม่ลามมาบอร์ดและคนที่จับเครื่อง

Fail-safe: เครื่องเสีย ต้องเสียแบบไหน

IoT ที่แค่วัด ถ้าพังอย่างมากคือข้อมูลหาย แต่ตัวที่สั่งงาน ถ้าพังอาจของเสีย ไฟไหม้ หรือคนบาดเจ็บ จึงต้องตอบให้ได้ตั้งแต่วันแรก: ถ้าเครื่องค้าง ไฟดับ เน็ตหลุด หรือเซนเซอร์เสีย โหลดควรอยู่สถานะไหน?

  • สถานะเริ่มต้นเมื่อไม่มีสัญญาณ — เลือกต่อหน้าสัมผัสแบบปกติเปิด (NO) หรือปกติปิด (NC) ให้ "ไม่มีไฟเลี้ยงขดลวด = สถานะปลอดภัย"
  • watchdog (ตัวจับเวลาที่รีเซ็ตเครื่องเมื่อโปรแกรมค้าง) ป้องกันโหลดค้างเปิดตลอดไป
  • เวลาทำงานสูงสุด — ปั๊มเปิดได้ไม่เกิน X นาทีต่อรอบ
  • ตัดสินใจบนเครื่อง ไม่พึ่งคลาวด์ — เน็ตหลุดแล้วเครื่องต้องทำงานตามกฎพื้นฐานต่อได้เอง (ลำดับสถานะบนเครื่องลงลึกใน EP.26)
  • ป้องกันชั้นที่ไม่ใช่ซอฟต์แวร์ เช่น ฟิวส์ ลูกลอยตัดปั๊มเมื่อน้ำหมด — ทำงานได้แม้เฟิร์มแวร์มีบั๊ก

ลองใช้กับโปรเจกต์ตัวอย่าง: ตัวเฝ้าโรงเห็ด

รุ่นแรกมีแค่ buzzer กับ LED (โหลดเล็ก) แต่ถ้า รุ่น 2 อยากสั่งปั๊มพ่นหมอกและพัดลมระบายอากาศ เราตัดสินใจดังนี้:

ใช้ปั๊มและพัดลมไฟตรง 12V ขับด้วย MOSFET ไม่เอาไฟบ้านเข้ากล่องของเรา เหตุผลคือโรงเห็ดเปียกและมีหยดน้ำเกือบตลอดเวลา การพาไฟ 220V เข้ามาใกล้น้ำเพิ่มความเสี่ยงไฟดูดสูงมาก ถ้าฟาร์มมีปั๊มไฟบ้านอยู่แล้ว ให้เครื่องเราส่งแค่สัญญาณไปสั่งรีเลย์ในตู้ไฟที่ช่างไฟติดตั้ง แทน

Fail-safe ที่เลือก:

เริ่มเครื่อง / รีบูต      -> ปั๊มปิด พัดลมปิด
เซนเซอร์อ่านไม่ได้        -> ปั๊มปิด + แจ้งเตือน
พ่นหมอกต่อรอบ             -> ไม่เกิน MAX_ON นาที แล้วพักบังคับ
เน็ตหลุด                  -> ใช้ช่วงความชื้นที่ตั้งไว้ล่าสุด ทำงานต่อบนเครื่อง

เหตุผลที่ให้ปั๊ม "ปิด" เมื่อไม่แน่ใจ: พ่นหมอกมากเกินไปทำให้น้ำขังและเชื้อราอื่นแทรกได้ ค่า MAX_ON ให้เกษตรกรตั้งเองตามชนิดเห็ดและคู่มือการเพาะ

กับดักที่เจอบ่อย: ลืมไดโอดคร่อมปั๊มหรือรีเลย์ แล้วเครื่องรีเซ็ตเองทุกครั้งที่ปั๊มดับ หลายคนไล่แก้โค้ดหรือ Wi-Fi อยู่หลายวัน ทั้งที่ต้นเหตุคือแรงดันย้อนจากขดลวด

เช็กลิสต์ก่อนไปตอนถัดไป

  1. ลิสต์โหลดทุกตัวที่จะสั่ง พร้อม แรงดัน กระแสปกติ และกระแสตอนเริ่ม จาก datasheet หรือป้ายเครื่อง
  2. แยกให้ชัดว่าโหลดไหน DC (ขับด้วย MOSFET/ไดรเวอร์) โหลดไหน AC (รีเลย์/SSR/คอนแทคเตอร์ + ช่างไฟ)
  3. เขียนตาราง fail-safe: ค้าง / ไฟดับ / เน็ตหลุด / เซนเซอร์เสีย → โหลดแต่ละตัวอยู่สถานะไหน
  4. ใส่ไดโอดคร่อมขดลวดทุกตัว และ pull-down ที่ขา gate ทุก MOSFET ในผังวงจร
  5. กำหนดการป้องกันที่ไม่ใช่ซอฟต์แวร์อย่างน้อย 1 ชั้น (ฟิวส์ ลูกลอย หรือตัวตัดความร้อน)
สรุปสำคัญ

ขา MCU มีหน้าที่แค่ "สั่ง" ให้อุปกรณ์อื่นรับภาระกระแส และทุกโหลดต้องมีคำตอบล่วงหน้าว่าเมื่อระบบล้ม มันจะหยุดในสถานะที่ปลอดภัย

ตอนต่อไป — EP.16: ออกแบบไฟเลี้ยงวงจร (1): เลือกแหล่งไฟ LDO หรือบั๊กคอนเวอร์เตอร์ และทำ Power Budget

อยากให้ช่วยออกแบบวงจรขับโหลดและระบบ fail-safe ให้อุปกรณ์ของคุณ ดูบริการออกแบบอุปกรณ์ IoT เฉพาะงานที่ /iot หรือปรึกษาฟรีที่ /consult · ทัก LINE @spvtech

ถ้าบทความนี้มีประโยชน์ แชร์ให้เพื่อนๆ ด้วยนะ

ยังไม่แน่ใจว่าธุรกิจคุณควรเริ่มใช้ AI ตรงไหน?

เช็กฟรีใน 2 นาที → รู้คะแนนโอกาสใช้ AI + 3 ขั้นแรกที่ควรทำ ไม่ต้องสมัคร

เช็กสุขภาพธุรกิจฟรี