ระบบการตรวจวัดการใช้พลังงานไฟฟ้าด้วย PIEBOX

NEXPIE Co., Ltd.
7 min readNov 2, 2020

--

สืบเนื่องจากบทความก่อนหน้าที่ทิ้งท้ายไว้ บทความนี้จะนำเสนอการตรวจวัดพลังงานไฟฟ้า เพื่อที่จะสามารถ Monitoring ค่าพลังงานไฟฟ้าต่างๆ และเก็บบันทึกข้อมูลตามเวลา Time series

เกริ่นนำ

การตรวจวัดพลังงานไฟฟ้าเป็นสิ่งที่จำเป็น เพื่อที่จะทราบถึงการใช้พลังงานไฟฟ้า และประสิทธิภาพการทำงานของเครื่องมือ หรือเครื่องจักร ในตัวอย่างนี้เป็นการนำ PIEBOX มาทำงานร่วมกับ Electronic Meter และส่งข้อมูลไปยัง NEXPIE Platform

รายการอุปกรณ์ที่ใช้

  1. PIEBOX
  2. RS485 to USB
  3. Electronic Meter รุ่น SX1-A31E

รูปแบบการเชื่อมต่ออุปกรณ์

แบ่งการทำงานเป็น 6 ส่วน ผู้ใช้สามารถศึกษาตามหัวข้อดังนี้

A การเข้าใช้งาน PIEBOX และการติดตั้ง Nodes SQLite

B การอ่านค่าพลังงานไฟฟ้าจาก Electronic Meter รุ่น SX1-A31E

C การเชื่อมต่อ PIEBOX และนำข้อมูลส่งไปยัง NEXPIE Platform

D การเขียนข้อมูลการอ่านข้อมูล และการสร้างฐานข้อมูลใน SQLite

E การสร้าง Dashboard Local บน PIEBOX

F การนำค่าที่อ่านได้เขียนบน Google Sheet

A การเข้าใช้งาน PIEBOX และการติดตั้ง Nodes SQLite

  1. การเข้าใช้งาน Interface PIEBOX เริ่มต้นให้ผู้ใช้นำสาย LAN (RJ45) นำมาเชื่อมต่อจากพอร์ต LAN ของ PIEBOX ไปยังพอร์ต LAN ของ Computer ผู้ใช้

จากนั้นให้ทําการแก้ไขค่า IP Address ของ Computer ผู้ใช้ เพื่อสามารถสื่อสารกับ PIEBOX ได้ตามขั้นตอนต่อไปนี้

1.1 ไปยัง Control Panel > Network and Internet > Network and Sharing Center จากนั้นให้ทําการคลิกที่ ‘Ethernet’ ในส่วนของ View your active networks

1.2 หน้าต่าง Ethernet Status จะปรากฏขึ้นมาให้ผู้ใช้ทําการคลิกที่ Properties

1.3 เลือก Internet Protocol Version 4 (TCP/IP) จากนั้นคลิก Properties

1.4 เลือก Use The following IP Address แล้วตั้งค่า IP ให้อยู่ในเครือข่ายเดียวกันกับ PIEBOX โดย IP ที่ตั้งค่าต้องไม่ซ้ำกับ IP Address เริ่มต้นของ PIEBOX คือ 192.168.1.200 ดังนั้นผู้ใช้สามารถตั้งค่า IP ให้กลายเป็น 192.168.1.xxx ที่ ‘xxx’ นั้นต้องไม่ใช่ 200

1.5 คลิกปุ่ม OK เพื่อทําการบันทึกค่า IP ที่ต้องการแก้ไข จากนั้นผู้ใช้จึงเข้าใช้งาน PIEBOX ผ่านโปรแกรมเว็บเบราว์เซอร์ที่ URL: http://piebox.local

1.6 ผู้ใช้งานเข้าสู่ส่วน Interface PIEBOX ผ่านโปรแกรมเว็บเบราว์เซอร์ที่ URL: http://piebox.local โดยค่าเริ่มต้นของ Username คือ admin และ Password คือ admin

