สร้าง DIY UPS สำรองไฟ 12V สุดอึด! ให้ Home Assistant และ Router ออนไลน์ไม่มีสะดุด

DIY LiFePO4 UPS System Overview Diagram
แผนผังภาพรวมของระบบ DIY LiFePO4 UPS

สวัสดีชาว Smart Home และ Maker ทุกคนครับ! ใครที่รันเซิร์ฟเวอร์ Home Assistant Green หรือมี Xfinity XB7 Modem (เร้าเตอร์เน็ต) เปิดไว้ตลอด 24 ชั่วโมง คงจะรู้ดีว่า "ไฟตกไฟดับ" คือฝันร้ายที่ทำให้ระบบล่มได้ง่ายๆ

ถ้าพูดถึงการแก้ปัญหา หลายคนอาจจะนึกถึงการซื้อ UPS สำเร็จรูปอย่าง APC BE600M1 (ราคาประมาณ $85) มาใช้ แต่วันนี้เราจะพามาเจาะลึกโปรเจกต์ DIY UPS 12V ที่ใช้แบตเตอรี่ LiFePO4 (ลิเธียมฟอสเฟต) ขนาด 10Ah ซึ่งต้นทุนการสร้างอาจจะพอๆ กันในระยะ 10 ปี (คำนวณรวมค่าเปลี่ยนแบตและค่าไฟ) แต่สิ่งที่คุณจะได้คือ อายุแบตที่ยืนยาวกว่า, การสลับไฟที่ไวกว่าระดับมิลลิวินาที, ไม่ต้องผ่านตัวแปลงแรงดัน DC-DC ให้เสียพลังงานเปล่าๆ และที่สำคัญคือ มันต่อเข้า Home Assistant ได้โดยตรง! (อ่านเหตุผลการออกแบบฉบับเต็มได้ที่นี่)

ภาพรวมระบบทำงานอย่างไร? (System Overview)

คอนเซปต์ของระบบนี้เรียบง่ายแต่ทรงพลังครับ:

  • รับไฟบ้าน (AC grid) เข้ามาที่ Mean Well HDR-60-12 PSU ซึ่งตั้งค่าแรงดันไว้ที่ 13.3V (Float charge)
  • ไฟนี้จะชาร์จแบตเตอรี่ 12V 10Ah LiFePO4 ผ่าน MOSFET ideal diode
  • เมื่อไฟดับ: โหลดจะสลับไปดึงไฟจากแบตเตอรี่โดยตรงภายในเวลาไม่ถึง 1ms (แทบไม่รู้สึกตัว)
  • ระบบป้องกัน: ใช้ Victron BatteryProtect BP-65 เป็นตัวตัดการจ่ายไฟเข้าโหลดเมื่อแบตเตอรี่ลดลงเหลือ 11.8V เพื่อป้องกันแบตพังจากการคลายประจุมากเกินไป (Over-discharge)
  • การมอนิเตอร์: มี Shelly Plus Uni ทำหน้าที่อ่านค่าแรงดันแบตเตอรี่และอุณหภูมิ เพื่อรายงานผลเข้า Home Assistant ตลอดเวลา

💡 Project Update (ก้าวต่อไปสู่ UPS-MONITOR-V2):
เพื่อรีดประสิทธิภาพให้สุด ผู้สร้างกำลังเปลี่ยนจากการใช้ Shelly Plus Uni ทั่วไป มาเป็นการสร้าง PCB เองโดยใช้ชิป Texas Instruments INA228 คู่กับบอร์ด ESP32-C3 การอัปเกรดนี้ให้ความแม่นยำระดับ 20-bit และลดการกินพลังงานลง 50% (เหลือเพียง ~243mW) โดยส่งข้อมูลตรงเข้า Home Assistant ผ่าน ESPHome ชนิดที่ว่าเช็คพลังงานได้ทุกมิลลิแอมป์เลยทีเดียว!

หากเพื่อนๆ ชาว Maker อยากลองอัปเกรดโปรเจกต์ด้วย บอร์ด ESP32 หรือกำลังหา เส้นพลาสติก 3D Print (Filament) คุณภาพสูง เพื่อนำมาปริ้นท์แท่นยึดอุปกรณ์ (Mount) และเคสกันน้ำใส่ชุด UPS แบบในโปรเจกต์นี้ แวะมาเลือกช้อปของแท้พร้อมส่งได้ที่ Globalbyte เลยครับ!

ผลการทดสอบประสิทธิภาพ (Performance)

