บทความนี้จะเป็นการนำเสนอ การวัดแรงดัน กระแส 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 ทันที

  • 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 ด้านล่าง

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

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

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

การคำนวณค่าใช้ไฟจะแนะนำวิธีเขียนใน EP หน้า