1.7 ตั้งค่า PIEBOX เชื่อมต่ออินเทอร์เน็ตผ่านทาง WiFi ให้ผู้ใช้คลิกเลือกที่แถบ Network จากนั้นทำการค้นหาการ์ด wlan0 ในหน้าโปรแกรม จากนั้นให้ทําการคลิกที่ปุ่ม ‘Edit’ เพื่อทําการกรอกข้อมูลของ WiFi ที่ต้องการเชื่อมต่อลงไป จากนั้นจึงทําการคลิกปุ่ม ‘Save’ เพื่อบันทึกการเปลี่ยนแปลง และรอจนกว่าที่ PIEBOX จะสามารถเชื่อมต่อกับ WiFi ได้สําเร็จ หากยังไม่แสดงข้อมูล ให้ลองกดปุ่ม F5 บนแปนคีย์บอร์ดเพื่อ Refresh หน้าต่างเว็บเบราว์เซอร์

2. การติดตั้ง Nodes บน FlowEngine จำเป็นต้องเชื่อมต่ออินเทอร์เน็ต ดังนั้นสามารถตรวจสอบสถานะการเชื่อมต่ออินเทอร์เน็ตของ PIEBOX

3. คลิกที่แถบ FlowEngine ในส่วนนี้จะเป็นส่วนในการออกแบบการทำงานแบบบล็อก ลาก-วาง หรือ การพัฒนาโปรแกรม สามารถศึกษาการใช้งาน FlowEngine ได้ที่ https://archive.nexpie.io/piebox/manuals/piebox_flowengine_20200902.pdf

4. ติดตั้ง Nodes ที่ใช้ในระบบตรวจวัดการใช้พลังงานไฟฟ้า โดยเลือก Manage Palette โดยจำเป็นต้องติดตั้ง Node: node-red-node-sqlite

จะปรากฏตามรูป เลือกที่แถบ Install และ Search node-red-node-sqlite คลิกที่ปุ่ม Install

ติดตั้งสำเร็จ จะปรากฏ Node Sqlite บนแถบเมนู Nodes แถบ Storage

B การอ่านค่าพลังงานไฟฟ้าจาก Electronic SX1-A31E

  1. ผู้ใช้ทำการเชื่อมต่ออุปกรณ์ ตามรูปแบบการเชื่อมต่ออุปกรณ์ข้างต้น
  2. ผู้ใช้คลิกแถบ FlowEngine และเลื่อนแถบเมนู Nodes มาที่แถบ Modbus ทำการคลิกที่ Node Modbus Read ลากมายังพื้นที่ Flow

Node Modbus Read ทำหน้าที่อ่านค่าจากเซนเซอร์แบบโปรโตคอล Modbus RTU โดยผู้ใช้จำเป็นต้องระบุค่าที่ต้องการ ในการอ่านค่าเซนเซอร์ เช่น ค่า Voltage, ค่า Frequency และค่าอื่นๆ

จากนั้น ทำการดับเบิลคลิกเข้าไปที่ Node Modbus Read เพื่อระบุค่าที่ต้องการอ่านข้อมูลเซนเซอร์

ตั้งค่าการสื่อสารกับเซนเซอร์ โดยมาที่แถบ Server เลือก Add new modbus-client… และคลิกที่ปุ่มดินสอ

ปรากฏตามรูปซึ่งเป็นการตั้งค่าพื้นฐาน โดยการตั้งค่าจะแตกต่างกันไปตามเซนเซอร์ ในที่นี้ใช้เซนเซอร์ SX1-A31E ข้อมูลเซนเซอร์ SX1-A31E สามารถตรวจสอบได้จากคู่มือ : https://www.meath-co.com/meter/files/documents/SX1-A31E.pdf.pdf

ทำการตั้งค่าการสื่อสารจากข้อมูลข้างต้น และสิ่งที่แตกต่างกันหรือสิ่งที่ต้องแก้ไขคือ Serial port ที่ PIEBOX สื่อสารกับเซนเซอร์ การตรวจสอบ Serial port โดยทำการเชื่อมต่ออุปกรณ์ จากนั้นทำการคลิกที่ปุ่มแว่นขยาย และเลือก Serial port ที่ PIEBOX เห็น เมื่อตั้งค่าเสร็จ แล้วคลิกที่ปุ่ม Update

