กลับไปหน้ารวมไฟล์
smartmetering-with-portenta-h7-654fd5.md

ชื่อโปรเจกต์: Smartmetering กับเจ้า Portenta H7 สุดแรง

ช่วงนี้ค่าน้ำมัน ค่าแก๊ส ค่าไฟพุ่งกระฉูดจนกระเป๋าแฟบ แถมโลกก็ร้อนขึ้นทุกวัน การมอนิเตอร์การใช้พลังงานเลยโคตรสำคัญ จะได้รู้ว่าเงินไหลออกทางไหนบ้าง แล้วที่ประหยัดไปน่ะได้ผลจริงป่าว? พวกมิเตอร์น้ำ มิเตอร์แก๊สส่วนใหญ่เขาจะใช้ระบบบัสพิเศษที่เรียกว่า M-BUS หรือ Meter Bus ไว้คอยส่งข้อมูลค่าการใช้พลังงานพวกนี้แหละ

บทความนี้พี่จะพาน้องๆ ไปอ่านค่าจากมิเตอร์พวกนี้ผ่าน Interface ของ M-BUS โดยใช้ Shield พิเศษที่ชื่อ M-BUS MKR Shield เสียบเข้ากับบอร์ดตัวท็อปอย่าง [Arduino](https://s.shopee.co.th/7fUgFAWSki) Portenta H7 แล้วรันด้วย MicroPython หล่อๆ เลย

การติดตั้ง M-BUS กับ Arduino M-BUS Shield จัดไปวัยรุ่น

ลง MicroPython ให้เจ้า Portenta กันหน่อย

นอกจากเขียน C++ ผ่าน Arduino IDE แล้ว เจ้า Portenta ยังเทพพอที่จะรัน MicroPython Script ได้ด้วยนะน้อง วิธีคือต้องลง OpenMV IDE ในคอมพิวเตอร์ก่อน แล้วค่อยจัดการเซ็ตอัพตัว MicroPython Interpreter ลงไปใน Portenta ผ่าน OpenMV นั่นแหละ

ไปตามเก็บรายละเอียดขั้นตอนการติดตั้ง OpenMV ในระบบของน้องให้เรียบร้อยนะ

ลง Library ของ Meterbus กับไฟล์ตัวอย่าง

พอเซ็ต OpenMV ในคอมฯ กับบอร์ด Portenta เรียบร้อยแล้ว น้องจะเห็น Drive ใหม่โผล่ขึ้นมาในคอมฯ ซึ่งไอ้ตรงนี้แหละคือที่เก็บ Script ของ MicroPython บนบอร์ด Portenta ของเรา

ให้ก๊อปปี้ Code MicroPython จาก Repository ลงไปใน Drive นี้เลยนะ อย่าลืมพวกโฟลเดอร์ย่อยด้วยล่ะ

เนื่องจาก MicroPython มันไม่มีพวก Library สำหรับคำนวณเลขทศนิยม (Floating-point) ติดมาให้ น้องต้องก๊อปโฟลเดอร์ 'mpy_decimal' จาก Repository มาใส่ด้วย ไม่งั้นรันไปค้างไปห้ามมาโวยวายนะ

หน้าตา Drive ของ Portenta พร้อมไฟล์และโฟลเดอร์ย่อย

รันตัวอย่างโชว์หน่อยดิ๊

ใน Code ที่ให้ไปจะมี Script ตัวอย่างอยู่ 3 ตัว น้องเปิดผ่าน OpenMV IDE ได้เลย แต่อย่าลืมเช็คบรรทัด Configuration ของ Portenta ให้ดีล่ะ ว่าเปิด (Enable) หรือปิด (Disable) ไว้ถูกตัวหรือเปล่า ห้ามพลาดนะจุดนี้

ปิดบรรทัดของ Pico แล้วเปิดของ Portenta แทนนะไอ้ทิด

อย่าลืมเปิดหน้าต่าง Terminal ข้างล่างด้วยนะ จากนั้นก็เลือกตัวอย่างตัวไหนก็ได้ใน 3 ตัวนั้น แล้วกดปุ่มลูกศรสีเขียวตรงมุมซ้ายล่างเพื่อรันได้เลย จัดไป!

ผลลัพธ์ที่โชว์บนหน้าต่าง Terminal

รายละเอียดทางเทคนิคแบบเจาะลึก (ฉบับตัวตึง)

การวิเคราะห์พลังงานระดับอุตสาหกรรม

ใช้พลังของ Dual-Core จาก Arduino Portenta H7 มาทำเครื่องมือตรวจวัดพลังงานความเร็วสูงสำหรับงาน Smart Grid

  • High-Fidelity Signal Processing: แกน M7 ของ H7 (ความเร็ว 480MHz) นี่อย่างแรง! มันสามารถคำนวณค่า RMS (Root Mean Square) แบบ Real-time และทำ Fast Fourier Transforms (FFT) ข้อมูลกระแสและแรงดันที่เข้ามา เพื่อวัดค่า Power Factor และ Harmonic Distortion ได้แบบนิ่งๆ
  • Non-Invasive Current Sensing: ใช้ Sensor แบบ SCT-013 หรือพวก Current Transformer Clamps มาหนีบวัดกระแส AC ได้เลยโดยไม่ต้องไปตัดสายไฟให้ยุ่งยาก ปลอดภัยไว้ก่อนนะน้อง

Edge Machine Learning

  • Anomaly Detection: (เวอร์ชันแอดวานซ์) ใช้ความสามารถด้าน AI ของเจ้า H7 เพื่อแยกแยะ "ลายนิ้วมือไฟฟ้า" ของเครื่องใช้ไฟฟ้าแต่ละชนิด ทำให้เรารู้ได้เลยว่าเครื่องจักรตัวไหนกำลังกินไฟเท่าไหร่ แม้ว่ามันจะต่ออยู่บนวงจรเดียวกันก็ตาม หล่อเท่เลยงานนี้!

ข้อมูล Frontmatter ดั้งเดิม

title: "Smartmetering with Portenta H7"
description: "Use the Portenta H7 for smartmetering via MicroPython and Arduino MKR M-BUS shield"
author: "hwhardsoft"
category: ""
tags:
  - "energy efficiency"
  - "greener planet"
  - "monitoring"
views: 3436
likes: 0
price: 699
difficulty: "Intermediate"
components:
  - "1x Arduino Portenta H7"
  - "1x M-BUS MKR Shield"
tools: []
apps:
  - "1x OpenMV IDE"
downloadableFiles:
  - "https://github.com/mpy-dev/micropython-decimal-number"
  - "https://github.com/HWHardsoft/micropyMeterBus"
  - "https://github.com/mpy-dev/micropython-decimal-number"
documentationLinks: []
passwordHash: "fa64bc11d9c21725e5aef55c05ff767d7d73398bffe51cf627fdead5526468a8"
encryptedPayload: "U2FsdGVkX1+WF5hCvLUrrtElGJR5hBjqJO3aFklXEE1oFf3tX2qX84UT9pLxfeRQVJhELAJrPPgX1SUL+Yf2OFfxMDGmJC+Uz1puW43EajA="
seoDescription: "Learn how to use Portenta H7 for smartmetering with MicroPython and Arduino MKR M-BUS shield for efficient energy management."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/smartmetering-with-portenta-h7-654fd5_cover.jpg"
lang: "th"