จากการทดสอบจริง (Commissioning Run) (ดู Report ฉบับเต็ม) ระบบนี้สามารถจ่ายไฟให้โหลดประมาณ 14.5W ได้นานถึง 4.3 ชั่วโมง ก่อนที่ฮาร์ดแวร์จะตัดไฟที่ 11.8V (LVD)

ทำไมถึงรันได้แค่ 4.3 ชั่วโมง (ประมาณ 55% ของความจุแบต 10Ah)?
คำตอบคือ "ความตั้งใจในการออกแบบ" ครับ ระบบนี้ใช้สถาปัตยกรรมแบบ Single-rail 13.3V CV (ใช้รางไฟเส้นเดียวทั้งชาร์จและจ่ายโหลด) เพื่อให้แรงดันปลอดภัยต่ออุปกรณ์ที่นำมาเสียบ การชาร์จจึงถูกล็อกไว้ที่ 13.3V ทำให้แบตเตอรี่ชาร์จเข้าเพียง 65–75% SOC เท่านั้น และไม่สามารถเข้าถึงความจุด้านบนอีก ~25–35% ได้ หากต้องการใช้แบตเต็ม 100% จะต้องเปลี่ยนไปใช้ระบบชาร์จ 14.4V แยกต่างหาก คู่กับตัวแปลง DC-DC regulator ครับ

LiFePO4 Discharge Curve
กราฟคุณลักษณะการคลายประจุ (Discharge Characteristics) จะเห็นแรงดันคงที่ (Plateau) จาก 13.0V ถึง 12.8V และจะร่วงอย่างรวดเร็ว (Sharp cliff) เมื่อต่ำกว่า 12.45V

จากการทดสอบคายประจุและชาร์จซ้ำ 2 รอบ (Two-cycle discharge test):

  • แรงดันคงที่มาก (Variance ต่ำกว่า 0.2%/hr) ในช่วงโหลดเบา
  • Victron BP-65 ตัดไฟแม่นยำมากที่ 11.77V (คลาดเคลื่อนแค่ ±0.03V จากเป้าหมาย 11.8V)
  • เมื่อไฟมา การชาร์จแบบ Bulk ช่วง 12.9V ถึง 13.2V ใช้เวลาไม่ถึง 12 นาที

5 โหมดการทำงาน (Operating Modes)

  • Mode 1 — ไฟบ้านปกติ (AC Present): PSU จ่ายไฟ 13.3V โหลดดึงไฟจาก PSU แบตเตอรี่อยู่ในโหมด Float
  • Mode 2 — ไฟดับ (AC Failure): PSU หยุดทำงาน โหลดจะเปลี่ยนไปดึงไฟจากแบตเตอรี่ผ่านวงจรแบบไร้รอยต่อ (ไม่มีการชะงัก)
  • Mode 3 — แบตเตอรี่ต่ำ (~12.2V): Shelly ตรวจจับแรงดันได้ ส่งสัญญาณให้ Home Assistant เริ่ม Shutdown ตัวเองอย่างปลอดภัย ส่วน Modem เน็ตยังคงรันต่อไป
  • Mode 4 — ตัดไฟฉุกเฉิน (LVD Cutoff ที่ 11.8V): Victron BP-65 ถอดโหลดทั้งหมดออกหลังหน่วงเวลา 90 วินาที เพื่อเซฟแบตเตอรี่
  • Mode 5 — ไฟบ้านกลับมา (AC Restoration): PSU จ่ายไฟ 13.3V อีกครั้ง Ideal diode สลับแหล่งจ่ายไฟ และ BP-65 จะต่อโหลดกลับเข้ามาหลังหน่วงเวลา 30 วินาที

การมอนิเตอร์บน Home Assistant

Home Assistant UPS Integration
หน้าตา Dashboard บน Home Assistant ที่เชื่อมต่อผ่าน Shelly Plus Uni แสดงสถานะแบตและอุณหภูมิ
Commissioning Results Chart
กราฟผลการทดสอบการคายประจุและชาร์จกลับตลอด 2 วัน

การจัดวางในกล่อง (Enclosure Layout)

ระบบทั้งหมดถูกประกอบลงในกล่องกันน้ำ LeMotech IP65 (ขนาดภายใน 9.6″×7.6″×4.5″) โดยจับแยก PSU ไว้ฝั่งซ้าย และแบตเตอรี่ไว้ตรงกลาง เพื่อแยกส่วน AC/DC ออกจากกัน และลดสัญญาณรบกวน (EMI)