จากนั้นทำการระบุค่าที่ต้องการอ่านเซนเซอร์ ตามเอกสาร

ระบุอ่านค่า Voltage ระบุค่าเรียบร้อยแล้วให้คลิกที่ปุ่ม Done

จากนั้นทำการระบุค่าที่ต้องการอ่านจากเซนเซอร์อื่นๆ โดยระบุตามค่าจากเอกสารเซนเซอร์ และส่วนของการสื่อสารกับเซนเซอร์แถบ Server ผู้ใช้สามารถเลือกจากรายการที่สร้าง

ระบุอ่านค่า Frequency ระบุค่าเรียบร้อยแล้วให้คลิกที่ปุ่ม Done

ระบุอ่านค่า Current ระบุค่าเรียบร้อยแล้วให้คลิกที่ปุ่ม Done

ระบุอ่านค่า Power ระบุค่าเรียบร้อยแล้วให้คลิกที่ปุ่ม Done

ระบุอ่านค่า Energy ระบุค่าเรียบร้อยแล้วให้คลิกที่ปุ่ม Done

เมื่อระบุค่าที่ต้องการอ่านจากเซนเซอร์ครบแล้ว คลิกที่ปุ่ม Save

3. ตรวจสอบค่าที่อ่านได้จากเซนเซอร์ว่าถูกต้องหรือไม่ โดยจะใช้ Node Debug คลิกที่ Node Debug และลาก Node Debug มายังพื้นที่ Flow

เชื่อมโยงข้อมูล โดยลากเส้นจาก Output Node Modbus มายัง Node debug ทำการคลิกที่ปุ่ม Save

สังเกตผลลัพธ์ที่ได้ ให้คลิกที่แถบ Debug ขวามือ หรือปุ่มสัญลักษณ์แมลงเต่าทอง แสดงผลลัพธ์เมื่อ Node Modbus ทำการอ่านค่าจากเซนเซอร์ตามค่าที่ได้กำหนด

* ข้อสังเกต ผลลัพธ์ที่ได้จากการอ่านเซนเซอร์แบบ Modbus RTU รูปแบบเป็นค่าจำนวนเต็ม ซึ่งค่าที่ถูกต้องอยู่ในรูปแบบทศนิยม จึงจำเป็นต้องเปลี่ยนแปลงค่าถึงจะเป็นผลลัพธ์ที่ต้องการ *

4. เปลี่ยนแปลงจากรูปแบบค่าจำนวนเต็มเป็นรูปแบบค่าทศนิยม โดยใช้ Node Change

คลิกที่ Node Change และลาก Node Change มายังพื้นที่ Flow ทำการดับเบิลคลิกที่ Node Change ส่วนของ Rule ผู้ใช้สามารถสร้างข้อมูลจาการเลือกใช้ Function SET, CHANGE, DELETE, MOVE

จากข้อมูลที่อ่านได ้ต้องการแปลงรูปแบบข้อมูลจำนวนเต็มเป็นรูปแบบทศนิยม โดยรับค่า Voltage และ เลือก Function SET msg.payload เปลี่ยนแปลงเป็นรูปแบบทศนิยมโดยใช้รูปแบบทางคณิตศาสตร์ โดยเลือก to เป็น expression โดยการใส่สมการ msg.payload[0]*0.01 โดยค่า 0.01 อ้างอิงมาจากเอกสารข้อมูลเซนเซอร์

เมื่อตั้งค่าสำเร็จ คลิกที่ปุ่ม Done

จากนั้นทำการเชื่อมโยงข้อมูล โดยทำลากเส้นข้อมูลค่า Voltage ไปที่ Node Change ที่ระบุสมการการแปลง และคลิกที่ปุ่ม Save และสังเกตผลลัพธ์ที่อ่านได้

ทำการเปลี่ยนแปลงรูปแบบ กับค่าอื่นๆ ที่อ่านได้จากเซนเซอร์ ตามลักษณะข้างต้น

เปลี่ยนแปลงค่าจาก frequency ระบุค่าสำเร็จ คลิกที่ปุ่ม Done

เปลี่ยนแปลงค่าจาก current ระบุค่าสำเร็จ คลิกที่ปุ่ม Done

