ไฟฟ้า อาจเป็นปัจจัยที่ 5 ของมนุษย์เลยก็ว่าได้ สิ่งอำนวยความสะดวกในชีวิตประจำวันหลาย ๆ อย่างมักใช้ไฟฟ้าเป็นตัวให้พลังงาน ไฟฟ้าจึงได้เข้าไปอยู่ในทุกส่วนของชีวิตเรา ทั้งการเดินทาง ที่ต้องใช้บริการรถไฟฟ้า การติดต่อสื่อสาร ที่ต้องใช้โทรศัพท์มือถือ การลดภาระการใช้พลังงานอย่างการใช้บันไดเลื่อน การเผยแพร่สื่อ สินค้า บริการ ผ่านป้ายไฟ จอภาพขนาดใหญ่ การรับความบันเทิงภายในบ้านอย่างการดูโทรทัศน์ ฟังเพลง หรือเล่นเกมส์ ทุกสิ่ง ทุกอุปกรณ์รอบตัวเราล้วนใช้พลังงานไฟฟ้าด้วยกันทั้งสิ้น
บทความนี้เราจะมาลองสร้างโครงงานที่ใช้วัดอัตราการใช้พลังงานไฟฟ้าเหล่านั้น เพื่อเป็นข้อมูลให้เราทราบถึงพลังงานที่สูญเสียไปกับอุปกรณ์เหล่านั้น และช่วยประเมินผลการใช้พลังงานไฟฟ้าในรูปแบบต่าง ๆ ได้
สนับสนุนบทความดี ๆ แบบนี้ได้ โดยเลือกสั่งซื้อสินค้ากับเรา |
|
WeMos D1 mini V3.1.0 Lua WIFI IoT ESP8266 Development Board ราคา 225.00 บาท |
WeMos D1 mini (Compatible) Lua WIFI IoT ESP8266 Development Board ราคา 203.00 บาท |
PZEM-004T V3 AC Digital Power Energy Meter Module ราคา 321.00 บาท |
สายจั้มตัวเมีย-เมีย ความยาว 20 ซม. 40 เส้น ราคา 60.00 บาท |
ไฟฟ้าที่ถูกปล่อยออกมาจากปลั๊กไฟ จากเต้ารับภายในบ้านของเรานั้น เป็นไฟฟ้ากระแสสลับที่มีแรงดัน 220V ความถี่ 50Hz กระแสไฟฟ้ารวมที่เราสามารถใช้งานได้จะขึ้นอยู่กับหม้อแปลงไฟฟ้าที่การไฟฟ้าติดตั้งให้ และตรวจดูเลขทุกเดือน (บางบ้านอาจะเป็นระบบ IoT ที่ไม่มาตรวจที่บ้านแล้ว)
ไฟฟ้าตามบ้านนั้น เป็นระบบไฟฟ้าแบบ 1 เฟส มี 2 สาย ดังนี้
สำหรับปลั๊กไฟที่มี 3 ขานั้น จะประกอบไปด้วยขา L N แต่จะมีสายดิน (Ground) เพิ่มขึ้นมา เพื่อใช้ป้องกันเหตุการณ์บางอย่างที่ทำให้เกิดไฟรั่ว แล้วอาจช็อตผู้ใช้งานได้ การมีสายดินจะช่วยให้ไฟฟ้าที่รั่วเหล่านั้นไหลลงดินแล้วไม่ทำให้ช็อตตัวผู้ใช้ได้
ตัวแปรด้านไฟฟ้าจะมีด้วยกัน 3 ตัว คือ แรงดันไฟฟ้า กระแสไฟฟ้า และความต้านทานทางไฟฟ้า ด้วยตัวแปร 3 ตัวนี้ สามารถแตกแยกตัวแปรที่ใช้ในการวัดอัตราการใช้ไฟฟ้าได้อีก 2 ตัว คือ กำลังไฟฟ้า วัตต์ชั่วโมง
ค่าที่ต้องวัด แล้วทราบจริง ๆ จะมีเพียง 2 ค่า คือแรงดันไฟฟ้า (E) และกระแสไฟฟ้า (I) ส่วนค่าอื่น ๆ จะสามารถหาได้โดยใช้สูตร
ในการคำนวณค่าไฟฟ้า เรามักจะใช้หน่วย ยูนิต เป็นหน่วยใช้ในการคำนวณ โดย 1 ยูนิต = 1kWh หรือ 1 ยูนิต = 1000Wh ดังนั้นหากต้องการหาค่ายูนิต จะหาได้จาก วัตต์ชั่วโมง / 1000 สมมุตวัตต์ชั่วโมงได้ 750Wh จะได้ 750 / 1000 = 0.75 ยูนิต
จะเห็นว่าค่าที่เราวัดออกมาทั้งหมด สุดท้ายแล้วจะได้ค่าออกมาเป็นยูนิตที่นำไปคำนวณเป็นค่าไฟฟ้าได้ ซึ่งจะทำให้สามารถทราบได้ว่าเครื่องใช้ไฟฟ้านั้น ๆ ใช้จำนวนเงินได้เท่าไรเมื่อเปิดใช้งานเป็นเวลาหนึ่ง
การคำนวนค่าไฟฟ้าจะแบ่งตามประเภทของไฟฟ้าที่ใช้ ซึ่งในบทความนี้จะสอนวิธีการคำนวณค่าไฟฟ้าประเภทที่ 1 บ้านอยู่อาศัยอัตราปกติ
การคำนวณค่าไฟฟ้าจะแบ่งออกเป็น 3 ช่วง ดังนี้
ดังนั้น ค่าไฟฟ้าที่ต้องชำระจึงหาได้จาก ค่าพื้นฐานไฟฟ้า + ค่าไฟฟ้าผันแปร + ภาษีมูลค่าเพิ่ม นั่นเอง แต่กรณีใช้ไฟฟ้าไม่เกิน 50 ยูนิตต่อเดือน จะไม่ต้องชำระค่าไฟฟ้าในเดือนนั้น
ค่าไฟฟ้าประเภทที่ 1 บ้านอยู่อาศัยอัตราปกติ จะแบ่งประเภทของผู้ใช้ได้อีก 2 แบบ ดังนี้
คุณสมบัติของผู้ใช้ที่เข้าประเภทนี้ คือ
อัตราค่าพื้นฐานไฟฟ้า (ปี พ.ศ.2560) มีดังนี้
สมมุต ใช้ไฟฟ้า 105 ยูนิต การคำนวนให้นำค่าสูงสุดของแต่ละขั้นมาบวกกันเรื่อย ๆ กรณีเหลือเป็นเศษค่อยนำจำนวนยูนิตที่เหลือมาคูณตัวเลขแต่ละยูนิตในขั้นนั้น ๆ
รวมอัตราค่าไฟฟ้าฐาน คือ 35.23 + 29.88 + 32.41 + 235.54 + 18.59 + 8.19 = 359.84 บาท
คุณสมบัติของผู้ใช้ที่เข้าประเภทนี้ คือ
อัตราค่าพื้นฐานไฟฟ้า (ปี พ.ศ.2560) มีดังนี้
สมมุต ใช้ไฟฟ้า 200 ยูนิต สามารถคำนวณอัตราค่าไฟฟ้าฐานได้ดังนี้
รวมอัตราค่าไฟฟ้าฐาน คือ 487.26 + 211.09 + 38.22 = 736.57 บาท
ค่า Ft จะเปลี่ยนทุก ๆ 3 เดือน และเป็นค่าบวก หรือค่าลบก็ได้ เช่น ช่วงเดือนกันยายน ถึง ธันวาคม ของปี พ.ศ.2560 ค่า Ft อยู่ที่ -15.90 บาท
สมมุต (1) ใช้ไฟฟ้า 105 ยูนิต ค่า Ft หาได้จาก 105 * (-15.90 / 100) = -16.695 บาท ปัดเศษ ได้ -16.7 บาท
สมมุต (2) ใช้ไฟฟ้า 200 ยูนิต ค่า Ft หาได้จาก 200 * (-15.90 / 100) = -31.8 บาท
คิดจากผลรวมของอัตราค่าไฟฟ้าฐาน และ ค่าไฟฟ้าผันแปร (Ft) นำมาคูณด้วย 7 / 100 หรือคูณด้วย 0.07
สมมุต (1) ค่าผลรวมของงอัตราค่าไฟฟ้าฐาน และ ค่าไฟฟ้าผันแปร (Ft) คือ 359.84 + (-16.7) = 343.14 บาท นำมาคิด VAT ได้ 343.14 * 0.07 = 24.0198 บาท ปัดเศษ ได้ 24.02 บาท
สมมุต (2) ค่าผลรวมของงอัตราค่าไฟฟ้าฐาน และ ค่าไฟฟ้าผันแปร (Ft) คือ 736.57 + (-31.8) = 704.77 บาท นำมาคิด VAT ได้ 704.77 * 0.07 = 49.3339 บาท ปัดเศษ ได้ 49.33 บาท
นำค่าทั้ง 3 รวมกัน คือ ค่าพื้นฐานไฟฟ้า + ค่าไฟฟ้าผันแปร + ภาษีมูลค่าเพิ่ม
สมมุต (1) ค่าพื้นฐานไฟฟ้า + ค่าไฟฟ้าผันแปร + ภาษีมูลค่าเพิ่ม คือ 359.84 + (-16.7) + 24.02 รวมต้องชำระ 367.16 บาท
สมมุต (2) ค่าพื้นฐานไฟฟ้า + ค่าไฟฟ้าผันแปร + ภาษีมูลค่าเพิ่ม คือ 736.57 + (-31.8) + 49.33 รวมต้องชำระ 754.1 บาท
โมดูลวัดค่าต่าง ๆ โดยทั่วไปจะวัดได้โมดูลละ 1 ค่าเท่านั้น เช่น หากต้องการวัดแรงดัน 220V จะต้องใช้โมดูลวัดแรงดัน และหากต้องการวัดกระแส จำเป็นจะต้องใช้โมดูลวัดกระแสแยกออกมา
แต่สำหรับโมดูลที่จะมาแนะนำในบทความนี้ คือ PZEM004T เป็นโมดูลที่สามารถวัดแรงดันไฟฟ้า กระแสไฟฟ้า ได้ครบภายในตัวเดียว และคำนวณค่ากำลังไฟฟ้า (P) และวัตต์ชั่วโมง (Wh) ให้อัตโนมัติ แต่ค่าที่เราต้องการจะใช้มีเพียงแรงดันไฟฟ้า และกระแสไฟฟ้าเท่านั้น ส่วนค่ากำลังไฟฟ้า และค่าวัตต์ต่อชั่วโมง จะนำมาคำนวณเองในบอร์ดไมโครคอนโทรลเลอร์
อุปกรณ์ทั้งหมดที่ใช้ มีดังนี้
เนื่องจากตัว PZEM004T เป็นหัวใจหลักของการทดลองนี้ จึงควรทดสอบเฉพาะตัว PZEM004T ก่อน ว่าสามารถทำงานได้ปกติหรือไม่ เพื่อไม่ให้เกิดปัญหาขึ้นหากนำจอ OLED มาต่อเพิ่ม หรือส่งข้อ Firebase ผิดพลาด
ให้ต่อวงจรดังนี้
เริ่มติดตั้งไลบรารี่ของ PZEM004T โดยเข้าไปที่ olehs/PZEM004T กดที่ปุ่ม Clone or download แล้วกดปุ่ม Download ZIP
เปิดไฟล์ที่ได้ดาวน์โหลดมาด้วยโปรแกรมคลายไฟล์ (WinRAR, 7-zip) ลากโฟลเดอร์ในโปรแกรมคลายไฟล์มาใส่ที่ Documents\Arduino\libraries
แก้ชื่อโฟลเดอร์ จาก PZEM004T-master ให้เป็น PZEM004T
หากยังไม่เคยใช้ WeMos D1 mini หรือบอร์ด ESP8266 ร่วมกับโปรแกรม Arduino มาก่อน จำเป็นที่จะต้องเพิ่มบอร์ดที่ใช้ ESP8266 เป็นแกนหลักลงโปรแกรม Arduino ก่อน โดยอ่านวิธีการเพิ่มบอร์ดที่บทความ เริ่มต้นพัฒนาเฟิร์มแวร์ EPS8266 ด้วย Arduino IDE
เนื่องจาก ESP8266 ไม่มีไลบรารี่ SoftwareSerial มาในตัว จึงต้องติดตั้งเพิ่ม โดยเข้าไปดาวน์โหลดไลบรารี่ plerup/espsoftwareserial ได้ที่ Releases · plerup/espsoftwareserial เลือกดาวน์โหลเวอร์ชั่นล่าสุดของไลบรารี่ แนะนำให้เลือกเป็นไฟล์ zip
เปิดไฟล์ zip ที่ได้ดาวน์โหลดไว้ขึ้นมา จากนั้นลากโฟลเดอร์ในไฟล์ zip ไปใส่ไว้ใน Documents\Arduino\libraries
แก้ไขชื่อโฟลเดอร์ โดยลบเครื่องหมาย - (ขีดกลาง) และข้อความหลังเครื่องหมาย - ออก
เปิดโปรแกรม Arduino ขึ้นมา (หรือหากเปิดอยู่ ให้ปิดแล้วเปิดใหม่) กดไปที่เมนู File > Examples > INCOMPATIBLE > PZEM004T เลือก PZEMDisplay
บรรทัดที่ 10 ให้เปลี่ยนเลข 10 เป็น D6 และเปลี่ยนเลข 11 ให้เป็น D7 (ดังรูป)
เลือกบอร์ด เลือกพอร์ตให้ถูกต้อง แล้วกดอัพโหลดได้เลย
หลังจากอัพโหลดเสร็จแล้ว ให้เปิด Serial Monitor ขึ้นมา ปรับไปที่ 9600 หากต่อวงจรถูกต้อง มีไฟ 220V ป้อนเข้า จะแสดงค่าแรงดัน และกระแสที่อ่านได้ออกมา
เตรียมโครงการของ Firebase ให้พร้อม และตั้งสิทธิ์ .read ให้เป็น true หากท่านยังไม่เคยใช้งาน Firebase มาก่อน ให้ศึกษาวิธีการสร้างโครงการ วิธีการติดตั้งไลบรารี่ วิธีการใช้งานเบื้องต้นได้ที่บทความ ESP8266 ESP8285 กับการใช้งาน Firebase ระบบฐานข้อมูลเรียลไทม์จาก Google
คัดลอกโค้ดด้านล่างนี้ลงโปรแกรม Arduino แล้วแก้ไขค่าต่อไปนี้
แล้วอัพโหลดโปรแกรมลงไปได้เลย
เปิด Serial Monitor ขึ้นมา ปรับไปที่ 115200 กด Reset ที่ตัว WeMos D1 mini รอเชื่อมต่อโมดูล WiFi และดึงเวลาจาก NTP
เมื่อวินาทีที่ 0 หรือ 30 ข้อมูลจะถูกส่งขึ้น Firebase และแสดงข้อความ pushed (ดังรูป)
เมื่อเข้าไปดูข้อมูลใน Firebase คอนโซล จะพบข้อมูลที่เพิ่มขึ้นมา (ดังรูป)
เข้าไปที่เว็บไซต์ www.fireboard.xyz จากนั้นกดที่ เข้าสู่ระบบ ทางด้านขวาบนของเว็บ
หน้าเว็บจะมีวิธีการเข้าสู่ระบบ 2 วิธี คือ เข้าสู่ระบบด้วยบัญชี Google หรือ เข้าสู่ระบบผ่านอีเมล์
จากนั้นระบบจะพาเข้ามาที่หน้าคอนโซล ให้กดที่ปุ่ม เพิ่มบอร์ด เพื่อเพิ่มแดชบอร์ดสำหรับแสดงผลข้อมูลใน Firebase
ที่ Firebase คอนโซล กดไปที่เมนู Project Overview แล้วกดที่ปุ่ม เพิ่ม Firebase ไปที่เว็บแอปของคุณ
นำข้อมูลจาก Firebase ไปกรอกลงใน Fireboard ให้ตรงช่อง (ดังรูป) แล้วกดปุ่ม บันทึกการตั้งค่า หน้าเว็บจะรีเฟส 1 ครั้ง
กดไปที่รูปเฟือง กำหนดชื่อบอร์ด และรายละเอียดของบอร์ดได้ตามต้องการ แล้วกดปุ่ม บันทึกการตั้งค่า
จากนั้นท่านสามารถสร้างโมดูลต่าง ๆ เพื่อแสดงผลข้อมูลรูปแบบต่าง ๆ กันได้ (อ่านวิธีสร้างโมดูลแต่ละแบบได้ที่ การจัดการโมดูล)
ตัวอย่างนี้จะเอาค่าไฟฟ้ามาแสดง ให้กดที่ปุ่มรูปเครื่องหมาย + กรอกชื่อโมดูล เลือกความกว้าง เลือกชนิดโมดูลเป็น 25% และตั้งที่อยู่ของข้อมูล (ใน Firebase) ไปที่ /amount จากนั้นกดปุ่ม เพิ่ม
ข้อมูลที่อยู่ใน Firebase จะแสดงขึ้นมาให้ทราบทันที และข้อมูลนี้จะอัพเดทอัตโนมัติเมื่อข้อมูลใน Firebase เปลี่ยนแปลง
เพิ่มโมดูลกราฟแรงดันในแต่ละช่วงเวลา โดยกรอกข้อมูลต่อไปนี้
เพิ่มโมดูลกราฟแสดงกระแสไฟฟ้าที่ใช้ในแต่ละช่วงเวลา โดยกรอกข้อมูลดังนี้
เพิ่มโมดูลข้อความ แสดงค่าวัตต์ต่อชั่วโมงโดยใส่ข้อมูลดังนี้
หลังจากจัดวางโมดูลใหม่ จะได้หน้าแดชบอร์ดที่สวยงามดังรูป (สามารถเข้าชมหน้าจริงได้ที่ https://fireboard.xyz/show--L1Mrb5pEGpQDju8ky20.html)
เมื่อทดลองต่อโหลด และปล่อยเวลาผ่านไปซักพัก ข้อมูลในกราฟกระแสไฟฟ้าจะเพิ่มขึ้นตามค่าที่วัดได้ ค่าไฟฟ้าก็จะแสดงค่าตามจริงที่วัดได้ทันที
ปัญหานี้เกิดมาจากทั้งตัว WeMos D1 mini เอง และตัวโมดูล PZEM004T ดังนี้
ปัญหาเกิดจาก WeMos D1 mini ไม่สามารถตรวจจับข้อมูลที่ส่งมาจาก UART (Serial) ได้ทัน เนื่องจากเดิมขา GPIO ของ ESP8266 ทำงานได้ช้า รวมทั้งในบางครั้ง ESP8266 มีงานที่ต้องจัดการทั้งทางด้าน WiFi และด้านโปรแกรมที่เขียนไว้ ทำให้ไม่สามารถกลับมารับข้อมูลส่งมาได้ทัน วิธีแก้ไขคือย้ายไปใช้ HardwareSerial แทน ถึงแม้ ESP8266 จะมี Serial ถึง 3 ช่อง แต่ในความเป็นจริงจะใช้ได้เพียง 2 ช่องเท่านั้น เมื่อช่องที่ 1 ถูกใช้ไปกับการติดต่อกับคอมพิวเตอร์ (อัพโหลดโปรแกรม) และช่องที่ 2 มีเพียงขา Tx เท่านั้น ทำให้ใช้กับ PZEM004T เมื่อผู้เขียนลองนำ PZEM004T ไปใช้กับ ESP32 ยังพบปัญหา HardwareSerial ไม่สามารถใช้งานได้เช่นเดิม ดังนั้นการใช้ไลบรารี่ SoftwareSerial จึงเป็นตัวเลือกที่ผู้เขียนมองว่าดีที่สุดในตอนนี้
ปัญหานี้อาจเกิดจากตัว WeMos D1 mini เอง ด้วยเหตุผลก่อนหน้าที่ไม่สามารถรับข้อมูลเข้ามาได้ทัน หรือปัญหาจากหม้อแปลงวัดกระแส (Current transformer : CT) ที่ไม่สามารถตรวจวัดกระแสไฟฟ้าที่ต่ำกว่า 200mA ได้ดีนัก เนื่องจากหม้อแปลงวัดกระแส สามารถวัดได้สูงสุดถึง 100A ทำให้ไม่สามารถวัดกระแสต่ำ ๆ ได้ดี
ผู้เขียนได้ทดสอบใช้โหลดที่ใช้กระแสต่าง ๆ กัน มาทดสอบเทียบกับดิจิตอลมัลติมิเตอร์ พบว่าการวัดแรงดันมีความเที่ยงตรงสูงมาก ผิดพลาดไม่เกิน +-3V และการวัดกระแสไฟฟ้า จะเทียงตรงเมื่อโหลดใช้กระแสไฟฟ้าสูงกว่า 200mA
ทั้งนี้โมดูล PZEM004T ที่ผู้อ่านใช้ อาจจะไม่เที่ยงตรงเหมือนกับของผู้เขียน ผู้อ่านควรวัดเทียบกับดิจิตอลมัลติมิเตอร์ก่อนนำไปใช้งานทุกครั้ง
พระเอกของบทความนี้ คือ โมดูล PZEM004T ที่สามารถอ่านค่าออกมาได้ทั้งแรงดันไฟฟ้า และกระแสไฟฟ้า ทำให้นำไปใช้ร่วมกับ WeMos D1 mini คำนวณออกมาเป็นค่าไฟฟ้า แล้วส่งข้อมูลขึ้น Firebase ได้ง่ายขึ้นมาก แสดงผลในหน้าแดชบอร์ดฟรีอย่าง Fireboard ได้อย่างสวยงาม
สุดท้ายนี้ บทความอาจมีส่วนใดส่วนหึ่งที่ผิดพลาด ทั้งข้อมูลที่อาจจะผิด ข้อความที่อาจจะตกหล่น ผู้เขียนกราบขออภัยมา ณ ที่นี้ และหากแจ้งให้ผู้เขียนทราบถึงผิดพลาด และข้อมูลที่ถูกต้อง ผู้เขียนขอขอบพระคุณล่วงหน้าด้วยครับ
สำหรับบทความนี้ก็มีเพียงเท่านี้ บทความหน้าจะเป็นเรื่องเกี่ยวกับอะไร ก็ฝากติดตามกันด้วยนะครับ
~ สวัสดีครับ ~