UPS Layout Diagram
แปลนการจัดวางอุปกรณ์ภายในกล่อง (Elevation & Plan views)
Assembly Photo 1 Assembly Photo 2 Wiring Close up 1 Wiring Close up 2 Wiring Close up 3 Wiring Close up 4 Wiring Close up 5 Wiring Close up 6 Wiring Close up 7 Completed Box

ตารางการวัดประสิทธิภาพ (Measured Performance)

Metric AC Measured DC Estimated Method
HA Green typical 0.89W 0.73W 48.5h Kill-a-Watt
XB7 modem typical 14.72W 12.14W 72.4h Kill-a-Watt
Combined (modem + HA Green) 15.96W 13.17W 74.1h Kill-a-Watt
Peak system load ~18.7W Devices 17.66W + Shelly 1.0W + BP-65 0.02W
Total system load ~13.7W Combined 13.17W + Shelly 0.50W + BP-65 0.02W

จุดติดตั้งฟิวส์ (Fuse Locations)

ฟิวส์ (Fuse) พิกัด (Rating) ตำแหน่งและหน้าที่ (Location / Purpose)
F1 10A fast-blow PSU output (ป้องกันไฟออกจาด PSU)
F2 10A fast-blow Battery positive (ต้องใส่เป็นอันดับแรก! ป้องกันแบตเตอรี่ลัดวงจร)
F3 2A fast-blow BP-65 OUT → HA Green (ป้องกันโหลดเซิร์ฟเวอร์)
F4 5A fast-blow BP-65 OUT → XB7 Modem (ป้องกันโหลดเร้าเตอร์)

ตารางการเดินสายไฟ (Wiring Instructions)

การเดินสายทั้งหมดใช้สายไฟขนาด 16AWG และรักษาความยาวสายแต่ละช่วงให้สั้น (ประมาณ 6 นิ้ว) เพื่อลดแรงดันตกคร่อม (Voltage drop)

1. AC Input → PSU

From To
Power Cord — Black (Hot) PSU Pin 1 AC/L
Power Cord — White (Neutral) PSU Pin 2 AC/N
Power Cord — Green (Ground) N/A (พันเทปเก็บไว้ เพราะ HDR-60-12 เป็น Class II)

2. PSU → Ideal Diode

From To
PSU Pin 4/5 DC Output V− Ideal Diode GND (V−)
PSU Pin 6/7 DC Output V+ Ideal Diode VIN (V+) ผ่านฟิวส์ F1 (10A)

3. แบตเตอรี่ & โหลดผ่าน Victron BP-65

From To
Battery (V+) Terminal Block Input 1 (+) ผ่านฟิวส์ F2 (10A)
Terminal Block + BP-65 IN terminal
Terminal Block − BP-65 GND terminal
BP-65 OUT terminal F3 input (2A) สำหรับ HA Green
BP-65 OUT terminal F4 input (5A) สำหรับ XB7 Modem

4. Shelly Plus Uni Monitoring

From To
Battery + Shelly Pin 1 (V+) และ Pin 3 (Analog In สำหรับวัดโวลต์)
Battery − Shelly Pin 2 (GND)
DS18B20 Yellow/White (Data) Shelly Pin 5 (Data อุณหภูมิ)

อ้างอิงและเรียบเรียงข้อมูลจาก: Globalbyteshop Blog

แหล่งที่มาบทความต้นฉบับ: Hackaday Project - DIY UPS for Home Assistant

*คำเตือน: เนื้อหานี้เป็นการสรุปและเรียบเรียงแนวคิดจากโปรเจกต์ต้นฉบับภาษาอังกฤษ ข้อมูลและขั้นตอนการต่อวงจรบางส่วนอาจถูกจัดกลุ่มใหม่เพื่อให้เข้าใจง่าย ข้อควรระวังอย่างยิ่ง: โปรเจกต์นี้เกี่ยวข้องกับกระแสไฟฟ้าสลับ (AC Mains) และแบตเตอรี่ LiFePO4 ซึ่งอาจก่อให้เกิดอันตรายถึงชีวิตหากต่อวงจรผิดพลาด ผู้ปฏิบัติงานควรมีความรู้ด้านระบบไฟฟ้าและการป้องกันกระแสเกิน (Overcurrent protection) เป็นอย่างดี ผู้สนใจควรศึกษารายละเอียดเชิงลึก สเปกอุปกรณ์ และตารางการเชื่อมต่อฉบับสมบูรณ์ได้จาก เว็บไซต์ต้นฉบับ ก่อนลงมือทำ

แท็ก


Blog posts

เข้าสู่ระบบ

ลืมรหัสผ่านใช่ไหม?

ยังไม่มีบัญชีใช่ไหม?
สร้างบัญชี