เมื่อทำการเปลี่ยนแปลงค่าเป็นค่าที่ถูกต้องครบแล้ว จากนั้นคลิกที่ปุ่ม Save และสังเกตผลลัพธ์ได้

C การเชื่อมต่อ PIEBOX และนำข้อมูลส่งไปยัง NEXPIE Platform

  1. การเริ่มต้นใช้งาน NEXPIE Platform สามารถศึกษาได้ที่ https://docs.nexpie.io/getting-started.html

2. ตรวจสอบสถานะการเชื่อมต่ออินเทอร์เน็ตของ PIEBOX

3. ผู้ใช้คลิกแถบ FlowEngine และเลื่อนแถบเมนู Nodes มาที่ Node Device ทำการคลิกที่ Node Device และลากมายังพื้นที่ Flow

Node Device ทำหน้าที่ให้ PIEBOX เชื่อมต่อไปยัง NEXPIE Platform โดยทำงานแบบ Mqtt Client โดยผู้ใช้จำเป็นต้องระบุค่า Key ในการเชื่อมต่อ

ทำการดับเบิลคลิกที่ Node Device เพื่อระบุค่า Key

Key ได้จากการสร้าง Device บน Project NEXPIE Platform โดยการระบุค่า Key ใน Node Device ClientID ที่ระบุช่อง DeviceID และ Token ระบุที่ช่อง Device Token และตั้งค่า Channel เป็น NEXPIE บันทึกการตั้งค่า คลิกปุ่ม Done

คลิกปุ่ม Save เพื่อทำการบันทึกการทำงาน และสังเกตผลลัพธ์การเชื่อมต่อ

  • หากเชื่อมต่อสำเร็จ Node จะแสดงสถานะสีเขียว และแสดงการ Connected เพียงเท่านี้อุปกรณ์ก็พร้อมสำหรับส่งข้อมูล
  • หากไม่สำเร็จให้ตรวจสอบ Key ว่าระบุถูกต้องหรือไม่ หรือ PIEBOX เชื่อมต่ออินเทอร์เน็ตอยู่หรือไม่

4. นำข้อมูลที่ได้ส่งไปยัง NEXPIE Platform

ส่วนของตัวอย่างข้อมูลที่ส่งจะใช้ตัวอย่าง การอ่านค่าพลังงานไฟฟ้าจาก Electronic SX1-A31E

สังเกตว่าข้อมูลที่ได้นั้นเป็นค่าที่อ่านได้จากเซนเซอร์ 5 Node เพื่อให้สะดวกในการส่งข้อมูลไปยัง NEXPIE Platform จะขอรวบรวมค่าที่อ่านได้จากเซนเซอร์เป็นข้อมูลเดียวโดยใช้ Node Join

คลิกที่ Node Join และลากมายังพื้นที่ Flow จากนั้นดับเบิลคลิกที่ Node Join เพื่อตั้งค่าการรวบรวมข้อมูล โดยกำหนด Mode เป็น Manual กำหนด to create เป็น a merged Object กำหนดค่า after a number of Object parts เท่ากับ 5 ซึ่งเป็นการรวมข้อมูลจากแต่ละ Object Node เมื่อได้รับข้อมูลให้ครบตามที่กำหนด 5 Node แล้วจึงจะรวบรวมข้อมูลเป็นข้อมูลเดียว และ Output ข้อมูลออกไป

เมื่อตั้งค่าเสร็จ คลิกที่ปุ่ม Done

จากนั้นทำการเชื่อมโยงข้อมูล ทำการลากเส้นจาก Node ที่อ่านค่าจากเซนเซอร์ต่างๆไปยัง Node Join และลากเส้น Output ข้อมูลไปยัง Node Debug เพื่อตรวจสอบผลลัพธ์ และคลิกปุ่ม Save

สังเกตผลลัพธ์ที่ได้ ข้อมูลที่อ่านได้จากเซนเซอร์ 5 Node รวบรวมเป็น 1 ข้อมูล

ผู้ใช้สามารถนำข้อมูลที่ได้รวบรวมส่งไปยัง Shadow บน NEXPIE Platform โดยใช้ Node Write Shadow

