บทความนี้จะเป็นการนำเสนอ การวัดแรงดัน กระแส PowerFactor และการนำเอาข้อมูลที่ได้ไปคำนวณเป็นค่าใช้ไฟฟ้าในแต่ละวัน หรือแต่ละเดือน โดยสามารถนำไปแสดงเป็น Graph หรือ Lovelace ต่างๆบน Home Assistant

REQUIREMENTS

– PZEM-004T AC พร้อม CT แบบเปิดได้(ใช้ง่ายกว่า)
– ESP8266
– Regulator 220VAC to 5VDC
– Home Assistant
– ESPHome

WIRING DIAGRAM

การทำงานคือจ่ายแรงดันไฟบ้าน 220VAC เข้าไปยัง PZEM-004T Module และลากสายต่อมาที่ Regulator แปลงไฟ 220VAC เป็น 5VDC เพื่อไปจ่ายให้ D1 Mini ส่วนที่ UART ของ PZEM-004T นั้นก็ต่อตรงตามนั้น +5V , GND , TX , RX และสุดท้าย CT Clamp ให้ไปคล้องกับสาย L หรือสาย N ที่ต้องการวัด กรณีที่บ้านมีสามเฟส แต่อยากวัดรวมสามารถใช้เพียงชุดเดียวได้โดยการคล้องที่สาย N เพราะตามหลักการกระแสไหลเข้า เท่ากับกระแสไหลออก

ESPHome

ที่ ESPHome ให้ทำการสร้าง Project ขึ้นมาใหม่เลือกบอร์ดที่ใช้งานให้ถูกต้อง ระบุ WIFI และค่าต่างๆที่ใช้งานลงไปจากนั้น Copy Code ส่วน PZEM-004T ไปใช้ได้เลย และให้ทำการ Compile Project และเมื่อได้ไฟล์ .bin แล้วให้นำไปแฟลชผ่าน ESPEasy หรือตัวไหนก็ได้ที่รองรับการแฟลช ESP8266 และเมื่อเปิดขึ้นมาใหม่ที่ Home Assistant จะมี Balloon เตือนว่ามีอุปกรณ์ใหม่เข้ามา หากไม่มีมาให้ไปเพิ่มเองได้ที่ Integration > ESPHome พวก Entity การวัดค่าต่างๆจะขึ้นแสดงบน HASS ทันที

https://pastebin.pl/view/embed/9c359480
  • UART
    โดยที่ถ้าต่อตามในภาพตัวอย่างจะใช้ RX > TX , TX > RX จึงใช้ GPIO1 และ GPIO3 หากต้องการใช้ Pin อื่นให้แก้ส่วน UART นี้
  • Switch
    มีไว้สำหรับเป็น Trigger ในการ Reset ข้อมูลประจำวันไปสร้าง Automation บน Hass อีกทีเพื่อรันสวิตช์ตัวนี้
  • Calibrate 
    บรรทัดนี้ให้ปิดบรรทัดที่ 25-27 ไว้ก่อนและให้ทำการเทียบหน่วยกับของจริงเช่นเริ่มดูหน่วยเวลา 12.00 จดมิเตอร์ไว้ว่าเริ่มที่เท่าไหร่ และอีก 24 ชั่วโมงถัดมาให้ทำการจดค่าใหม่มาและทำการหักลบจากของเก่า จากนั้นจึงเปิด Code ขึ้นมาและให้แก้ไขบรรทัดที่ 27 โดยเลขชุดหน้าคือเลขที่ PZEM อ่านได้ และเลขชุดหลังคือเลขจากมิเตอร์ของจริง การคาลิเบรทเป็นการคาลิเบรทเชิงเส้น

HOME ASSISTANT
จัด Lovelace Card ได้ตามใจชอบจากข้อมูลที่ได้มาหากต้องทำการวัดข้อมูลแต่ละวันสามารถเพิ่ม Code ส่วนของ Uitily Meter ได้จาก Code ด้านล่าง

https://pastebin.pl/view/embed/054d72d3

โดยในตัวอย่างรับค่า Energy มาเก็บโดยให้ทำการ Reset ทุกเที่ยงคืน แต่เท่าที่สังเกตเห็นคือมันจะ Reset บ้างไม่ Reset บ้าง เพราะฉะนั้นผมจึงไปทำ Automation เรียกใช้งาน Reset Switch ที่ใน Code ก่อนหน้าทุกเที่ยงคืนแทน ข้อควรระวังตรงนี้ก็คือว่าหาก PZEM วัดค่าออกมาแล้วค่า PF (Power Factor) เพี้ยนเยอะ (ปกติจะ 0.8-1) จะทำให้ค่านี้เพี้ยนเยอะตาม

และส่วนของ Monthly คือรายเดือนโดยทำการ Reset ทุกวันที่ 16 (บ้านผมจดมิเตอร์วันที่ 16) คือค่าพลังงานที่ใช้ไปทั้งหมด

NodeRED Flow สำหรับ Reset ค่าทุกเที่ยงคืนแบบอย่างง่าย

ที่มา: https://www.lungrock.dev/utility-meter-esphome-pzem-home-assistant/

ใส่ความเห็น