Node Write Shadow มีหน้าที่แปลงรูปแบบข้อมูล ให้เป็นรูปแบบข้อมูลที่จะส่งไปยัง Shadow

คลิกไปยัง Node Write Shadow และลากมายังพื้นที่ Flow ดับเบิลคลิกเข้าไปที่ Node Write Shadow เพื่อตั้งค่าการแปลงรูปแบบข้อมูล แถบ Input Format เป็นการตั้งค่าการแปลงรูปแบบข้อมูล โดย Shadow Json เป็นการแปลงข้อมูลแบบ Json หรือ Object เป็นรูปแบบข้อมูล Shadow

Field เป็นการแปลงข้อมูลจากหลายๆ Node ร่วมกันเป็นรูปแบบข้อมูล Shadow สามารถศึกษาได้จากคู่มือการใช้งาน FlowEngine หน้า 65 https://archive.nexpie.io/piebox/manuals/piebox_flowengine_20200902.pdf

การตั้งค่า เนื่องจากได้รวบรวมข้อมูลจากข้างต้นแล้ว ตั้งค่า Input Format กำหนดเป็น Shadow Json เสร็จแล้วคลิกที่ปุ่ม Done

เมื่อตั้งค่าเสร็จ จากนั้นทำการเชื่อมโยงข้อมูล ทำการลากเส้นจาก Node Join ไปยัง Node Write Shadow และลากเส้น Output ไปยัง Node Debug เพื่อตรวจสอบผลลัพธ์ เสร็จแล้วคลิกที่ปุ่ม Save

สังเกตผลลัพธ์ที่ได้ ข้อมูลอยู่ในรูปแบบการเขียน Shadow

การส่งข้อมูลไปที่ Shadow บนโปรเจค ทำการลากเส้นจาก Output Write Shadow ไปยัง Node Device PIEBOX

แสดงผลลัพธ์บน NEXPIE Platform

  • * หากผู้ใช้ต้องการบันทึกข้อมูลลง Time Series Database หรือต้องการกำหนดรูปแบบข้อมูลที่ส่งมายัง NEXPIE Platform สามารถเขียน Schema เพื่อกำหนดรูปแบบข้อมูล

โค้ดคำสั่ง Schema

{
"additionalProperties": false,
"properties": {
"voltage": {
"operation": {
"store": {
"ttl": "30d"
}
},
"type": "number"
},
"frequency": {
"operation": {
"store": {
"ttl": "30d"
}
},
"type": "number"
},
"current": {
"operation": {
"store": {
"ttl": "30d"
}
},
"type": "number"
},
"power": {
"operation": {
"store": {
"ttl": "30d"
}
},
"type": "number"
},
"energy": {
"operation": {
"store": {
"ttl": "30d"
}
},
"type": "number"
}
}
}

สำหรับใครที่ติดปัญหาหรือมีข้อสงสัย สามารถสอบถามได้ทุกอย่างในคอมเมนต์ข้างล่างเลยครับ

สำหรับในบทความนี้จะเป็นการใช้งาน PIEBOX วัดค่าพลังงานไฟฟ้าจาก Electronic Meter รุ่น SX1-A31E เพื่อที่จะสามารถนำค่าที่วัดได้นำไปจัดเก็บ และสามารถนำไปวิเคราะห์ในงานประยุกต์อื่นๆ ต่อไป ในบทความต่อไปจะเป็นการจัดเก็บรวบรวมข้อมูลในฐานข้อมูล ซึ่งฐานข้อมูลที่เลือกใช้คือ SQLite และสามารถแสดงค่าในฐานข้อมูลบน Dashboard ของ PIEBOX

พูดคุย แลกเปลี่ยน สอบถามข้อมูลเกี่ยวกับ NETPIE ได้ที่
Facebook Group: https://www.facebook.com/groups/netpie

ติดตามข่าวสาร ติดต่อธุรกิจกับ NEXPIE ได้ที่
Facebook Fanpage: https://www.facebook.com/nexpie

--

--

NEXPIE Co., Ltd.

Internet of Things Experts in Thailand เราคือผู้เชี่ยวชาญและผู้ให้บริการ Platform IoT โดยคนไทยเพื่อคนไทย